Re[6]: язык заставляющий максимально изменить способ мышлени
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.05.11 12:21
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>On 24.05.2011 11:27, Курилка wrote:


>> И, например, Qi <http://www.lambdassociates.org/&gt;, работающий на Common Lisp

>> тоже не "ваш"?
>> Есть подозрение, что не стоит за всех лисперов говорить.

MZ>Нет, не "наш". Между прочим автору Qi в comp.lang.lisp так и сказали,

MZ>когда он пришёл туда со своими запросами про типы: "Иди, мол, мил человек,
MZ>сказали, отседова, ищи другой язык программирования". Ну, он и пошёл.
MZ>Писать Qi.

И создателям Racket тоже?
Не был я согласен с thesz насчёт лисперов, но, видимо, местами он очень прав
Re[6]: язык заставляющий максимально изменить способ мышлени
От: MasterZiv СССР  
Дата: 25.05.11 12:58
Оценка:
On 25.05.2011 7:43, FR wrote:

> Гуглю над открыть услугу по лечению лисп зависимости


Так мало лисперов-то, денег много не заработаешь.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: язык заставляющий максимально изменить способ мышлени
От: Sorc17 Россия  
Дата: 25.05.11 13:02
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>On 25.05.2011 7:43, FR wrote:


>> Гуглю над открыть услугу по лечению лисп зависимости


MZ>Так мало лисперов-то, денег много не заработаешь.


Платные добровольно-принудительные прививки!
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re: язык заставляющий максимально изменить способ мышления..
От: NiJazz Австралия  
Дата: 13.06.11 05:43
Оценка: :)
Здравствуйте, anokata, Вы писали:

A>Какой язык/парадигма программирования заставляют максимально изменить способ мышления и программирования (в отличие от императивного/ооп/функционального или же в их рамках)? А также максимально далеко уйти от машинного уровня?


JavaScript или ActionScript, м?

В конце концов, от клавиатуры точно не уйти
Re[2]: язык заставляющий максимально изменить способ мышлени
От: out-of-the-way США www.tehnoromantik.net
Дата: 13.06.11 07:23
Оценка: -1
Здравствуйте, NiJazz, Вы писали:

NJ>Здравствуйте, anokata, Вы писали:


A>>Какой язык/парадигма программирования заставляют максимально изменить способ мышления и программирования (в отличие от императивного/ооп/функционального или же в их рамках)? А также максимально далеко уйти от машинного уровня?


NJ>JavaScript или ActionScript, м?


NJ>В конце концов, от клавиатуры точно не уйти


По мне js и as вообще это вообще не программирование, цацки одним словом. По сабжу, ну не много пришлось перестраиваться под sql, больше не чего.
Программа — мысли спрессованные в код.
Re[3]: язык заставляющий максимально изменить способ мышлени
От: dilmah США  
Дата: 13.06.11 07:40
Оценка:
OOT>По мне js и as вообще это вообще не программирование, цацки одним словом

js это не козюльки трескать, чего стоит только то что он асинхронный с ног до головы
Re: язык заставляющий максимально изменить способ мышления..
От: HunteX http://troyashka.ru/
Дата: 13.06.11 07:43
Оценка:
Здравствуйте, anokata, Вы писали:

A>Какой язык/парадигма программирования заставляют максимально изменить способ мышления и программирования (в отличие от императивного/ооп/функционального или же в их рамках)? А также максимально далеко уйти от машинного уровня?

Prolog
Re[4]: язык заставляющий максимально изменить способ мышлени
От: out-of-the-way США www.tehnoromantik.net
Дата: 13.06.11 07:46
Оценка:
Здравствуйте, dilmah, Вы писали:


OOT>>По мне js и as вообще это вообще не программирование, цацки одним словом


D>js это не козюльки трескать, чего стоит только то что он асинхронный с ног до головы


Чихать на него. Он мне просто не нравится. Меня уже как то пытались пересадить на него, с целью дальнейшего понижения.
Программа — мысли спрессованные в код.
Re[4]: язык заставляющий максимально изменить способ мышлени
От: Курилка Россия http://kirya.narod.ru/
Дата: 13.06.11 08:56
Оценка:
Здравствуйте, dilmah, Вы писали:


