Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LENGUAJES Y AUTOMATAS II
INDICE GENERAL
Resumen I
Introduccin..II
Marco Terico...II
Desarrollo..III
ConclusionesV
ReferenciasV
1
INTRODUCCION
La presente investigacin se refiere al tema de los diferentes tipos de notaciones y como
nos van ayudar en el compilador, estos en algn momento nos van a causar algn
conflicto a la hora de que se programen ya que en muchas ocasiones el desarrollador no
detecta ciertas inconsistencias de este tipo normalmente en los datos y se cree que se
ha desarrollado un buen compilador cuando no es as.
Hay que sealar que las posibles operaciones que puedan llegar hacer en nuestro
compilador y tomarlos en cuenta ya que en ocasiones solo se pueden hacer operaciones
de dos variables y necesitamos realizarlas de ms de 5 variables.
OBJETIVOS DE LA PRCTICA
El maestro nos pidi realizar una prctica, en la cual tendramos que identificar las
diferentes notaciones para poder desarrollar un programa en donde expliquemos este
concepto.
MARCO TEORICO
NOTACIONES
Las notaciones son una forma especial en la que se pueden expresar una expresin
matemtica y puedan ser de 3 formas: infija, prefija y posfija. Los prefijos, Pre - Pos - In
se refieren a la posicin relativa del operador con respecto a los dos operandos.
NOTACION INFIJA
Es la notacin comn de frmulas aritmticas y lgicas, en la cual se escriben los
operadores entre los operandos en que estn actuando (ej. 2 + 2). No es tan simple de
analizar por las computadoras, como la notacin prefija o la notacin postfija, aunque
muchos lenguajes de programacin la utilizan debido a su familiaridad.
NOTACION POSTFIJA
Como su nombre lo indica se refiere a que el operador ocupa la posicin despus de
los operandos sus caractersticas principales son: el orden de los operandos se
conserva igual que la expresin infija equivalente no utiliza parntesis ya que no es una
operacin ambigua.
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.
Bsicamente la diferencias con el mtodo algebraico o notacin de infijo es que, al
evaluar los datos directamente al introducirlos, no es necesario ordenar la evaluacin
de los mismos, y que para ejecutar un comando, primero se deben introducir todos sus
argumentos, as, para hacer una suma 'a+b=c' el RPN lo manejara a b +, dejando el
resultado 'c' directamente.
2
-La operacin posfija no es exactamente lo inverso a la operacin prefija equivalente:
(A+B)*C AB+C*
NOTACION PREFIJA
Es una forma de notacin para la lgica, la aritmtica, y el lgebra. Su caracterstica
distintiva es que coloca los operadores a la izquierda de sus operandos sus
caractersticas principales son:
-Los operandos conservan el mismo orden que la notacin infija equivalente.
-No requiere de parntesis para indicar el orden de precedencia de operadores ya que
el es una operacin.
-Se evala de izquierda a derecha hasta que encontrmosle primer operador seguido
inmediatamente de un par de operandos.
-Se evala la expresin binaria y el resultado se cambia como un nuevo operando. Se
repite este hasta que nos quede un solo resultado.
DESARROLLO
Hay otros dos formatos de expresin muy importantes que, al principio, pueden no
parecer obvios. Considere la expresin infija A + B. Qu pasara si moviramos el
operador antes de los dos operandos? La expresin resultante sera + A B. Del mismo
modo, podramos mover el operador al final. Obtendramos A B +. Estas expresiones se
ven un poco extraas.
Estos cambios en la posicin del operador con respecto a los operandos crean dos
nuevos formatos de expresin, la notacin prefija y la notacin sufija (o postfija). La
notacin prefija requiere que todos los operadores precedan a los dos operandos sobre
los que actan. La notacin sufija, por otro lado, requiere que sus operadores
aparezcan despus de los operandos correspondientes. Algunos ejemplos ms
deberan ayudar a hacer esto un poco ms claro.
3
Expresin infija Expresin prefija Expresin sufija
(A + B) * C *+ABC AB+C*
4
Expresin infija Expresin prefija Expresin sufija
(A + B) * (C + D) *+AB+CD AB+CD+*
1. Crear una pila vaca llamada pilaOperadores para almacenar los operadores.
Crear una lista vaca para almacenar la salida.
2. Corvertir la cadena de entrada de notacin infija a una lista, usando el mtodo
split.
3. Recorrer la lista de smbolos de izquierda a derecha:
o Si el smbolo es un operando, agregarlo al final de la lista de salida.
o Si el smbolo es un parntesis izquierdo, enviarlo a pilaOperadores.
o Si el smbolo es un parntesis derecho, extraer de pilaOperadores hasta
que el correspondiente parntesis izquierdo se haya extrado. Agregar
cada operador al final de la lista de salida.
o Si el smbolo es un operador *, /, +, -, incluirlo en pilaOperadores. No
obstante, extraer previamente de la pila los operadores que tengan mayor
o igual precedencia y agregarlos a la lista de salida.
4. Cuando la expresin de entrada ha sido procesada completamente, verificar
pilaOperadores. Todos los operadores que an estn almacenados en ella se
deben enviar a la lista de salida.
6
Conversin de A * B + C * D a notacin sufija
'A B + C D + *'
'A B + C *'
'A B C * +'
>>>
CONCLUSIONES
7
Ventajas
Desventajas
8
REFERENCIAS
https://compilador.wikispaces.com/Notacion+Infija,+Postfija,Perfija+y+Polaca
https://prezi.com/z4-i3-1pjvf0/lenguajes-y-automatas-ii/