язык Бема
Эта статья в значительной степени или полностью опирается на один источник . ( декабрь 2014 г. ) |
Язык Бема относится к языку, машине и методу перевода, разработанным Коррадо Бёмом во второй половине 1950 года. Бём использовал эту работу как часть своей диссертации , представленной в 1951 году (с поправками после подачи), опубликованной в 1954 году. [ 1 ] [ 2 ] [ 3 ]
Компилятор
[ редактировать ]Работа Бема описала первый полный метациклический компилятор . Код компилятора был удивительно точным и состоял всего из 114 строк кода. [ 4 ] Поскольку язык принимал только два вида выражений: полностью в скобках или без скобок, но с приоритетом операторов, то код компилятора разбился на две части. 59 строк использовались для обработки формул с круглыми скобками, 51 — для обработки выражений приоритета операторов и 4 — для выбора между этими двумя случаями. [ 5 ]
Техника анализа выражений Бема имела только линейную сложность. Он генерировал инструкции для структуры, похожей на двоичное дерево . [ 6 ]
Язык
[ редактировать ]Язык Бема состоял только из операций присваивания . В нем не было специальных конструкций, таких как пользовательские функции, структуры управления . Переменные представляли собой только неотрицательные целые числа . Чтобы совершить прыжок, нужно было записать специальную переменную π. Для выполнения ввода-вывода? использовался символ. [ 7 ]
Пример программы, которая загружает массив из 11 элементов из входных данных, будет выглядеть следующим образом.
A. Set i = 0 (plus the π → G base address 100 for 100 → i the input array a). B → π
B. Let a new input a[i] be π' → B given. Increase i by unity, ? → ↓i and stop if i > 10, i+1 → i otherwise repeat B. [(1∩(i∸110))∙Ω]+[(1∸(i∸110))∙B] → π
∩ представляет минимальный оператор и ∸ логическую разность.
Ссылки
[ редактировать ]- ^ Кнут, с. 35–36, 99
- ^ «Доктор философии Коррадо Бема, перевод» . Питер Сестофт, ИТ-университет Копенгагена . 2016 . Проверено 10 июля 2023 г.
- ^ Бём, Коррадо (1954). Цифровые калькуляторы для расшифровки логико-математических формул самой машиной в оформлении программы (Докторская диссертация) (на французском языке). ETH Цюрих. дои : 10.3929/ethz-a-000090226 . hdl : 20.500.11850/132662 .
- ^ Кнут, с. 36
- ^ Кнут, с. 39
- ^ Кнут, с. 40
- ^ Кнут, с. 36-37
Источники
[ редактировать ]- Кнут, Дональд Э .; Пардо, Луис Трабб (1976). « Раннее развитие языков программирования ». Стэнфордский университет, факультет компьютерных наук.