OOT>>По мне js и as вообще это вообще не программирование, цацки одним словом


D>js это не козюльки трескать, чего стоит только то что он асинхронный с ног до головы


в каком месте js как язык асинхронный? наверное, речь была о рантайме?
для асинхронности яб лучше посоветовал эрланг.
Re[11]: язык заставляющий максимально изменить способ мышлен
От: WolfHound  
Дата: 13.06.11 10:00
Оценка:
Здравствуйте, anokata, Вы писали:

A>Контекстно-свободная_грамматика

A>

..КС-грамматики находят большое применение в информатике. Ими задаётся грамматическая структура большинства языков программирования..

Это бред.
КС грамматика задает надмножество языка.
Это делается по тому, что очень легко построить разбор текста по КС грамматике.
После чего уже не формальными правилами проверяется все остальное.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 13.06.11 16:50
Оценка: +1 -1 :)
Здравствуйте, WolfHound, Вы писали:

WH>Это бред.

WH>КС грамматика задает надмножество языка.

Да ладно, нужно просто различать синтаксический и семантический анализ. Синтаксис многих ЯП описывается КС грамматикой, но разумеется не каждая синтаксически корректная программа является семантически корректной.
Re[13]: язык заставляющий максимально изменить способ мышлен
От: WolfHound  
Дата: 13.06.11 17:13
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Да ладно, нужно просто различать синтаксический и семантический анализ. Синтаксис многих ЯП описывается КС грамматикой, но разумеется не каждая синтаксически корректная программа является семантически корректной.

Это бредовая терминология. Читай до просветления.
Автор: WolfHound
Дата: 11.02.11
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[14]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 13.06.11 18:18
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

DM>>Да ладно, нужно просто различать синтаксический и семантический анализ. Синтаксис многих ЯП описывается КС грамматикой, но разумеется не каждая синтаксически корректная программа является семантически корректной.

WH>Это бредовая терминология. Читай до просветления.
Автор: WolfHound
Дата: 11.02.11


Это общепринятая разумная терминология. Ты там дальше признался, что ее не понимаешь ("Честно говоря я вообще не понимаю какую часть компилятора можно назвать семантическим анализатором?"), это твои проблемы. На попытки ввести свои определения тебе там уже возражали, не вижу смысла возобновлять.
Re[15]: язык заставляющий максимально изменить способ мышлен
От: WolfHound  
Дата: 13.06.11 18:58
Оценка: :)
Здравствуйте, D. Mon, Вы писали:

DM>Это общепринятая разумная терминология.

Миллион мух не может ошибаться.
Ага, конечно.

DM>Ты там дальше признался, что ее не понимаешь ("Честно говоря я вообще не понимаю какую часть компилятора можно назвать семантическим анализатором?"), это твои проблемы.

Нет. Это ты не можешь понять написанное.
Прочитай сообщение, на которое я дал ссылку.
Там подробно описана эта терминология и почему она бред.

Семантика в программировании — система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.

(С)
Обрати внимание на выделенное. Семантика это поведение!
Следовательно, семантический анализ это анализ поведения.
А теперь скажи, какое отношение к поведению имеют: поиск имен, разрешение перегрузки,...
А я тебе скажу: Ровно такое же как распознавание выражений и других конструкций языка.

А что в компиляторе можно назвать анализом поведения? Разве что оптимизатор и возможно кодогенератор.


DM>На попытки ввести свои определения тебе там уже возражали, не вижу смысла возобновлять.

Если определения неоднозначные их нужно менять.
Ибо они реально создают проблемы.
Примеры неоднозначностей я опять же приводил.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 13.06.11 19:45
Оценка: +1
Здравствуйте, WolfHound.

Ну вот, началось.

Читай до просветления.

Нет. Это ты не можешь понять написанное.
Прочитай сообщение, на которое я дал ссылку.


