Jump to content

планрасчет

(Перенаправлено с Планкалкула )

планрасчет
Парадигма процедурный
Разработано Конрад Цузе
Впервые появился 1948 год ; 76 лет назад ( 1948 ) — впервые опубликована концепция.
Основные реализации
Plankalkül-Compiler от ФУ Берлина в 2000 г.
Под влиянием
Суперплан , Алгол 58 [ 1 ]

планрасчет ( Немецкое произношение: [ˈplaːnkalkyːl] ) — язык программирования в инженерных целях , разработанный Конрадом Цузе в период с 1942 по 1945 год. Это был первый язык программирования высокого уровня , разработанный для компьютера.

Kalkül (от латинского исчисления ) — это немецкий термин, обозначающий формальную систему (например, Hilbert-Kalkül , оригинальное название системы дедукции в стиле Гильберта ), поэтому Plankalkül относится к формальной системе планирования. [ 2 ]

История программирования

[ редактировать ]

В области создания вычислительных машин Цузе был самоучкой и разработал их, не зная о других уже существовавших механических вычислительных машинах, хотя позднее (построение Z3 ) он был вдохновлен книгой Гильберта и Аккермана по элементарной математике. логика (см. Основы математической логики ). [ 3 ] : 113, 152, 216  Для описания логических схем Цузе изобрел собственную диаграмму и систему обозначений, которую назвал «комбинаторикой кондиционалов» ( нем . Bedingungskombinatorik ). Закончив Z1 в 1938 году, Цузе обнаружил, что исчисление, которое он независимо разработал, уже существует и известно как исчисление высказываний . [ 4 ] : 3  Однако то, что имел в виду Цузе, должно было быть гораздо более мощным (исчисление высказываний не является полным по Тьюрингу и не способно описать даже простые арифметические вычисления). [ 5 ] ). В мае 1939 года он описал свои планы развития того, что впоследствии стало Планкалкюлем. [ 3 ] : 113, 152, 216  В своем блокноте он записал следующее:

Исторический указатель на доме в Хинтерштайне [ де ] , где Цузе работал над Планкалкюлем.

Работая над докторской диссертацией, Цузе разработал первую известную формальную систему записи алгоритмов. [ 6 ] : 9  способен обрабатывать ветвления и циклы. [ 7 ] : 18  [ 3 ] : 56  В 1942 году он начал писать шахматную программу в Планкалкюле. [ 3 ] : 216–217  В 1944 году Цузе встретился с немецким логиком и философом Генрихом Шольцем , который выразил признательность за использование Цузе логического исчисления . [ 8 ] В 1945 году Цузе описал Планкалкюля в неопубликованной книге. [ 9 ] Однако распад нацистской Германии помешал ему представить свою рукопись. [ 7 ] : 18 

В то время единственными двумя работающими компьютерами в мире были ENIAC и Harvard Mark I , ни один из которых не использовал компилятор, и ENIAC нужно было перепрограммировать для каждой задачи, меняя способ подключения проводов. [ 4 ] : 3 

Хотя большинство его компьютеров было уничтожено бомбами союзников, Цузе смог спасти одну машину, Z4 , и перевезти ее в альпийскую деревню Хинтерштайн. [ 6 ] : 8  (часть Бад-Хинделанга ).

Самая первая попытка создания алгоритмического языка была предпринята в 1948 г. К. Цузе. Его замечания были весьма общими, но это предложение так и не получило того внимания, которого оно заслуживало.

—Хайнц Рутисхаузер , создатель АЛГОЛА

Невозможно продолжать создавать компьютеры, что также было запрещено союзными державами. [ 10 ] – Цузе посвятил свое время разработке модели и языка программирования более высокого уровня. [ 7 ] : 18  В 1948 году он опубликовал статью в Archiv der Mathematik и представил ее на ежегодном собрании GAMM . [ 3 ] : 89  Его работа не привлекла большого внимания. [ нужна ссылка ] В лекции 1957 года Цузе выразил надежду, что Планкалкюль, «после некоторого времени, проведенного в роли Спящей красавицы , все же оживет». [ 4 ] : 3  Он выразил разочарование тем, что разработчики Алгола 58 так и не признали влияние Планкалкула на их собственные работы. [ 7 ] : 18  [ 6 ] : 15 

