gatoazul (gatoazul) wrote,
gatoazul
gatoazul

Categories:

Бесполезная информация

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

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

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

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

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

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

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

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

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

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

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

5 => A

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

5 =: А

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

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

А := 5
Subscribe

  • Азиз Несин. Босфорская болезнь

    Азиз Несин Босфорская болезнь В пятницу мне под руку случайно попалась книга. Открылась на рассказе Саита Фаика «Царь-тунец». У него…

  • Анекдот

    Во время чтения российского патриотического сегмента на ум как-то невольно приходит старый детский анекдот. Зайчонок: А мне папа компьютер купил!…

  • Кризис 2008 года

    Еще один пост по материалам книжки Ha-Joon Chang, "Economics: the user's guide". Вам никогда не было интересно, что конкретно было…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 23 comments

  • Азиз Несин. Босфорская болезнь

    Азиз Несин Босфорская болезнь В пятницу мне под руку случайно попалась книга. Открылась на рассказе Саита Фаика «Царь-тунец». У него…

  • Анекдот

    Во время чтения российского патриотического сегмента на ум как-то невольно приходит старый детский анекдот. Зайчонок: А мне папа компьютер купил!…

  • Кризис 2008 года

    Еще один пост по материалам книжки Ha-Joon Chang, "Economics: the user's guide". Вам никогда не было интересно, что конкретно было…