Está en la página 1de 5

La notación polaca, la de Jan

Łukasiewicz o de prefijo
a notaciones de prefijo (o polaca, en homenaje a Jan Łukasiewicz), de infijo y de postfijo (o polaca inversa) son formas de
escritura de expresiones algebraicas que se diferencian por la posición relativa que toman los operadores y los operandos. En la
notación de prefijo, el operador se escribe delante de los operandos (+ 3 4), entre los operandos en la notación de infijo (3 + 4) y
tras los operandos en la de posfijo (3 4 +).

La notación de prefijo fue propuesta en 1924 por el matemático, lógico y filósofo polaco Jan Łukasiewicz (1878-1956), de allí
el nombre alternativo por la que se conoce.

Jan Łukasiewicz.
Imagen: Wikimedia Commons.
Al igual que la de postfijo, la notación polaca permite prescindir de los paréntesis en el caso de operadores de aridad fija
conocida. Por ejemplo, la operación 5 * (12 + 4).puede escribirse en prefijo como: * 5 (+ 12 4); o sencillamente: * 5 + 12 4 (y
como 5 12 4 + *en postfijo).

Łukasiewicz introdujo esta notación con la intención de simplificar la lógica proposicional. El matemático y lógico Alonzo
Church la mencionaba en su libro clásico Introduction to Mathematical Logic (1956) como una notación digna de observación.
Aunque dejó pronto de utilizarse en lógica, encontró su lugar en las ciencias de la computación. Por ejemplo, el lenguaje de
programación LISP basa precisamente su sintaxis en la notación polaca.
Las calculadoras Hewlett-Packard usan la notación polaca inversa, económica en número de entradas, pero que requiere un
esfuerzo adicional para la interpretación del resultado. Esta empresa utilizó este sistema por primera vez en 1968, en la
calculadora de sobremesa HP-9100A. Y fue también ésta la notación de la primera calculadora científica de bolsillo, la HP-35,
usada entre 1972 y 1975.

La
HP9100A y la HP-35. Creada con imágenes de Wikimedia Commons.
En ciencias de la computación, la notación de postfijo se usa en lenguajes de programación orientados a pila y en sistemas
basados en tuberías.

Pero volvamos, para finalizar, a Jan Łukasiewicz, al que rendimos hoy homenaje porque falleció un 13 de febrero, en Dublin,
donde emigró tras la Segunda Guerra Mundial.

Como ya hemos comentado, trabajó fundamentalmente en lógica proposicional, sistema formal en el que pensaba realizar
innovaciones. Estudió los sistemas axiomáticos de la lógica e impulsó las lógicas multivaluadas, dando una interpretación de
la lógica modal.

2.2.1 Notacion Polaca


La notación polaca, también conocida como notación prefija, es un tipo
de notación que se aplica en lógica, aritmética y álgebra. creada por Jan
Łukasiewicz allá por los años 20 del siglo XX. Su principal característica,
y por lo que se la conoce como notación prefija, es que los operadores
preceden a los operandos, lo que significa, traducido al ámbito de la
lógica, que las conectivas preceden a las variables.

El alcance de un operador queda perfectamente determinado por su


posición en la fórmula, cuanto más a la izquierda se haye un operador
mayor alcance tiene. Del mismo modo, la conectiva principal de una
fórmula en notación polaca es la situada más a la izquierda.

Este tipo de notación evita por tanto el uso de símbolos auxiliares


(paréntesis, corchetes…) para establecer el alcance de las conectivas, a
diferencia de la notación estándar. Esta notación puede leerse sin
ambigüedad sin recurrir a estos símbolos. Esta característica hace su
escritura más compacta.

Por ejemplo, el axioma de no contradicción, que en notación estándar


escribimos ¬(p ∧ ¬ p), en notación polaca lo expresaríamos así: NKpNp.

Conectivas en notación polaca


Tradicionalmente, la notación polaca usa letras mayúsculas para
expresar conectivas, tomando normalmente la primera letra del nombre
de la conectiva enpolaco. Aquí tenemos una lista con los símbolos más comunes:

