Здравствуйте, Сергей Губанов, Вы писали:
СГ>Позвольте Вам не поверить. Я думаю, что программирование — это не искуство, а смесь науки и технологии. Поэтому не допускаю мысли об иррациональном подходе к данной дисциплине. Более того, языки программирования компьютеров — это инструменты. Инструменты могут быть простыми или сложными, маленькими или большими, но они всегда рациональны, стало быть обозримы, понятны, формализуемы и т. п..
Дак ведь инструменты художника: кисть, краски, холст, палитра, добавьте, что я пропустил, тоже рациональны. Или скульптора: камень, резец, ну или гипс, глина, что там еще. А почему статуями древнегреческих мастеров до сих пор восторгаются как знатоки, так и любители? Не потому ли, что греческие скульпторы уделяли внимание анатомии — как по мне, слишком скучная дисциплина. Да и процесс создания статуй или картин вполне рационален.
Инструмент писателя — еще проще: карандаш и бумага. Однако, "Евгений Онегин" или "Конек-Горбунок" не стареют.
Кстати, где-то читал, Поль Дирак получил свое уравнение практически "по наитию" после нескольких недель бесплодных игр с уравнениями.
А почему Кнут назвал свой труд "Искусство программирования"?
А еще попробуй найти в Сети книгу "Философский камень в программировании" ("progstone"). Может быть, прочитав ее, ты пересмотришь свои взгляды на жизнь.
Здравствуйте, Privalov, Вы писали:
P>Дак ведь инструменты художника: кисть, краски, холст, палитра, добавьте, что я пропустил, тоже рациональны.
А ведь действительно. Уж у художников, казалось бы, все стандартизовано. Инструменты стандартные, краски стандартные, даже техники рисунка стандартные. Только у одних получаются шедевры, а у других — никчемные поделки. Парадокс?
Здравствуйте, Дарней, Вы писали:
P>>Дак ведь инструменты художника: кисть, краски, холст, палитра, добавьте, что я пропустил, тоже рациональны.
Д>А ведь действительно. Уж у художников, казалось бы, все стандартизовано. Инструменты стандартные, краски стандартные, даже техники рисунка стандартные. Только у одних получаются шедевры, а у других — никчемные поделки. Парадокс?
Собственно так же, как и у математиков -- понятия и математический аппарат у всех одинаковый. А открытия почему-то только единицы делают.
Или взять очень близкое нам программирование. Тем же C++ масса людей пользуется. Только у одних почему-то все получается и не глючит, а другим руки отрывать нужно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, mefrill, Вы писали:
M>При прочих равных критериях!? Согласен ты с тем, что сложность грамматики — это один из критериев сложности языка? Большего я не утверждаю.
Один из — да. И то при условии наличия кучи других факторов.
Но опять же может быть довольно простая не LL(1)-грамматика. Ну, мало ли какая-нить хрень должна будет быть в конце конструкции? Для человека пустяк. А для LL(1)-прсера неразрешимая проблема.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>В такой постановке и я бы согласился. Т.е., если язык не позволяет написать читабельную программу — да, дефект (в плане читабельности) в нем.
+1
ПК> Но пока похоже, что mefrill говорит о чем-то другом, т.к. обсуждаемые языки программирования со сложными грамматиками читабельные программы писать позволяют.
Ох...ох...ооох... Похоже здесь все говорят о чем-то своем.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дарней, Вы писали:
Д>Если я не ошибаюсь, речь шла о самом языке описания регулярных выражений, а не о языках, которые можно с их помощью описать. Пусть Трурль поправит, если я ошибаюсь.
Мнэээ. А разве язык регекспов регулярный? Мне казалось, что он LL(1). Хотя бы потому, что там есть скобки.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Сергей! Ты действительно предложил лучший вариант, чем был изначально. Но дело тут вовсе не в тезисе. AF>>Дело в том, что сама область настолько обширна, что просто-напросто не описывается разумным образом с помощью каких-либо тезисов.
AF>> Это как красивая девушка. Или красивая картина, интересный фильм, шикарный автомобиль или марочное вино. Можно выдвинуть сколько угодно тезисов — как верных так и не верных. И всё равно — тезисы это одно — а девушка как и картина — совсем другое.
СГ>Позвольте Вам не поверить. Я думаю, что программирование — это не искуство, а смесь науки и технологии. Поэтому не допускаю мысли об иррациональном подходе к данной дисциплине. Более того, языки программирования компьютеров — это инструменты. Инструменты могут быть простыми или сложными, маленькими или большими, но они всегда рациональны, стало быть обозримы, понятны, формализуемы и т. п..
А кто говорит об иррациональном подходе?
Я как раз исхожу из того, что любое искусство, любое мастерство, любая магия имеет совершенно чёткую структуру — которую можно выделить, воспроизвести и которой можно научиться самому и научить других. Вопрос лишь в умении это делать.
Однако это вовсе не означает, что оптимальный путь научиться водить автомобиль — это изучение атомарной струкуры вещества, из которого состоит автомобиль. И для того, что бы научиться рисовать врядли будет оптимальным проводить многомерный статистический анализ распределения краски на холсте
Нужно выбирать средства адекватные цели.
AF>> Спроси себя — зачем ты затеваешь все эти дискуссии?
СГ>Ответ на этот вопрос мне известен точно. Практически все затеянные мной дискуссии на этом форуме имеют одну определённую цель.
Это очень похоже на банальный снобизм и высокомерное пренебрежение по отношению к другим участникам форума. Мол вам не дано понять. Ну и стоит ли удивляться тому, что мы постоянно наблюдаем адекватную реакцию?
Будь проще. Ну и что страшного, если ты просто поделишься со всеми остальными своей целью? Ну скажешь ты, что занимаешься анализом закономерностей в синтаксисе языка и их влиянием на качество кода. Кто-то тебя поддержит. Кто-то посмеётся и будет против. Но в любом случае это заслуживает уважения и наверняка найдутся такие, кто захотят помочь. Ведь тот же Влад при правильном к нему подходе может тебе здорово помочь, вместо того, что бы лупить веслом по голове.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>>>Состояний может быть бесконечно много, но если они, например, перенумерованы, то достаточно помнить только номер. Соответственно человек легко будет помнить одновременно 7 +/- 2 номеров.
СГ>Хотя, конечно, на счет бесконечности это я не прав. Ведь сам номер состояния может быть таким большим что в голове не уберется.
Потому что сама постановка вопроса неправильная.
В голове у человека не 7 номеров, а стек из 7 ячеек.
Так что для случаев, когда мы имеем дело с конструкциями языка, дающими вложенность более, чем размер стека, то есть, 5-7 нетерминальных символов (пусть сколь угодно сложных, поскольку человек не нумерует мысли, а воспринимает их скорее как цельные образы — свёрнутые или развёрнутые), сложность семантического (сворачивающего-разворачивающего смыслы этих символов) анализа оказывается столь великой, что практически неподъёмной, что я и демонстрирую написанием данного предложения.
Здравствуйте, Дарней, Вы писали:
К>>Мнэээ. А разве язык регекспов регулярный? Мне казалось, что он LL(1). Хотя бы потому, что там есть скобки.
Д>Да нет, конечно. Он даже не LL(1), а скорее LL(*). Но сложен в прочтении он совсем не поэтому.
Здравствуйте, Кодт, Вы писали:
К>...что я и демонстрирую написанием данного предложения.
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Здравствуйте, Дарней, Вы писали:
Д>А ведь действительно. Уж у художников, казалось бы, все стандартизовано. Инструменты стандартные, краски стандартные, даже техники рисунка стандартные. Только у одних получаются шедевры, а у других — никчемные поделки. Парадокс?
Возможно. Однако, главная часть любого инструмента есть голова его владельца (c) не помню. По-моему, я (а может, и не я) уже это постил. IMHO, все же в этом направлении следует искать разгадку этого парадокса — в мышлении.
Здравствуйте, Кодт, Вы писали:
Д>>Да нет, конечно. Он даже не LL(1), а скорее LL(*). Но сложен в прочтении он совсем не поэтому.
К>Естественно, что не поэтому.
Ну вот осталось только убедить в этом великого и ужасного СГ
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Состояний может быть бесконечно много, но если они, например, перенумерованы, то достаточно помнить только номер. Соответственно человек легко будет помнить одновременно 7 +/- 2 номеров.
23 2343 3233 2344 23
переведу, на всякий случай:
простите, но мне почему-то кажется, что ты что-то не то спорол. Или, когда читаешь текст программы, у тебя в голове цифирки возникают?
Здравствуйте, mefrill, Вы писали:
VD>>А вот как раз LL(1) тут ни на что не влияет. M>А с этим не согласен. Ограничение на грамматику означает ограничение на сложность структуры языка, что в свою очередь, означает ограничение на его сложность при понимании. Поэтому, я бы сказал так: простота и сложность восприятия человеком языка определяется множеством факторов, и в том числе, ограничением на структуру порождающей грамматики языка.
Если уж на то пошло то ни C++, ни C#, ни даже Oberon не порождаются контекстно свободными грамматиками из-за требования одного определения, предварительного объявления итп...
Но тем не мение человек легко расправляется с языками порожденными контекстно зависимыми грамматиками.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Если уж на то пошло то ни C++, ни C#, ни даже Oberon не порождаются контекстно свободными грамматиками из-за требования одного определения, предварительного объявления итп... WH>Но тем не мение человек легко расправляется с языками порожденными контекстно зависимыми грамматиками.
страшно даже представить, если кто-то вдруг захочет перевести язык на true LL
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, vdimas, Вы писали:
V>>В прошлый раз, вроде, сошлись на том, что есть т.н. "полная" грамматика языка, и есть подходы к реализации компиляторов, которые разбивают процесс распознавания предложений языка на несколько этапов, каждый из которых оперирует упрощенными правилами и результатами предыдущих этапов.
VD>Ты может и сходился. Я как считал, что есть грамматика и все остальное, так и считаю. Все же понятие определенное и довольно однозначное.
Какая именно грамматика есть? Уточни, плз.
Полная грамматика большинства современных ЯП высокого уровня является контекстно-зависимой. Поэтому, распознаватель-автомат (даже с бесконечной магазинной памятью) построить практически нереально. Поэтому распознавание в компиляторах бьют на этапы. Ты, очевидно, имеешь в виду этап синтаксического разбора?