статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

Планкалкюль

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск

Планкалкюль (нем. Plankalkül исчисление планов), в первый в мире высокоуровневый язык программирования, созданный немецким инженером Конрадом Цузе в 1945 году. В переводе на русский это название соответствует выражению «планирующее исчисление».

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

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

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

Работа в отрыве от других специалистов Европы и США привела к тому, что лишь незначительная часть его работы стала известной. Полностью работа Цузе была издана лишь в 1972 году. И вполне возможно, что если бы язык Планкалкюль стал известен раньше, пути развития компьютерной техники и программирования могли бы измениться.

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

Приведённый ниже пример показывает программу, которая вычисляет максимум для трёх переменных при помощи вызова функции max:

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

[править] Литература

[править] Ссылки

Пространства имён

Варианты
Просмотры
Действия