Interested Article - P??

P′′ низкоуровневый язык программирования , созданный в 1964 году Коррадо Бёмом .

Определение

P′′ формально определяется как набор слов алфавита из 4 инструкций {R, λ, (, )} следующим образом:

Синтаксис

  1. R и λ — слова.
  2. Если p и q — слова, то pq — слово.
  3. Если q — слово, то (q) — слово.
  4. Остальные последовательности символов не являются словами.

Семантика

  1. {a 0 , a 1 , ..., a n } (n ≥ 1) — алфавит бесконечной ленты (аналогичной ленте машины Тьюринга), a 0 - пустой символ.
  2. R — перенос головки ленты на одну ячейку вправо.
  3. λ — заменить текущий символ a i на a i+1 ( a n заменяется на a 0 ) и переместить головку на одну ячейку влево.
  4. (q) — повторять операцию (операции) q , пока значение текущей ячейки не равно a 0 .
  5. Операции выполняются слева направо в том порядке, в котором они записаны, до тех пор, пока справа ничего не останется.

Дополнительные факты

  1. P′′ — первый полный по Тьюрингу язык программирования без оператора GOTO .
  2. Команды языка Brainfuck (за исключением ввода и вывода) могут быть переведены на P′′ и обратно:
Brainfuck P′′
> R
< L=r'λ
+ r=λR
- r'=rrrrr...rr ( n раз)
[ (
] )
Источник —

Same as P??