P′′ — низкоуровневый язык программирования, созданный в 1964 годуКоррадо Бёмом.
Определение
P′′ формально определяется как набор слов алфавита из 4 инструкций {R, λ, (, )} следующим образом:
Синтаксис
- R и λ — слова.
- Если p и q — слова, то pq — слово.
- Если q — слово, то (q) — слово.
- Остальные последовательности символов не являются словами.
Семантика
{a0, a1, ..., an} (n ≥ 1)— алфавит бесконечной ленты (аналогичной ленте машины Тьюринга),a0- пустой символ.- R — перенос головки ленты на одну ячейку вправо.
- λ — заменить текущий символ
aiнаai+1(anзаменяется наa0) и переместить головку на одну ячейку влево. - (q) — повторять операцию (операции) q, пока значение текущей ячейки не равно
a0. - Операции выполняются слева направо в том порядке, в котором они записаны, до тех пор, пока справа ничего не останется.
Дополнительные факты
- P′′ — первый полный по Тьюрингуязык программирования без оператора GOTO.
- Команды языка Brainfuck (за исключением ввода и вывода) могут быть переведены на P′′ и обратно: