P′′
(denotado también simplemente P′′) es un lenguaje de programación esotérico, creado por Corrado Böhm[1][2] en 1964 para describir a una familia de máquinas de Turing. DefiniciónP′′ se define formalmente como un conjunto de palabras sobre un alfabeto de cuatro instrucciones {R, λ, (, )}, como sigue: Sintaxis
Semántica
Relación con otros lenguajes de programaciónP′′ fue el primer lenguaje imperativo de programación estructurada que prescindió del GOTO para ser demostrada su pertenencia a los Turing completos.[1][2] El lenguaje Brainfuck (aparte de sus comandos de E/S) es una variación menos informal de P′′, que influyó a su vez posteriormente la creación de otros lenguajes esotéricos, tales como Ook! y Tink. Böhm[1] define programas explícitos para P′′ para cada uno de los conjuntos de funciones básicas suficientes para computar cualquier función computable, utilizando solo (, ) y las cuatro palabras r ≡ λR, r′ ≡ rn, L ≡ r′λ, R. Estos son los comandos equivalentes de los seis usados respectivamente por Brainfuck: [, ], +, -, <, >. Note que desde an+1 = a0, realizar r (símbolo de "incremento" en la celda actual) n veces dará como resultado un "decremento" del símbolo en la celda actual (r′). Ejemplos de programasBöhm[1] define el siguiente programa para computar el antecesor (x-1) de un entero x > 0:
lo que se traduce directamente al equivalente programa en brainfuck
Este programa recibe como entrada un número entero definido en notación de numeración biyectiva base-n, con a1, ..., an codificando los dígitos 1,...,n, respectivamente, y agregando un blanco a0 antes y después del string del dígito. (Por ejemplo, en numeración biyectiva base-2, el número 8 se codificaría como a0a1a1a2a0, porque 8 = 1*22 + 1*21 + 2*20.) Al comienzo y al final del cómputo, la cabeza de la cinta está en el a0 precediendo el string que representa el dígito. Referencias
|
Portal di Ensiklopedia Dunia