1259 подписчиков
Сегодня позволю себе пофилософствовать по поводу языков программирования. Поинтересовался тут, оказывается с момента изобретения ЭВМ было придумано около 8 тысяч языков программирования. Есть языки, которые используются, их обычно ругают и есть языки, которые не используют, о них молчат. Те, которые не используются также делятся на два класса. К первому классу относятся языки, которые когда-то использовались, но теперь они вышли из употребления. Ну вот Алгол, например. Я не слышал, чтобы его сегодня использовали. А когда-то он был очень популярным языком. И есть вторая группа языков. Их называют эзотерическими. Они изначально не предусмотрены для использования. Просто кому-то было интересно создать что-то необычное.
Но придумать язык это только полдела. Нужно для него написать компилятор или интерпретатор. И разные компиляторы или интерпретаторы к одному и тому же языку могут несколько по-разному трактовать те или иные положения языка. Иногда некоторые нюансы языка просто не описаны и разработчики трансляторов вынуждены сами додумывать положения языка. В результате один компилятор будет обрабатывать конструкцию иначе чем другой.
А иногда разработчики добавляют свои возможности, а некоторые возможности, описанные изначально, вообще не реализуют. Вот в результате такого и получаются диалекты. Есть, например, FreePascal, а есть PascalABC. А есть и другие диалекты языка Pascal. А у диалектов могут появиться и свои стандарты и тогда они уходит в самостоятельное плавание.
Или вот ещё ситуация. Как известно в языке Си есть макросредства, обрабатываемые препроцессором. Макросредства позволяют создавать добавлять в программу на Си дополнительные элементы. Так, что например, можно определить элементы другого языка программирования, например Pascal. И вот вы пишите программу в которой элементы языка Си перемежаются элементами языка Pascal. И вот вопрос. На каком языке написана программа? И я не знаю ответа на этот вопрос. Этот язык никто не описывал, но вот есть программа, написанная на нём. Используя макросредства можно изменить язык до неузнаваемости, превратив его в нечто другое. И это совсем не диалект.
Есть ещё один интересный вопрос. В стандарт языка, как правило, включают и какие-то библиотеки. Т.е. другими словами, такие библиотеки считаются частью языка. Но вместо них можно использовать другие. Разумно ли в этом случае считать язык другим или диалектом языка?
Язык программирования предназначен для общения программиста с компьютером. С помощью этого языка вы облекаете алгоритмические формулировки в форму, которая понятна машине. Поэтому язык это только посредник, чтобы он работал, голова программиста должна быть способна рождать алгоритмы. Вот чего часто не хватает тем студентам, которые пытаются овладеть этой профессией.
2 минуты
8 декабря 2023