Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Синтаксис языков программирования

Никто не доволен своей внешностью, но все довольны своим умом.

Форма и содержание должны находиться в гармонии
Форма и содержание должны
находиться в гармонии
        

Есть некоторое количество программистов, среди которых распространено мнение, что синтаксис в языке — не главное.

А вполне себе второстепенное. Что язык программирования — это всего лишь язык, и для хорошего программиста конкретный синтаксис не имеет значения. Есть и более радикальное мнение, что синтаксис — это атавизм, который должен исчезнуть с переходом на структурные редакторы программ, которые позволят напрямую работать с семантикой, минуя текстовую форму представления программы.

        Но действительно ли синтаксис так не важен? «Язык программирования — это лишь форма записи инструкций, которые должен выполнить компьютер» — скажет кто-то. Форма или содержание — это тема для целой диссертации по философии, может даже докторской. Однако хочется высказать свои посильные соображения, поскольку синтаксис языка программирования — это форма, а семантика — это содержание.

        Когда форма важнее содержания? Когда речь идёт о предметах искусства. Например, содержанием статуи «Давид» является гипс. Ценность этого гипса определяется формами, которые придал статуе её автор Микеланджело. Ценность утилитарных же вещей в отличие от искусства, определяется, как правило, чаще всего содержанием. Форма лишь улучшает возможности пользования этим содержанием.

        Синтаксис языка программирования может помогать пользоваться этим содержанием, но может и мешать. Если мы ставим перед собою цель разработать самый хороший язык программирования, то и его синтаксис должен быть совершенным. Программист не должен продираться к своей цели сквозь дебри синтаксиса. Чтобы язык умножал число своих сторонников, то он должен понравиться с первого взгляда. Как говорят, «у вас не будет второго шанса произвести первое впечатление».

        Когда человек выбирает себе спутника жизни, то очень значимо внешнее: красота, внешний вид, одежда, манеры себя вести, речь, походка. Годы спустя приоритеты меняются: куда более значимыми становятся вопросы «содержания»: ум, дорота, уважение, душевная чуткость. Насколько форма соответствовала содержанию, узнаётся потом. В зависимости от этого нас ждёт счастье или разочарование. Но это этот второй этап возможен только после первого, на котором нас очаровывают формы.

        Так что давайте отнесёмся к синтаксису со всей серьёзностью и тщательностью.

Опубликовано: 2012.09.25, последняя правка: 2014.12.23    13:39

ОценитеОценки посетителей
   █████████████████████████ 12 (60%)
   █████ 2 (10%)
   ███████ 3 (15%)
   ███████ 3 (15%)

Отзывы

✅  2015/04/07 03:54, misha_shar53          #0 

Я считаю что синтаксис языка является главным для языка программирования. Возможности и свойства языка выражены в его синтаксисе. Если речь идет о красоте языка, то это прежде всего красота его синтаксиса. Разработка синтаксиса языка является наиболее творческой частью создания нового языка программирования.

✅  2019/01/11 10:55, utkin          #1 

Когда форма важнее содержания? Когда речь идёт о предметах искусства. Например, содержанием статуи «Давид» является гипс.

Содержанием статуи Давид является не гипс, а СЮЖЕТ. Соответственно, далее на неверно построенном выводе следуют неверные результаты. Смысл статуи заключается в подготовке к борьбе (Давида с Голиафом). Это я ещё не гуманитарий, они за "гипс" стерли вас в порошок.

Если мы ставим перед собою цель разработать самый хороший язык программирования, то и его синтаксис должен быть совершенным.

Еще один неоднозначный вывод. Обратитесь к естественным языкам и Вы увидите просто океан несовершенства в кофе мужского рода и йогурте вместо ёгурта. При этом естественными языками занимаются на порядки больше специалистов и их история гораздо более длительна. Затраты в человеко-часах просто неисчислимы. Число носителей не сопоставимо. Соответственно попытка создания совершенного синтаксиса очевидно глупа. Формализуйте поток — какой должен быть синтаксис в измеряемых критериях и решайте проблему. Вам нужна краткость это один критерий. Выразительность это другой критерий. Понятность это третий критерий. Когда Вы начнете оценивать язык в формальных показателях, внезапно придет озарение, что Вам нужны взаимоисключающие параграфы и ложки нет.

Когда человек выбирает себе спутника жизни, то очень значимо внешнее: красота, внешний вид, одежда, манеры себя вести, речь, походка.

Это мужской подход к решению задачи. А таких решателей менее половины на планете Земля. Соответственно задача рассматривается не во всех условиях и не при полном объеме начальных данных.

В зависимости от этого нас ждёт счастье или разочарование.