Ты серьезно полагаешь, что чтение того сообщения ведет к просветлению, что если я с ним тут же не согласился, то я его не понял, что ты точно знаешь, что я понял, а что нет, и что я то сообщение, которое не понял, вообще не читал (или что оно требует многократного прочтения)? Это мания величия или просто хамство?

И приведи, пожалуйста, полный список неправильных определений из википедии. А то одни определения из нее ты называешь бредовыми, и в доказательство ссылаешься на соседние определения из нее же.
Re[17]: язык заставляющий максимально изменить способ мышлен
От: WolfHound  
Дата: 13.06.11 19:57
Оценка: -1
Здравствуйте, D. Mon, Вы писали:

DM>Ну вот, началось.

Угу. Тебе, как и остальным нечего сказать по существу вопроса.
Единственное на что вы все способны это апелляция к авторитету.

DM>Ты серьезно полагаешь, что чтение того сообщения ведет к просветлению, что если я с ним тут же не согласился, то я его не понял, что ты точно знаешь, что я понял, а что нет, и что я то сообщение, которое не понял, вообще не читал (или что оно требует многократного прочтения)? Это мания величия или просто хамство?

Ты обвинил меня в том, что я что-то там не понимаю.
Но я подробно расписал то, что я якобы не понимаю в том сообщении, на которое дал ссылку. Причем написал, почему оно так получилось. Те я не только это понимаю, но и знаю всю подноготную вопроса.
Ты же выдрал цитату из контекста и попытался построить на ней, черт знает, какие выводы.
И какой я должен сделать из этих фактов вывод?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 14.06.11 03:20
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

WH>Угу. Тебе, как и остальным нечего сказать по существу вопроса.

WH>Единственное на что вы все способны это апелляция к авторитету.

Т.е. ты продолжаешь настаивать на своих сверхспособностях — знании того, что понимают или не понимают, могут или не могут собеседники?

WH>Ты обвинил меня в том, что я что-то там не понимаю.


Я не обвинял, лишь повторил за тобой.

WH>Ты же выдрал цитату из контекста и попытался построить на ней, черт знает, какие выводы.


Какие?

WH>И какой я должен сделать из этих фактов вывод?


Не стоит спешить с выводами из кажущихся фактов.
Я понимаю, что у тебя есть свои определения для устоявшихся терминов. Ничего страшного, медицине известны и более серьезные случаи. Некоторым удается держать себя в руках и продолжать нормальную жизнь в социуме. Некоторым помогают лекарства. Но самых буйных, настаивающих на своем видении, приходится изолировать.
Re[18]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 14.06.11 03:48
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Угу. Тебе, как и остальным нечего сказать по существу вопроса.


По существу вопроса:

Ошибка номер 1:

Синтаксический анализ отвечает на один вопрос: Принадлежит ли текст языку. Да или нет!
Дерево разбора это побочный эффект который некоторые не сознательные личности считают основным.


Именно дерево разбора — то, что используется остальными стадиями компилятора или интерпретатора, это именно то, что им нужно от синтаксического анализатора, вовсе не одно булево значение. Поэтому получение структурированного представления из линейного исходного потока и есть главная функция и определение синтаксического анализа. Это просто парсинг.

Ты считаешь программу с ошибками типизации не принадлежащей языку, синтаксически некорректной, однако в ряде языков такие ошибки могут быть выявлены лишь при исполнении, когда всякий синтаксический анализ уже должен быть завершен. Это явная ошибка.

Ошибка номер 2:

Семантика в программировании — система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.
(С)

Обрати внимание на выделенное. Семантика это поведение!
Следовательно, семантический анализ это анализ поведения.
А теперь скажи, какое отношение к поведению имеют: поиск имен, разрешение перегрузки,...


Ты тоже обрати внимание на выделенное тобою же. Семантика — это смысл. Программа и ее конструкции далеко не всегда вообще описывает поведение.

Вот тебе пример:
a = map (+1) [1..]

