Планкалкюль
Планкалкюль (нем. 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
Литература
- Zuse, Konrad (1948/49). «Über den allgemeinen Plankalkül als Mittel zur Formulierung schematisch-kombinativer Aufgaben». Arch. Math. 1, pp. 441—449, 1948/49.
- Der Plankalkül. / Zuse, Konrad / Gesellschaft für Mathematik und Datenverarbeitung. / BMBW — GMD — 63 — 1972. — Nr.63. (нем.)
- Konrad Zuse’s Plankalkül: The First High-Level «non von Neumann» Programming Language./ Giloi, Wolfgang, K. // IEEE Annals of the History of Computing, Vol. 19 — 1997. — No.2, (англ.)
- Plankalkül: The First High-Level Programming Language and its Implementation / Rojas, Raúl et al., (англ.)
- Zuse, Konrad. "Der Plankalkül". Gesellschaft für Mathematik und Datenverarbeitung. Nr. 63, BMBW - GMD - 63, 1972. — полный текст рукописи 1945 года (нем.)
Ссылки
- Краткое описание языка
- Берлинский центр информатики им. Конрада Цузе(нем.)
- Список литературы по языку Планкалкюль(нем.)
- Описание языка Планкалкюль на сайте Хорнста Цузе в Техническом университете г. Берлин (англ.)
- Планкалкюль - первый язык программирования высокого уровня
Основные языки программирования (список • сравнение • IDE • история • хронология) |
|
|---|---|
| Используемые в разработке |
Ада • АПЛ • Ассемблер • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# • ColdFusion • Common Lisp • D • dBase • Delphi • Eiffel • Erlang • F# • Forth • Фортран • Gambas • Groovy • Haskell • Icon • Java • JavaScript • Limbo • Lua • MATLAB • Object Pascal • Objective-C • OCaml • Oz • Оберон • Parser • Паскаль • Perl • PHP • PowerBASIC • PureBasic • Python • ПЛ/1 • Пролог • Ruby • Scala • Scheme • Smalltalk • SQL • PL/SQL • Tcl • Vala • Visual Basic • VB.NET |
| Академические | |
| IEC61131-3 |
Instruction List • ST • FBD • Ladder Diagram • SFC |
| Прочие | |
| Эзотерические | |
da:Plankalkül de:Plankalkül el:Plankalkül en:Plankalkül es:Plankalkül fr:Plankalkül hu:Plankalkül it:Plankalkül ja:プランカルキュール nl:Plankalkül no:Plankalkül pt:Plankalkül sl:Plankalkül sv:Plankalkül
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....