Хотелось бы пообсуждать такую тему, как удобство синтаксиса языка программирования. Кроме того, что это дело вкуса и привычки, должны быть какие-то неизменные критерии. Найти такой информации я не смог, что могу предложить навскидку:
1) Односимвольные ошибки должны в большинстве случаев приводить к ошибкам компиляции, в крайнем случае, к предупреждениям. Вроде бы понятно, все мы ошибаемся. Если результат опечатки приходится отлавливать в отладчике, это грустно.
2) Нагрузка на символы. Нехорошо, когда один и тот же символ в одном и том же блоке может выполнять разную семантическую нагрузку. Это усложняет восприятие программы и может ввести неоднозначности.
3) Неоднозначности. Понятно, что лучше, если их нет
4) Простота разработки CASE-средств и трансляторов. Пункты 2-4 перекливаются
5) Соотношение количества символов/количество букв в тексте. Или, как вариант, соотношения идентификаторы/символьные лексемы Большое количество символов приводит к тому, что текст программы представляется криптологическим изысканием. Малое количество специальных символов приводит к обратному эффекту, когда за словами не видно сути (COBOL).
6) Семантическая нагрузка на один символ текста. Перекликается с п. 5.
7) Максимум модуля разности между двумя смежными строками. Не совсем приятно, когда одна строка трисимвола, другая шестьдесят. Потом опять три, потом опять шестьдесят. Слишком неровный правый край.
8) Длина часто используемых операторов. Чем короче, тем лучше (долгло набирать)
Что я пропустил? что бы добавили вы? Ваши предпочтения по указаным пунктам? Приоритеты? Что в синтаксисе какого языка вам больше всего мешало? Что, наоборот, нравилось?
Здравствуйте, Mystic, Вы писали:
M>Хотелось бы пообсуждать такую тему, как удобство синтаксиса языка программирования. Кроме того, что это дело вкуса и привычки, должны быть какие-то неизменные критерии. Найти такой информации я не смог, что могу предложить навскидку:
M>1) Односимвольные ошибки должны в большинстве случаев приводить к ошибкам компиляции, в крайнем случае, к предупреждениям. Вроде бы понятно, все мы ошибаемся. Если результат опечатки приходится отлавливать в отладчике, это грустно.
M>2) Нагрузка на символы. Нехорошо, когда один и тот же символ в одном и том же блоке может выполнять разную семантическую нагрузку. Это усложняет восприятие программы и может ввести неоднозначности.
M>3) Неоднозначности. Понятно, что лучше, если их нет
M>4) Простота разработки CASE-средств и трансляторов. Пункты 2-4 перекливаются
M>5) Соотношение количества символов/количество букв в тексте. Или, как вариант, соотношения идентификаторы/символьные лексемы Большое количество символов приводит к тому, что текст программы представляется криптологическим изысканием. Малое количество специальных символов приводит к обратному эффекту, когда за словами не видно сути (COBOL).
M>6) Семантическая нагрузка на один символ текста. Перекликается с п. 5.
M>7) Максимум модуля разности между двумя смежными строками. Не совсем приятно, когда одна строка трисимвола, другая шестьдесят. Потом опять три, потом опять шестьдесят. Слишком неровный правый край.
M>8) Длина часто используемых операторов. Чем короче, тем лучше (долгло набирать)
M>Что я пропустил? что бы добавили вы? Ваши предпочтения по указаным пунктам? Приоритеты? Что в синтаксисе какого языка вам больше всего мешало? Что, наоборот, нравилось?
Эта задача уже была решена несколько (10-20) лет назад — идеальный синтаксис уже изобретен. Самая главная фишка заключается в том, что язык должен порождаться контекстно свободной грамматикой (а если это возможно в каких-то простых случаях, то даже регулярной грамматикой). Вот и все.
Смотри
http://www.inr.ac.ru/~info21/cpascal/cp_report_1.4_rus.htm
Здравствуйте, S.Yu.Gubanov, Вы писали:
SYG>Эта задача уже была решена несколько (10-20) лет назад — идеальный синтаксис уже изобретен. Самая главная фишка заключается в том, что язык должен порождаться контекстно свободной грамматикой (а если это возможно в каких-то простых случаях, то даже регулярной грамматикой). Вот и все.
SYG>Смотри http://www.inr.ac.ru/~info21/cpascal/cp_report_1.4_rus.htm
Ну нельзя же так сразу зарубать тему

Пусть народ пообсуждает, поспорит и придёт к правильному выводу

Да и в КП не всё идеально, кое сто можно и поправить...
Ivan