Это синтаксически и семантически корректный фрагмент кода на Хаскеле. Он имеет четкий синтаксис (доказательством чего служит соответствующее дерево разбора) и семантику (смысл), но вообще не задает никакого поведения, т.к. в конечной программе значение "a" может не понадобиться и никакого исполняющегося кода сгенерировано не будет. Или обращение будет, но как именно и что именно будет происходить зависит от реализации компилятора и рантайма, а также от вызывающего кода. Конкретное поведение не описывается этим куском кода.

Поэтому теперь я тебе скажу, какое отношение к поведению имеют: поиск имен, разрешение перегрузки,... (ты просил)
Они имеют отношение к определению смысла значений из дерева разбора. Это именно семантический анализ. К синтаксису никакого отношения не имеющий.

А теперь скажи: неужели тебе таких аргументов не приводили уже? Неужели нужно много раз рассказывать очевидные всем кроме тебя вещи?
Re[19]: язык заставляющий максимально изменить способ мышлен
От: WolfHound  
Дата: 14.06.11 08:46
Оценка: 10 (1) -1
Здравствуйте, D. Mon, Вы писали:

DM>Именно дерево разбора — то, что используется остальными стадиями компилятора или интерпретатора, это именно то, что им нужно от синтаксического анализатора, вовсе не одно булево значение. Поэтому получение структурированного представления из линейного исходного потока и есть главная функция и определение синтаксического анализа. Это просто парсинг.

Это у тебя полное непонимание предмета.
Синтаксис языка задает обычно бесконечное множество конечных строк.
Главная задача синтаксического анализатора это определить принадлежит строка языку или нет.
Генерация кода может, вообще не производится.
Например, в режиме IDE код, отвечающий за кодогенерацию, может вообще отсутствовать.

DM>Ты считаешь программу с ошибками типизации не принадлежащей языку, синтаксически некорректной, однако в ряде языков такие ошибки могут быть выявлены лишь при исполнении, когда всякий синтаксический анализ уже должен быть завершен. Это явная ошибка.

Явная ошибка это смешивать статическую и динамическую типизацию.

DM>Вот тебе пример:

DM>
a = map (+1) [1..]

Все что ты тут понаписал, не относится к тому, пропустит компилятор такую конструкцию или нет.
Если этот код изменить вот так:
a = map (+[]) [1..]

То дерево разбора будет построено. Но эту программу отвергнет типизатор.
А если мы работаем в режиме IDE и модуль кодогенерации у нас даже не загружен в память то о каком смысле вообще можно говорить?
Все что мы можем это определить принадлежность программы языку и то какие правила были нарушены.

DM>Поэтому теперь я тебе скажу, какое отношение к поведению имеют: поиск имен, разрешение перегрузки,... (ты просил)

DM>Они имеют отношение к определению смысла значений из дерева разбора. Это именно семантический анализ. К синтаксису никакого отношения не имеющий.
Если мы уберем вывод типов и напишем все те типы, которые вывел компилятор руками то, что изменится? Сгенерированный код будет тем же. Бит в бит. Ни смысл, ни поведение не изменятся. Семантика будет ровно той же.

Я тебе еще раз процитирую кусок своего сообщения:

Но по какойто не ведомой мне причине народ начал называть это так:
1)Лексический анализ.
2)Синтаксический анализ.
3)Семантический анализ.

Это бредовая терминология.
Ибо граница между этими тремя пунктами плавает в зависимости от используемых инструментов.
Например если взять ПЕГ то у нас вдруг пропадает лексический анализ.
Или еще очень популярный вариант выкинуть пункт 2 и писать эту часть разбора руками.
В этом случае у нас синтаксический анализ вдруг заменяется семантическим.

Очевидно синтакс языка не может зависить от деталей реализации конкретного компилятора.

Тебе не кажется странным, что согласно "общепринятой" терминологии граница между синтаксисом и семантикой начинает меняться в зависимости от используемых инструментов?
Меня это напрягло в тот момент, когда я первый раз услышал эту терминологию. И было это очень давно. Просто аргументы против этой терминологии у меня появились не сразу.

DM>А теперь скажи: неужели тебе таких аргументов не приводили уже?

Приводили. Но все они, как и твои аргументы были полны ошибок и непонимания.

DM>Неужели нужно много раз рассказывать очевидные всем кроме тебя вещи?