Планкалкюль был переиздан с комментариями в 1972 году. [ 11 ] Первый компилятор Plankalkül был реализован Иоахимом Хоманном в его диссертации 1975 года. [ 12 ] Другие независимые реализации последовали в 1998 году. [ 13 ] и 2000 г. в Свободном университете Берлина . [ 4 ] : 2 

Описание

[ редактировать ]

Планкалкюль провел сравнения с языком APL и реляционной алгеброй . Он включает в себя операторы присваивания, подпрограммы , условные операторы, итерацию, арифметику с плавающей запятой , массивы, иерархические структуры записей, утверждения, обработку исключений и другие расширенные функции, такие как целенаправленное выполнение . Plankalkül предоставляет структуру данных, называемую обобщенным графом ( verallgemeinerter Graph ), которую можно использовать для представления геометрических структур. [ 14 ]

Многие функции Plankalkül вновь появляются в более поздних языках программирования; Исключением является своеобразное двумерное обозначение, использующее несколько строк.

Некоторые особенности Plankalkül: [ 3 ] : 217 

  • только локальные переменные
  • функции не поддерживают рекурсию
  • поддерживает только вызов по значению
  • составные типы — это массивы и кортежи
  • содержит условные выражения
  • содержит цикл for и цикл while
  • нет перехода

Типы данных

[ редактировать ]

Единственный примитивный тип данных в Plankalkül — это однобитовый или логический тип ( нем . Ja-Nein-Werte — значение «да-нет» в терминологии Цузе). Обозначается идентификатором . Все дальнейшие типы данных являются составными и строятся из примитивов с помощью «массивов» и «записей». [ 15 ] : 679 

Итак, последовательность из восьми бит (которую в современных вычислениях можно рассматривать как байт ) обозначается и булева матрица размера к описывается . Существует также сокращенная запись, поэтому можно написать вместо . [ 15 ] : 679 

Тип может иметь два возможных значения и . Таким образом, 4-битная последовательность может быть записана как L00L, но в тех случаях, когда такая последовательность представляет число, программист может использовать десятичное представление 9. [ 15 ] : 679 

Запись двух компонентов и написано как . [ 15 ] : 679 

Тип ( нем . Art ) в Plankalkül состоит из 3 элементов: структурированного значения ( нем . Struktur ), прагматического значения ( нем . Typ ) и возможного ограничения возможных значений ( нем . Beschränkung ). [ 15 ] : 679  Типы, определяемые пользователем, обозначаются буквой A с номером, например – первый определяемый пользователем тип.

Цузе использовал множество примеров из теории шахмат: [ 15 ] : 680 

