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

Если вас спросят, какой язык программирования высокого уровня был первым, то вы наверняка скажете, что это Фортран. Я сейчас буду говорить о Фортране? Нет. Значит, вы ответили неправильно? Тоже нет. Всё дело в постановке вопроса...

Какая же подковырка может содержаться в таком, казалось бы, простом вопросе? Дело в том, что в вопросе не уточняется, был ли язык программирования полностью реализован (то есть, для него был создан полноценный рабочий компилятор) или он был просто придуман как концепция. Если спрашивают о том, какой высокоуровневый язык программирования был реализован первым, то здесь правильным ответом и в самом деле будет Фортран. Если же вопрос поставлен о первом придуманном языке программирования, то речь идёт уже не о Фортране, а о Планкалкюле. Вы ничего о нём не слышали? Что ж, думаю, вам будет интересно узнать краткую историю этого языка программирования.

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

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

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

 

С точки зрения современных реалий программирования, синтаксис Планкалкюль сложно назвать удобным и прозрачным. Впрочем, не стоит подходить к этому языку слишком строго - ведь Цузе создавал его для себя, и, кроме того, тогда не требовалось писать такие программы, как сейчас. Чтобы можно было примерно представить себе синтаксис первого высокоуровневого языка программирования, я приведу пример программы, позаимствованный мною с "Википедии". Она вычисляет максимум трёх чисел:

P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) => R0[:8.0]
max(V0[:8.0],V1[:8.0]) => Z1[:8.0]
max(Z1[:8.0],V2[:8.0]) => R0[:8.0]
END
P2 max (V0[:8.0],V1[:8.0]) => R0[:8.0]
V0[:8.0] => Z1[:8.0]
(Z1[:8.0] < V1[:8.0]) -> V1[:8.0] => Z1[:8.0]
Z1[:8.0] => R0[:8.0]
END

Мир, как я уже упоминал, узнал о Планкалкюле достаточно поздно. Работа, посвящённая этому языку программирования, в полном виде вышла только в 1972 году. А первый компилятор языка и вовсе появился только через пять лет после смерти Конрада Цузе - в 2000 году (его создали в Берлинском университете). Впрочем, всё-таки лучше позже, чем никогда, - ещё в 1957 году Конрад Цузе говорил, что когда-нибудь Планкалкюль, как спящая красавица, оживёт. И, возможно, если бы Планкалкюль стал известен раньше, языки программирования могли бы развиваться в другом направлении. Впрочем, говорят, что история не терпит сослагательного наклонения, а потому Планкалкюль стал тем, чем он стал - первым высокоуровневым языком программирования, намного опередившим своё время.

И когда в следующий раз вас спросят, какой язык программирования был первым, то обязательно уточните: первым придуман или первым реализован? И помните, что хоть реализован первым был Фортран, всё-таки именно Планкалкюль был первым придуманным языком программирования высокого уровня.

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

05 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!