Как Паскаль выпил Алголя и закусил Ершолом

В школе я учил информатику — тогда только ввели ее курс, и в ее рамках мы писали программы на некоем языке программирования с русскими служебными словами. Еще тогда у меня появился вопрос: почему в этом языке присваивание обозначается так странно — «:=», то есть двоеточием и равно. В других языках просто «равно» (я знал про Си и Бейсик). Ну, допустим, язык придумывали математики, а у них нездоровая чувствительность и они считают, что присваивание — это не равенство. Ладно. Но при чем тут двоеточие?

Затем оказалось, что так же точно присваивание пишется в Паскале и его потомках. В современных языках ему тоже нашлось применение, например, в Перле 6 с двоеточием «привязка», а без — простое присваивание. В Го тоже есть какие-то правила на этот счет.

Вообще на такие вопросы отвечать сложно — символы могли быть выбраны когда-то кем-то по каким-то соображениям, а потом просто становятся традицией, которую копируют не задумываясь. Кто сейчас знает, что символ «равно» изображает параллельные прямые, потому что по замыслу автора ничего равнее их быть не может?

Впрочем, иногда в древних книгах можно найти ответы.

Итак, про двоеточие — равно.

Курс информатики был внедрен в советское образование по настоянию академика Ершова. В то время считалось, что скоро компьютеры будут окружать нас повсюду и умение программировать будет требоваться каждому как умение читать.

Через тридцать лет, правда, выяснилось, что все наоборот. Компьютеры и правда окружают со всех сторон, но уже никто ничего не читает, не говоря уже о программировании. И то, и другое стало уделом профессионалов.

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

Следовательно, двоеточие-равно пришло из Алгола, и оттуда же попало в Паскаль, который был его непосредственным потомком. Но как оно появилось в Алголе?

Алгол задумывался как международный универсальный язык, понятный всем в мире — его первоначальное название вообще было IAL — Internattional Algorithmic Language. Разрабатывала его группа специалистов из разных стран мира, а где группа — там и свары, и компромиссы.

Исходно присваивание в Алголе было правым и обозначалось вполне логичной стрелкой:

5 => A

Затем решили, что на некоторых устройства ввода и вывода нету знака «больше» (не забывайте, это были пятидесятые!), поэтому для убогих перфораторов знак упростили: равно и двоеточие, как некий намек на стрелку:

5 =: А

Потом начались разногласия между американцами и европейцами. Американцы, скорее всего под влиянием Фортрана, настаивали на левом присваивании и в конце концов убедили комитет.

Так и родилось пресловутое

А := 5

А вы понимаете разницу между правым и левым присваиванием?

Материал: https://gatoazul.livejournal.com/580465.html
Настоящий материал самостоятельно опубликован в нашем сообществе пользователем Proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@newru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

Читайте также:

3 Комментарий
старые
новые
Встроенные Обратные Связи
Все комментарии
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
3 лет назад

Некоторые жЭ читают справа налево..
Во фсём виноваты микран ты.

Henren
Henren
3 лет назад

На практике левое присваивание вызывает некоторые неудобства, например, визуальный переизбыток скобок при цепочном приведении типов для урегулирования приоритетов. В чистом функциональном программировании не используются переменные, и явный оператор присваивания не нужен. Пиндосы — тупые, в общем.

Hmm4
Hmm4
3 лет назад

Способ рассуждения «сделаем, а потом куда-нибудь засунем» против «сначала определим, что менять, а потом сделаем». Второй лучше.

Чтобы добавить комментарий, надо залогиниться.