Координата шахматной доски (размер 8x8, поэтому 3 бита вполне достаточно)
квадрат доски (например, L00, 00L обозначает e2 в алгебраической записи )
фигура (например, 00L0 — белый король)
фигура на доске (например L00, 00L; 00L0 — белый король на e2)
доска (расположение фигур, описывает, какую фигуру содержит каждый из 64 квадратов)
состояние игры ( - доска, — игрок для перемещения, — возможность рокировки (2 за белых и 2 за чёрных), — информация о ячейке, по которой на проходе возможен проход

Идентификаторы

[ редактировать ]

Идентификаторы представляют собой буквенно-цифровые символы с номером. [ 15 ] : 679  Существуют следующие виды идентификаторов переменных: [ 9 ] : 10 

  • Входные значения ( нем . inputvalues,variables ) — отмечены буквой V.
  • Промежуточные, временные значения ( нем . Zwischenwerte ) — обозначаются буквой Z.
  • Константы ( нем . Constanten ) — обозначаются буквой С.
  • Выходные значения ( нем . Resultatwerte ) — отмечены буквой R.

Конкретная переменная определенного типа идентифицируется номером, написанным под типом. [ 15 ] : 679  Например:

, , и т. д.

Программы и подпрограммы обозначаются буквой P, за которой следует номер программы (и, возможно, подпрограммы). Например , . [ 15 ] : 679 

Выходное значение программы сохранено там в переменной доступен для других подпрограмм под идентификатором , и чтение значения этой переменной также означает выполнение соответствующей подпрограммы. [ 15 ] : 680 

Доступ к элементам по индексу

[ редактировать ]

Plankalkül обеспечивает доступ к отдельным элементам переменной с помощью «индекса компонента» ( нем . KomComponenten-Index ). Например, когда программа получает входные данные в переменную типа (состояние игры), затем — дает состояние доски, — фигура на клетке номер i, и бит номер j этой части. [ 15 ] : 680 

В современных языках программирования это будет описываться обозначениями, подобными V0[0], V0[0][i], V0[0][i][j] (хотя для доступа к одному биту в современных языках программирования битовая маска обычно используется ).

Двумерный синтаксис

[ редактировать ]

Поскольку индексы переменных записываются вертикально, каждая инструкция Plankalkül требует записи нескольких строк. [ нужна ссылка ]

Первая строка содержит тип переменной, затем номер переменной, отмеченный буквой V ( немецкий : Variablen-Index ), затем индексы переменных подкомпонентов, отмеченные буквой K ( немецкий : KomComponenten-Index ), а затем ( немецкий : Struktur-Index ), отмеченные буквой S. который описывает тип переменной. Тип не обязателен, но Цузе отмечает, что это помогает при чтении и понимании программы. [ 15 ] : 681 

В линии типы и можно было бы сократить до и . [ 15 ] : 681 

Примеры:

переменная V3 — список пары значений типа
Строку K можно пропустить, если она пуста. Следовательно, это выражение означает то же самое, что и выше.
Значение бита восьмерок (индекс 7), первой (индекс 0) пары, і-го элемента переменной V3, имеет логический тип ( ).

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

Использование переменной в качестве индекса для другой переменной в 2D-нотации Планкаля. Z5-й элемент переменной V3. Эквивалентно выражению V3[Z5] во многих современных языках программирования. [ 15 ] : 681 

Операция присвоения

[ редактировать ]

Цузе ввел в свое исчисление оператор присваивания, до него неизвестный в математике. Он отметил это надписью « » и назвал его знаком уступчивости ( нем . Ergibt-Zeichen ). Использование концепции задания является одним из ключевых различий между математикой и информатикой. [ 6 ] : 14 

Цузе писал, что выражение:

аналогично более традиционному математическому уравнению:

Есть утверждения, что изначально этот глиф использовал Конрад Цузе. в качестве знака назначения и начал использовать под влиянием Хайнца Рутисхаузера . [ 15 ] : 681  Кнут и Пардо считают, что Цузе всегда писал , и это был введен издателями «Об исчислении общего плана как средстве постановки схематически-комбинативных задач» в 1948 году. [ 6 ] : 14  На конференции ALGOL 58 в Цюрихе европейские участники предложили использовать символ присваивания, введенный Цузе, но американская делегация настояла на :=. [ 15 ] : 681 

Переменная, в которой хранится результат присваивания ( l-значение ), записывается справа от оператора присваивания. [ 6 ] : 14  Первое присвоение переменной считается объявлением. [ 15 ] : 681 

Левая часть оператора присваивания используется для выражения ( нем . Ausdruck ), которое определяет, какое значение будет присвоено переменной. В выражениях могут использоваться арифметические операторы, логические операторы и операторы сравнения ( и т. д.). [ 15 ] : 682 

Операция возведения в степень записывается аналогично операции индексации — с использованием строк в двумерной записи: [ 9 ] : 45 

Экспоненциальная запись в плановом исчислении

Поток управления

[ редактировать ]

Логические значения были представлены как целые числа с FALSE=0 и TRUE=1. Условный поток управления принял форму защищенного оператора. A -> B, который выполнил блок B если A было правдой. Также существовал оператор итерации вида W { A -> X; B -> Y}, который повторяется до тех пор, пока все охранники не станут ложными. [ 16 ]

Терминология

[ редактировать ]

Цузе назвал одну программу Rechenplan («план вычислений»). Он представил себе то, что он назвал Planfertigungsgerät («устройство для сборки планов»), которое автоматически переводило математическую формулировку программы в машиночитаемую перфорированную пленку , то, что сегодня назвали бы транслятором или компилятором . [ 3 ] : 45, 104, 105 

Исходное обозначение было двумерным. [ нужны разъяснения ] Для более поздней реализации в 1990-х годах была разработана линейная запись.

В следующем примере определяется функция max3 (в линейной транскрипции), вычисляющая максимум три переменные:

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

См. также

[ редактировать ]
  1. ^ Рохас, Рауль ; Хашаген, Ульф [на немецком языке] (2002). Первые компьютеры: история и архитектура . МТИ Пресс . п. 292. ИСБН  978-0-26268137-7 . Проверено 25 октября 2013 г.
  2. ^ Зенил, Гектор [в Викиданных] , изд. (2012). Вычислимая Вселенная: понимание и исследование природы как вычисления - с предисловием сэра Роджера Пенроуза . Сингапур: Всемирная научная издательская компания . п. 791.
  3. ^ Jump up to: а б с д и ж г Хеллиге, Ханс Дитер, изд. (январь 2004 г.) [ноябрь 2002 г.]. Написано в Бремене, Германия. Истории информатики. Видения, парадигмы, лейтмотивы (на немецком языке) (1-е изд.). Берлин / Гейдельберг, Германия: Springer-Verlag . стр. 45, 56, 89, 104–105, 113, 152, 216–217. дои : 10.1007/978-3-642-18631-8 . ISBN  978-3-540-00217-8 . ISBN   3-540-00217-0 . (xii+514 страниц)
  4. ^ Jump up to: а б с д и Рохас, Рауль ; Гёктекин, Джюнейт; Фридланд, Джеральд; Крюгер, Майк; Шарп, Людмила; Кунис, Денис; Лангмак, Олаф (январь 2004 г.) [ноябрь 2002 г.]. «Планкалкюль Конрада Цузе — его происхождение и современная реализация» (PDF) . В Хеллиге, Ганс Дитер (ред.). Истории информатики. Видения, парадигмы, лейтмотивы. Часть 3: Основные идеи и парадигмы разработки языков программирования и программирования (на немецком языке) (1-е изд.). Берлин / Гейдельберг, Германия: Springer-Verlag . С. 215–235 [2–4]. дои : 10.1007/978-3-642-18631-8_9 . ISBN  978-3-642-62208-3 . Архивировано из оригинала (PDF) 1 мая 2006 г. (21 [24] страницы)
  5. ^ «Почему пропозициональная логика не является полной по Тьюрингу?» . Математика. СтекExchange . 01 апреля 2013 г. Архивировано из оригинала 2 ноября 2023 г. Проверено 2 ноября 2023 г.
  6. ^ Jump up to: а б с д и ж Кнут, Дональд Эрвин ; Пардо, Луис Исидоро Трабб [на португальском языке] (август 1976 г.). «Раннее развитие языков программирования» (PDF) . Стэнфордский университет, факультет компьютерных наук. стр. 8, 9, 14, 15. Архивировано из оригинала (PDF) 12 сентября 2017 г. Проверено 28 декабря 2017 г.
  7. ^ Jump up to: а б с д Гилой, Вольфганг К. [на немецком языке] (апрель – июнь 1997 г.). «Plankalkül Конрада Цузе: первый язык программирования высокого уровня, не являющийся фон Нейманом» . IEEE Анналы истории вычислений . 19 (2). IEEE : 17–24. дои : 10.1109/85.586068 . (8 страниц)
  8. ^ Петцольд, Хартмут [на немецком языке] (1992). Современные художники-арифметики. Индустриализация вычислительной техники в Германии (на немецком языке). Мюнхен, Германия: CH Beck Verlag .
  9. ^ Jump up to: а б с Цузе, Конрад (1946) [1945]. Рохас, Рауль ; Вагнер, Г.; Шарп, Людмила; Шётткер-Зёль [Шётке-Зуль], Сюзанна (ред.). Планкалкюль (В версии 1945 года) (Рукопись) (на немецком языке). Интернет-архив Конрада Цузе. С. 10, 45. Идентификатор ZIA: 0233. Архивировано из оригинала 16 апреля 2015 г. Проверено 1 ноября 2023 г. (1+1+180 страниц)
  10. ^ Кой, Вольфганг [на немецком языке] (январь 2004 г.) [ноябрь 2002 г.]. «Что такое информатика? О появлении предмета в немецких университетах» . В Хеллиге, Ганс Дитер (ред.). Истории информатики. Видения, парадигмы, лейтмотивы. Часть 5: Изменение руководящих понятий в научной дисциплине информатика (на немецком языке) (1-е изд.). Берлин / Гейдельберг, Германия: Springer-Verlag . С. 473–498 [474]. дои : 10.1007/978-3-642-18631-8_17 . ISBN  978-3-540-00217-8 . ISBN   3-540-00217-0 . [1]
  11. ^ Цузе, Конрад (1972). Плановый расчет. Аннотированная перепечатка версии 1945 года (на немецком языке). Том 63. Санкт-Августин, Германия: Общество математики и обработки данных (GMD) / Федеральное министерство образования и науки (BMBW). БМВВ-GMD-63.
  12. ^ Хоманн, Иоахим (1979). ПЛАНКАЛКУЛ в сравнении с алгоритмическими языками . Серия исследований информатики и операций (на немецком языке). Том 7 (1-е изд.). Дармштадт, Германия: С. Тёхе-Миттлер-Верлаг (stmv). ISBN  3-87820-028-5 . (136 страниц) Содержание
  13. ^ Описание компилятора Plankalkül Вольфганга Мауэрера ; Мауэрер, Вольфганг (3 июня 2016 г.). «Планкалкюль Конрада Цузе» (на немецком языке). Реализация на немецком языке. Архивировано из оригинала 3 июня 2016 г. Проверено 3 октября 2017 г.
  14. ^ Гилой, Вольфганг К. [на немецком языке] (ноябрь 1990 г.), Plankalkül Конрада Цузе как предшественник современных моделей программирования (на немецком языке)
  15. ^ Jump up to: а б с д и ж г час я дж к л м н тот п д р Бауэр, Фридрих Л .; Весснер, Ганс (1972). «Планкалкюль» Конрада Цузе: предшественник современных языков программирования» (PDF) . Коммуникации АКМ . 15 (7): 678–685. дои : 10.1145/361454.361515 . S2CID   17681101 . Архивировано из оригинала (PDF) 20 февраля 2009 г. ( HTML )
  16. ^ Рохас, Рауль (2001). «Планисчисление» (PDF) . Энциклопедия компьютеров и компьютерной истории . Чикаго / Лондон: Издательство Fitzroy Dearborn . п. 634. ИСБН  1-57958235-4 . Проверено 26 мая 2023 г.

Дальнейшее чтение

[ редактировать ]
  • Цузе, Конрад (1943). Подходы к теории общих вычислений с особым рассмотрением исчисления высказываний и его применения к релейным схемам [ Создание универсальной теории вычислений с особым рассмотрением исчисления высказываний и его применения к релейным схемам ] (неопубликованная рукопись) (на немецком языке) . Документы Цузе 045/018.
  • Цузе, Конрад (1948-12-06) [ноябрь 1948]. Написано в Хопферау-бай-Фюссен, Германия. «Об исчислении общего плана как средстве постановки схематически-комбинативных задач». Архив математики (на немецком языке). 1 (6). Карлсруэ / Штутгарт / Базель, Германия: Birkhäuser Verlag : 441–449. дои : 10.1007/BF02038459 . eISSN   1420-8938 . ISSN   0003-889X . (9 страниц)
  • Рохас, Рауль ; Гёктекин, Джюнейт; Фридланд, Джеральд; Крюгер, Майк; Кунис, Денис; Лангмак, Олаф (февраль 2000 г.). Plankalkül: первый язык программирования высокого уровня и его реализация (PDF) . Берлин, Германия: Институт компьютерных наук, Свободный университет Берлина и Feinarbeit.de. Технический отчет B-3/2000. Архивировано из оригинала 1 мая 2006 г. [2] (22 страницы)
  • Брюинс, Брэм (8 января 2010 г.). «Планкалкюль» (PDF) (Диссертация). Архивировано (PDF) из оригинала 2 ноября 2023 г. Проверено 2 ноября 2023 г. (24 страницы)
[ редактировать ]
  • «Программа Планкалкюль» . Интернет-архив Конрада Цузе (на немецком и английском языках). 21 августа 2014 г. Архивировано из оригинала 21 августа 2014 г. Проверено 4 октября 2017 г. (Примечание. Java-апплеты и документы Plankalkül.)
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 75fd0f1ee038ea4d10e34ff94d29317b__1721246160
URL1:https://arc.ask3.ru/arc/aa/75/7b/75fd0f1ee038ea4d10e34ff94d29317b.html
Заголовок, (Title) документа по адресу, URL1:
Plankalkül - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)