Documente Academic
Documente Profesional
Documente Cultură
CUAUTITLN IZCALLI
Cdigo: FO-205P11000-XX
FORMATO DE ENTREGA
DE EVIDENCIAS
Pgina 1de11
DIVISIN.
GRUPO.
ASIGNATURA.
LENGUAJES Y AUTMATAS Il
NO. DE CONTROL.
PRODUCTO.
DOCENTE.
123107079
123107143
36
FECHA
10 DE ABRIL DE 2015
CALIFICACIN Y FIRMA
DEL PROFESOR.
Unidad 2.
Generacin de Cdigo Intermedio.
2.1 Notaciones...................................................................................................................2
2.1.1 Notacin Prefija................................................................................................2
2.1.2 Notacin Infija..................................................................................................3
2.2.3 Notacin Postfija...............................................................................................3
2.2 Representaciones de cdigo Intermedio..................................................................4
2.2.1 Notacin Polaca.................................................................................................4
2.2.2 Cdigo P.............................................................................................................5
2.2.3 Triplos................................................................................................................5
2.2.4 Cudruplos........................................................................................................6
2.3 Esquema de generacin............................................................................................6
2.3.1 Variables y constantes.....................................................................................7
2.3.2 Expresiones.......................................................................................................7
2.3.3 Instruccin de asignacin................................................................................8
2.3.4 Instrucciones de control..................................................................................9
2.3.5 Funciones..........................................................................................................9
2.3.6 Estructuras.......................................................................................................9
Referencias bibliogrficas.............................................................................................11
N ACTIVI
-
Unidad 2.
Generacin de Cdigo Intermedio.
2.1.2 Infija
La expresin o notacin infija es la forma ms comn que utilizamos para escribir
expresiones matemticas, estas notaciones se refiere a que el operador esta entre los
operadores. La notacin infija puede estar completamente parentizada o puede basarse en
un esquema de precedencia de operadores as como el uso de parntesis para invalidar los
arreglos al expresar el orden de evaluacin de una expresin:
3*4 = 12 3*4+ = 14 3*(4+2) = 18
La notacin infija tiene el problema de que en expresiones con ms de un operador
existe ambigedad sobre cul es el orden de evaluacin. Por ejemplo, la expresin 8/4/2 se
puede interpretar como (8/4)/2 o bien 8/(4/2). Las otras notaciones no sufren este problema.
La notacin habitual. El orden es primer operando, operador, segundo operando.
2.1.3 Postfija
Como su nombre lo indica se refiere a que el operador ocupa la posicin despus de
los operandos sus caractersticas principales son:
equivalente.
El orden es primer operando, segundo operando, operando. (A+B)*C AB+C*
Ejemplo:
Ejemplo: a + b * c-d
Cdigo a b c * + dVentajas y desventajas de la notacin polaca.
de la pila.
Interpretacin rpida: es muy fcil de interpretar ya que solo necesita una pila.
Transportable: si, ya que todos los procesadores implementan una pila.
2.2.2 Cdigo P.
3. =, Z, X
4. Saltar,, 7
5. +, Y, 1
6. =, Z, (5)
Problema
La optimizacin supone mover tripletas y hay que recalcular las referencias.
2.2.4 Cudruplos.
<Operacin>, <operando1>, <operando2>, <resultado>
Ejemplo:
(A+B)*(C+D)-E
+, A, B, T1
+, C, D, T2
*, T1, T2, T3
-, T3, E, T4
Las cudruplas facilitan la aplicacin de muchas optimizaciones, pero hay que tener
un algoritmo para la reutilizacin de las variables temporales (reutilizacin de registros del
procesador).
2.3 Esquema de generacin.
Los esquemas de generacin son las estrategias o acciones que se debern realizarse
y tomarse en cuenta en el momento de generar cdigo intermedio.
Los esquemas de generacin dependen de cada lenguaje. Tomaremos algunos
esquemas de generacin del lenguaje C.
2.3.1 Variables y constantes.
Las variables y constantes deben separarse de tal manera que queden las
expresiones una por una de manera simple.
Por ejemplo int a,b,c; se descompone a int a; int b; intc; respectivamente.
2.3.2 Expresiones.
En esta funcin recibe una cadena que representa una lnea de cdigo intermedio y
toma las medidas oportunas para que ese cdigo se utilice. Estas medidas pueden ser
escribir la lnea en un fichero adecuado, almacenar la instruccin en una lista que despus
se pasar a otros mdulos, o cualquier otra que necesitemos en nuestro compilador.
Expresiones aritmticas
Son aquella donde los operadores que intervienen en ella son numricos, el resultado
es un nmero y los operadores son aritmticos. Los operadores aritmticos ms
comnmente utilizados son: +, - , * , / y %.
Comenzamos el estudio por las expresiones aritmticas. Lo que tendremos que hacer
es crear por cada tipo de nodo un mtodo que genere el cdigo para calcular la expresin y
lo emita. Ese cdigo dejar el resultado en un registro, cuyo nombre devolver el mtodo
como resultado.
Para reservar estos registros temporales, utilizaremos una funcin, reserva. En
principio bastar a con que esta funcin devuelva un registro distinto cada vez que se la
llame.
Cada nodo generar el cdigo de la siguiente manera:
Por cada uno de sus operandos, llamara al mtodo correspondiente para que se
evale la sub expresin. Si es necesario, reservara un registro para guardar su
resultado.
Estructuras de Seleccin:
Estructura if. Al escribir uno o varios flujos de accin el cdigo contenido en estos
se ejecutar siempre y cuando la evaluacin de la expresin en la sentencia if se
(enumeration).
expresion-contante: sentencias;
Sintaxis:
switch(expresion-de-control)
case
break; }
Estructuras de Iteracin:
no
ser
posible
evaluar
otro
tipo
de
expresin.
while(condicional) {acciones;}
REFERENCIAS BIBLIOGRFICAS.
Sintaxis.