stringtranslate.com

язык Бёма

Язык Бёма относится к языку, машине и методу перевода, разработанным Коррадо Бёмом во второй половине 1950 года. Бём использовал эту работу как часть своей диссертации , представленной в 1951 году (измененной после представления), опубликованной в 1954 году. [1] [2] [3]

Компилятор

Работа Бёма описывала первый полный метациклический компилятор . Код компилятора был на удивление точным и состоял всего из 114 строк кода. [4] Поскольку язык допускал только два вида выражений: полностью заключенные в скобки или без скобок, но с приоритетом операторов, код компилятора был разделен на две части. 59 строк использовались для обработки формул с скобками, 51 — для обработки выражений приоритета операторов и 4 — для выбора между этими двумя случаями. [5]

Техника разбора выражений Бёма имела только линейную сложность. Она генерировала инструкции для структуры, похожей на бинарное дерево . [6]

Язык

Язык Бёма состоял только из операций присваивания . Он не имел специальных конструкций, таких как определяемые пользователем функции, управляющие структуры . Переменные представляли только неотрицательные целые числа . Для выполнения перехода нужно было записать специальную переменную π. Для выполнения ввода-вывода использовался символ ?. [7]

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

A. Положим i = 0 (плюс π → G базовый адрес 100 для 100 → i входной массив а). B → π
B. Пусть новый вход a[i] будет π' → B дано. Увеличьте i на единицу, ? → ↓i и остановиться, если i > 10, i+1 → i в противном случае повторите B. [(1∩(i∸110))∙Ω]+[(1∸(i∸110))∙B] → π

∩ представляет минимальный оператор, а ∸ — логическую разницу.

Ссылки

  1. Кнут, стр. 35–36, 99
  2. ^ "Докторская диссертация Коррадо Бёма, перевод". Питер Сестофт, ИТ-университет Копенгагена . 2016. Получено 10 июля 2023 г.
  3. ^ Бём, Коррадо (1954). Calculatrices digitales du déchiffrage de Formulas logico-mathématiques par la Machine même dans la Conception du Program (Докторская диссертация) (на французском языке). ETH Цюрих. doi : 10.3929/ethz-a-000090226. hdl : 20.500.11850/132662.
  4. ^ Кнут, стр. 36
  5. ^ Кнут, стр. 39
  6. ^ Кнут, стр. 40
  7. ^ Кнут, стр. 36-37

Источники