Это очень поверхностная оценка взаимоотношений между мужчиной и женщиной. Если Вы имеете большой опыт (а я уверен, что так и есть), то должны учитывать факт, что со временем оба партнера меняют свои психологические характеристики (причем в худшую сторону), что со временем может приводить к критическому накоплению проблем. В общем аналогия не уместна.

Добавить свой отзыв

Написать автору можно на электронную почту
mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Содержание

Каким должен быть язык программирования?

Анализ и критика

●  Устарел ли текст как форма представления программы

●  Русский язык и программирование

●  Многоязыковое программирование

Синтаксис языков программирования

Синтаксический сахар

●  Некоторые «вкусности» Алгол-68

●  «Двухмерный» синтаксис Python

●  Почему языки с синтаксисом Си популярнее языков с синтаксисом Паскаля?

●  Должна ли программа быть удобочитаемой?

●  Стиль языка программирования

●  Тексто-графическое представление программы

●●  Разделители

●●  Строки программы

●●  Слева направо или справа налево?

●  Комментарии

●●  Длинные комментарии

●●  Короткие комментарии

●●  Комментарии автоматической генерации документации

●●  Нерабочий код

●●  Помеченные комментарии

●  Нужны ли беззнаковые целые?

●  Шестнадцатиричные и двоичные константы

●  Условные операторы

●  Переключатель

●  Циклы

●●  Продолжение цикла и выход из него

●  Некошерный «goto»

●  Изменение приоритетов операций

●  Операции присвоения и проверки на равенство. Возможно ли одинаковое обозначение?

●  Так ли нужны операции «&&», «||» и «^^»?

●  Постфиксные инкремент и декремент

●  Почему в PHP для конкатенации строк используется «.»?

●  Указатели и ссылки в C++

●●  О неправомерном доступе к памяти через указатели

●  Обработка ошибок

●  Функциональное программирование

●●  Нечистые действия в чистых функциях

●●  О чистоте и нечистоте функций и языков

●●  Макросы — это чистые функции, исполняемые во время компиляции

●●  Хаскелл, детище британских учёных

●●  Измеряем замедление при вызове функций высших порядков

●●  C vs Haskell: сравнение скорости на простом примере

●●  Уникальность имён функций: за и против

●●  Каррирование: для чего и как

●●  О тестах, доказывающих отсутствие ошибок

●  Надёжные программы из ненадёжных компонентов

●●  О многократном резервировании функций

●  Оценка надёжности функции с несколькими реализациями

●  Использование памяти

●  Почему динамическое распределение памяти — это плохо

●  Как обеспечить возврат функциями объектов переменной длины?

●●  Типы переменного размера (dynamically sized types, DST) в языке Rust

●●  Массивы переменной длины в C/C++

●●  Размещение объектов в стеке, традиционный подход

●●  Размещение объектов переменной длины с использованием множества стеков

●●  Размещение объектов переменной длины с использованием двух стеков

●●  Реализация двухстековой модели размещения данных

●●  Двухстековая модель: тесты на скорость

●●  Изменение длины объекта в стеке во время исполнения

●●  Размещение объектов переменной длины с использованием одного стека

●  Можно ли забыть о «куче», если объекты переменной длины хранить в стеке

●  Безопасность и размещение объектов переменной длины в стеке

●  Массивы, структуры, типы, классы переменной длины

●  О хранении данных в стеке, вместо заключения

●  Реализация параметрического полиморфизма

Описание языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее




Последние отзывы

2024/11/21 11:02 ••• Автор сайта
Продолжение цикла и выход из него

2024/11/12 20:24 ••• Вежливый Лис
Правила языка: строки, комментарии

2024/11/12 13:10 ••• Вежливый Лис
Новости и прочее

2024/11/12 00:32 ••• Автор сайта
Оценка надёжности функции с несколькими реализациями

2024/11/06 02:50 ••• Иван
Энтузиасты-разработчики компиляторов и их проекты

2024/11/05 23:51 ••• Борис К.
Изменение приоритетов операций

2024/11/05 23:38 ••• Борис К.
Шестнадцатиричные и двоичные константы

2024/11/04 12:50 ••• Неслучайный читатель
Русский язык и программирование

2024/11/01 12:11 ••• ИванАс
Русской операционной системой должна стать ReactOS

2024/10/27 14:01 ••• Автор сайта
О русском ассемблере

2024/09/29 23:40 ••• Автор сайта
Десятка худших фич C#

2024/09/29 13:10 ••• Автор сайта
ЕС ЭВМ — это измена, трусость и обман?

2024/09/22 21:08 ••• Вежливый Лис
Бесплатный софт в мышеловке