Далеко не всем. Люди, которые копали действительно глубоко, со мной согласны.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[20]: язык заставляющий максимально изменить способ мышлен
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 14.06.11 09:31
Оценка: 49 (1) +2
Здравствуйте, WolfHound, Вы писали:

DM>>Именно дерево разбора — то, что используется остальными стадиями компилятора или интерпретатора, это именно то, что им нужно от синтаксического анализатора, вовсе не одно булево значение. Поэтому получение структурированного представления из линейного исходного потока и есть главная функция и определение синтаксического анализа. Это просто парсинг.


WH>Это у тебя полное непонимание предмета.


Это у тебя привычка хамить или иллюзия чтения мыслей.
Постарайся понять или хотя бы запомнить: "не согласен" не означает "не понимаю".

WH>Синтаксис языка задает обычно бесконечное множество конечных строк.


Не спорю.

WH>Главная задача синтаксического анализатора это определить принадлежит строка языку или нет.


Нет. Это не главная задача. От того, что ты много раз повторишь свое мнение, оно не станет более обоснованным.

WH>Генерация кода может, вообще не производится.


Причем тут генерация кода?

WH>Например, в режиме IDE код, отвечающий за кодогенерацию, может вообще отсутствовать.


IDE тоже нужно дерево разбора или другое структурированное представление, а не булево значение.

DM>>Ты считаешь программу с ошибками типизации не принадлежащей языку, синтаксически некорректной, однако в ряде языков такие ошибки могут быть выявлены лишь при исполнении, когда всякий синтаксический анализ уже должен быть завершен. Это явная ошибка.

WH>Явная ошибка это смешивать статическую и динамическую типизацию.

Т.е. определение синтаксическгого анализа у тебя зависит от динамической или статической типизации? Это совсем дико.

DM>>Вот тебе пример:

DM>>
a = map (+1) [1..]

WH>Все что ты тут понаписал, не относится к тому, пропустит компилятор такую конструкцию или нет.

А я не об этом писал, вообще-то. Я пытался показать, что не надо семантику считать поведением. Тогда сложностей с пониманием семантического анализа будет меньше.

WH>Если этот код изменить вот так:

WH>
a = map (+[]) [1..]

WH>То дерево разбора будет построено. Но эту программу отвергнет типизатор.
WH>А если мы работаем в режиме IDE и модуль кодогенерации у нас даже не загружен в память то о каком смысле вообще можно говорить?

Причем тут кодогенерация? Она может всплыть, если считать семантику описанием поведения, но это ошибка, о чем я и сказал.

DM>>Поэтому теперь я тебе скажу, какое отношение к поведению имеют: поиск имен, разрешение перегрузки,... (ты просил)

DM>>Они имеют отношение к определению смысла значений из дерева разбора. Это именно семантический анализ. К синтаксису никакого отношения не имеющий.
WH> Если мы уберем вывод типов и напишем все те типы, которые вывел компилятор руками то, что изменится? Сгенерированный код будет тем же. Бит в бит. Ни смысл, ни поведение не изменятся. Семантика будет ровно той же.

И что? К чему ты это написал? Да, семантика и синтаксис не одно и то же, поэтому можно изменить синтаксис, не изменив семантики.

WH>Я тебе еще раз процитирую кусок своего сообщения:


Процитируй его еще 21 раз, пожалуйста. Вернее он не станет.
В частности, если делать синтаксический анализ руками, он не станет от этого семантическим.

WH>Очевидно синтакс языка не может зависить от деталей реализации конкретного компилятора.


Он и не зависит. Если использовать общепринятую терминологию, то проблем нет — вот есть языки Java и C#, вот есть их грамматики в таком-то формальном виде, вот есть генераторы парсеров, которые по ним строят синтаксические анализаторы. Все четко и ясно. И тут приходишь ты, меняешь определения и превращаешь все в кашу.

WH>Тебе не кажется странным, что согласно "общепринятой" терминологии граница между синтаксисом и семантикой начинает меняться в зависимости от используемых инструментов?


Она не начинает.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.