Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASIGNATURA:
Lenguaje y autómatas II
NUMERO DE CONTROL:
18E40017
Docente:
M.I.D.S. Daniel Álvarez García
SEMESTRE: 7
GRUPO: B
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
def evaluacionNotacionSufija(expresionSufija):
pilaOperandos = Pila()
listaSimbolos = expresionSufija.split()
print(evaluacionNotacionSufija('7 8 + 3 2 + /'))
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
ab+5-La notación postfija utiliza una estructura del tipo LIFO (ab+5-Last First Out) pila, la cual es
la más utilizada para la implementación. Llamada también polaca inversa, se usa para representar
expresiones sin necesidad de paréntesis.
Como su nombre lo indica se refiere a que el operador ocupa la posición después de los
operandos sus características principales son:
-El orden de los operandos se conserva igual que la expresión infija equivalente no utiliza
paréntesis ya que no es una operación ambigua.
-La operación posfija no es exactamente lo inverso a la operación prefija equivalente:
(A+B)*C AB+C*
Notación postfija: El orden es primer operando, segundo operando, operado
2.2 Representación de código intermedio
Existen maneras formales para representar código intermedio. • Estas notaciones simplifican la
traducción de nuestro código fuente a nuestro código objeto ya que ahorran y acotan símbolos de
la tabla de símbolos
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
def infija_a_sufija(expresionInfija):
precedencia = {}
precedencia["*"] = 3
precedencia["/"] = 3
precedencia["+"] = 2
precedencia["-"] = 2
precedencia["("] = 1
pilaOperadores = Pila()
listaSufija = []
listaSimbolos = expresionInfija.split()
print(infija_a_sufija("A * B + C * D"))
print(infija_a_sufija("( A + B ) * C - ( D - E ) * ( F + G )"))
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
2.2.3 Triplos
En la historia de los compiladores han sido utilizadas una amplia variedad de
representaciones intermedias como lo es la siguiente clase de representación de código intermedio
de un árbol de 3 direcciones,2 para los operandos y una para la ubicación del resultado. esta clase
incluye un amplio número de representaciones diferentes entre las cuales encontramos cuádruplos
y triples. la principal diferencia entre estas notaciones y la notación postfija es que ellos incluyen
referencias explicitas para los resultados de los cálculos intermedios, mientras que la notación
posfija los resultados son implícitos al representarlos en una pila. La diferencia entre triples y
cuádruplos es que con los triples es referenciado el valor intermedio hacia el número del triple que
lo creo, pero en los cuádruplos requiere que ellos tengan nombres implícitos. Los triples tienen
una ventaja obvia de ser más consistente, pero ellos dependen de su posición, y hacen que la
optimización presente cambios de código mucho más compleja. Para evitar tener que introducir
nombres temporales en la tabla de símbolos, se hace referencia a un valor temporal según la
posición de la proposición que lo calcula. Las propias instrucciones representan el valor del
nombre temporal. La implementación se hace mediante registros de solo tres campos (op, arg1,
arg2). En la notación de tripletes se necesita menor espacio y el compilador no necesita generar los
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
2.2.4 Cuádruplos
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
Punto num 5
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx
2/2
Punto 6
Av. Tecnológico S/N, Lerdo de Tejada 1ª Secc. Macuspana, Tabasco. C.P. 86719 Tels. 9363623330 y 9363623323 Ext.
101 e-mail: macuspana@tecnm.mx | direccion@itsmacuspana.edu.mx tecnm.mx | https://macuspana.tecnm.mx