П'' - P′′
Парадигма | Императив, структурированный |
---|---|
Разработано | Коррадо Бём |
Впервые появился | 1964 |
Печатная дисциплина | нетипизированный |
Диалекты | |
Brainfuck | |
Под влиянием | |
Brainfuck |
П'' (P двойное простое[1]) примитивный компьютер язык программирования сделано Коррадо Бём[2][3] в 1964 году для описания семьи Машины Тьюринга.
Определение
(здесь и далее написано П'') формально определяется как набор слов в алфавите с четырьмя инструкциями , следующее:
Синтаксис
- и слова в P ′ ′.
- Если и слова в P ′ ′, то - слово в P ′ ′.
- Если слово в P ′ ′, то слово в P ′ ′.
- Только слова, полученные из трех предыдущих правил, являются словами в P ′ ′.
Семантика
- ленточный алфавит Машина Тьюринга с левой бесконечной лентой, будучи пустой символ, эквивалентный .
- Все инструкции в P ′ ′ перестановки из набора всех возможных конфигураций ленты; то есть все возможные конфигурации как содержимого ленты, так и положения головки.
- это предикат говоря, что текущий символ не . Это не инструкция и не используется в программах, а вместо этого используется для определения языка.
- означает переместить головку ленты вправо на одну ячейку (если возможно).
- означает заменить текущий символ с , а затем переместите головку ленты на одну ячейку влево.
- означает функциональная композиция . Другими словами, инструкция выполняется до .
- означает повторять в пока цикл, с условием .
Отношение к другим языкам программирования
- P ′ ′ был первым »ИДТИ К без "императива" структурное программирование язык, который нужно доказать Полный по Тьюрингу[2][3]
- В Brainfuck язык (помимо его команд ввода / вывода) является незначительной неформальной вариацией P ′ ′. Бём дает явные P ′ ′ программы для каждой из набора базовых функций, достаточных для вычисления любых вычислимая функция, используя только , и четыре слова куда с обозначая th повторять из , и . Это эквиваленты шести соответствующих команд Brainfuck. [, ], +, -, <, >. Обратите внимание, что поскольку , увеличивая текущий символ раз будет повторяться так, чтобы в результате символ в текущей ячейке «уменьшился» на единицу ().
Пример программы
Бём[2] дает следующую программу для вычисления предшественника (Икс-1) целого числа Икс > 0:
что переводится прямо в эквивалент Brainfuck программа:
>[>]<[−[<[<]]−<]>+
Программа ожидает, что целое число будет представлено в биективное основание-k обозначение, с кодирование цифр соответственно, и иметь до и после строки цифр. (Например, в биективном основании-2 число восемь будет закодировано как , потому что 8 в биективном основании-2 равно 112.) В начале и в конце вычислений магнитофон находится на перед цифровой строкой.
Рекомендации
- ^ https://github.com/Pbtflakes/pdbl
- ^ а б c Бём, Ч .: «О семействе машин Тьюринга и родственном языке программирования», ICC Bull. 3, 185-194, июль 1964 г.
- ^ а б Бём, К. и Якопини, Г.: «Блок-схемы, машины Тьюринга и языки только с двумя правилами формирования», CACM 9 (5), 1966. (Примечание: это наиболее цитируемая статья по теорема о структурированной программе.)
Веб ссылки
- П''Онлайн-переводчик: Демонстрация итеративного 99 бутылок пива песня построена в 337568 П'' инструкции.