viernes, 8 de mayo de 2009

COMPILADORES ( NOTACION POLACA INVERSA )

Notación polaca inversa


Notación Polaca Inversa (RPN)La Notación Polaca Inversa (RPN en inglés, Reverse polish notation) es un método de introducción de datos alternativo al algebraico. Fue creado por el matemático polaco Jan Łukasiewicz en 1920.

En la década de 1960 ese método fue introducido en las computadoras. Posteriormente, Hewlett-Packard lo aplicó por primera vez en la calculadora de sobremesa HP-9100A en 1968.

Su principio es el de evaluar los datos directamente cuando se introducen y manejarlos dentro de una estructura LIFO (Last In First Out), lo que optimiza los procesos a la hora de programar.

Básicamente la diferencias con el método algebraico son que, al evaluar los datos directamente al introducirlos, no es necesario ordenar la evaluación de los mismos, y que para ejecutar un comando, primero se deben introducir todos sus argumentos, así, para hacer una simple suma 'a+b=c' el RPN lo manejaría a b +, dejando el resultado 'c' directamente.

Nótese que la notación polaca inversa no es literalmente la imagen especular de la notación polaca: con operadores no-conmutativos (como la resta o la división), el orden de los operandos ha de permanecer constante. Así pues, "6/2" se traduce a la notación polaca como "/ 6 2" y a la notación polaca inversa como "6 2 /". Con números superiores a 9, también se sigue la costumbre de escribirlos de izquierda a derecha.

Ventajas

Los cálculos se realizan secuencialmente según se van introduciendo operadores, en vez de tener que esperar a escribir la expresión al completo. Debido a esto, se cometen menos errores al procesar cálculos complejos.
El proceso de apilación permite guardar resultados intermedios para un uso posterior. Esta característica permite que las calculadoras RPN computen expresiones de complejidad muy superior a la que alcanzan las calculadoras algebraicas.
No requiere paréntesis ni reglas de preferencia, al contrario que la notación algebraica, ya que el proceso de apilamiento permite calcular la expresión por etapas.
En las calculadoras RPN, el cálculo se realiza sin tener que apretar la tecla "=" (aunque se requiere pulsar la tecla "Enter" para añadir cifras a la pila).
El estado interno de la calculadora siempre consiste en una pila de cifras sobre las que se puede operar. Dado que no se pueden introducir operadores en la pila, la notación polaca inversa es conceptualmente más sencilla y menos dada a errores que otras notaciones.
En términos educativos, la notación polaca inversa requiera que el estudiante comprenda la expresión que se está calculando. Copiar una expresión algebraica directamente a una calculadora sin comprender la aritmética dará un resultado erróneo.

Desventajas

La adopción casi universal de la notación algebraica en los sistemas educativos hace que no haya muchas razones prácticas inmediatas para que los alumnos aprendan la notación polaca inversa. No obstante, muchos estudiantes afirman que, una vez aprendida, la notación polaca inversa simplifica en gran manera el cálculo de expresiones complejas.
Es difícil usar la notación polaca inversa al escribir a mano, dada la importancia de los espacios para separar operandos. Se requiere un caligrafía muy clara para evitar confundir, por ejemplo, 12 34+ (=46) de 123 4+ (=127) o 1 234+ (=235).
Las calculadoras RPN son relativamente raras. Forzado a usar una calculadora algebraica, el usuario de una calculadora RPN típicamente comete más errores de lo normal debido a sus hábitos de uso normales. No obstante, esto no es un problema tan grave en la actualidad, debido a que muchos sistemas operativos pueden emular calculadoras RPN.

El algoritmo RPN

El algoritmo que utilizan las calculadoras RPN es relativamente simple:

Si hay elementos en la bandeja de entrada
Leer el primer elemento de la bandeja de entrada.
Si el elemento es un operando.
Poner el operando en la pila.
Si no, el elemento es una funcion (los operadores, como "+", no son más que funciones que toman dos argumentos).
Se sabe que la función x toma n argumentos.
Si hay menos de n argumentos en la pila
(Error) El usuario no ha introducido suficientes argumentos en la expresión.
Si no, tomar los últimos n operandos de la pila.
Evaluar la función con respecto a los operandos.
Introducir el resultado (si lo hubiere) en la pila.
Si hay un sólo elemento en la pila
El valor de ese elemento es el resultado del cálculo.
Si hay más de un elemento en la pila
(Error) El usuario ha introducido demasiados elementos.

VISITA ESTE SITIO PARA VER MAS INFORMACION

http://es.wikipedia.org/wiki/Notaci%C3%B3n_polaca_inversa

http://www.fagro.edu.uy/~topografia/docs/El%20sistema%20RPN.pdf

http://upsg01.foroactivo.com/tema-2-estructura-de-datos-paralelo-21-f9/notaciones-prefijainfija-y-posfija-t199.htm

http://lml.ls.fi.upm.es/ftp/pd/www/Problemas/problemas/node33.html

3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Esta en lo cierto compañero no es la inversa la postfija de la prefija, porque en la postfija utilizamos la prioridad de los operadores para realizar nuestras operaciones.
    Y en verdad no cuentan los parentesis, pero si cuenta para realizar las operaciones, es decir lo que se DEBE realizar primero, lo dentro del parentesis.
    DANNY GUZMAN

    ResponderEliminar
  3. Esta muy bien toda la información y que no hay inversas en las notaciones pero te falta hacer ejemplos de la notación polaca o prefija para entender mejor la situación

    ResponderEliminar