Notación Notación
Conectiva
estándar polaca
Negación ¬ N
Implicación → C
Conjunción ∧ K
Disyunción ∨ A
Bicondicional ↔ E
Posibilidad ⋄ M
Necesidad ◻ L
Cuantificador
∀ Π
universal
Cuantificador
∃ Σ
existencial

Definición de fórmula bien formada en notación


polaca
Tomando la lista anterior de conectivas en notación polaca más un
conjunto de variables proposicionales como alfabeto de un lenguaje,
tenemos la siguiente definición recursiva de fórmula bien formada en
dicho lenguaje:
 Sea α una variable proposicional. α es una fórmula bien formada.
 Sean α, β fórmulas bien
formadas. Nα, Cαβ, Kαβ, Aαβ, Eαβ, Mα, Lα, Πα, Σα son fórmulas bien
formadas.
Método para traducir una fórmula en notación
estándar a notación polaca
(1) Buscamos la conectiva principal y escribimos la equivalente en
notación polaca.
(2) Si la conectiva es unaria, tomamos su argumento como una
subfórmula y aplicamos (1).
(3) Si la conectiva es binaria, (3a) tomamos el primer argumento y
aplicamos (1), a continuación tomamos el segundo argumento y
aplicamos (1).
(4) Si el símbolo es una variable proposicional, la escribimos a
continuación.
El procedimiento acaba en un número finito de pasos dado que en
sucesivas aplicaciones de (1) la complejidad de la fórmula disminuye. Si
se trata de una fórmula bien formada, el procedimiento acabará por
darnos otra fórmula bien formada en notación polaca. Baste esta
descripción para mostrar el carácter formal del procedimiento.
En la práctica, resultaría tedioso aplicar este procedimiento paso por
paso. Resulta más adecuado entender la mecánica por medio de
ejemplos y aplicarla directamente; con cierto entrenamiento la
traducción se hace de manera casi automática.
Como ejemplo de este procedimiento vamos a utilizar una instancia de la
ley de De Morgan, que en notación estándar escribiríamos
así: ¬(p ∧ q) → (¬p ∨ ¬q). En este ejemplo la conectiva principal es la
implicación, una conectiva binaria, cuyos argumentos tienen como
conectiva principal la negación y la disyunción respectivamente.
Tendremos que traducir las sucesivas subfórmulas hasta las variables
variables proposicionales.

Notación
Notación estándar Operación
polaca
¬(p ∧ q) → (¬p ∨ ¬q
C (1), (3)
)
¬(p ∧ q) →
C_____ _____ (3a)
(¬p ∨ ¬q)
¬(p ∧ q) CN (1)
¬(p ∧ q) CN____ (2)

p ∧ q CNK_ _
(1), (3)

p ∧ q CNKp
(3a), (4)

p ∧ q CNKpq
(3b), (4)
¬(p ∧ q) → (¬p ∨ ¬q
CNKpq_____ (3b)
)
(1),
¬p ∨ ¬q CNKpqA__ __
(3)
¬p ∨ ¬q CNKpqA__ __ (3a)

¬p CNKpqAN_
(1), (2)

¬p CNKpqANp
(4)
¬p ∨ ¬q CNKpqANp__ (3b)

¬q CNKpqANpN_
(1), (2)

¬q CNKpqANpNq
(4)

Algoritmo para convertir expresiones infijas en postfijas (RPN)

1. Inicializar la pila
2. Definir la prioridad del conjunto de operaciones
3. Mientras no ocurra error y no sea fin de la expresión infija haz:
Si el carácter es:
 PARENTESIS IZQUIERDO colocarlo en la pila
 PARENTESIS DERECHO extraer y desplegar los valores hasta encontrar
paréntesis izquierdo.pero NO desplegarlo
 UN OPERADOR
a) Si la pila esta vacía o el operador tiene más alta prioridad que el
operador del tope de la pila insertar el operador en la pila.
b) En caso contrario extraer y desplegar el elemento del tope de la pila y
repetir la comparación con el nuevo tope

 UN OPERANDO desplegarlo
4. Al final de la expresión extraer y desplegar los elementos de la pila hasta que se vacié.

También podría gustarte