Beruflich Dokumente
Kultur Dokumente
ITSSAT
LENGUAJE Y AUTOMATAS II
ALUMNA:
PABLO ANTONIO MENDOZA GUZMN
PROFESOR:
LILY ALEJANDRA MENDRANO MENDOZA
TRABAJO:
INVESTIGACIN DE GENERACIN
CODIGO INTERMEDIO
ISC
INTRODUCCIN
En el modelo de anlisis y sntesis de un compilador, la etapa inicial
traduce un programa fuente a una representacin intermedia a partir de la cual
la etapa final genera el cdigo objeto.
Los detalles del lenguaje objeto se confinan en la etapa final, si esto es posible.
Aunque un programa fuente se puede traducir directamente al lenguaje objeto,
algunas ventajas de utilizar una forma intermedia independiente de la mquina
son:
1. Se facilita la redestinacin; se puede crear un compilador para una mquina
distinta uniendo una etapa final para la nueva mquina a una etapa inicial ya
existente.
2. Se puede aplicar a la representacin intermedia un optimizador de cdigo
independiente de la mquina.
LENGUAJES INTERMEDIOS
Los lenguajes intermedios nos sirven para representar la produccin final
de nuestro lenguaje fuente. Existen muchos lenguajes intermedios, la mayora
de ellos son una representacin ms simplificada del cdigo original para
facilitar la traduccin hacia el cdigo final.
NOTACIONES
Las notaciones sirven de base para expresar sentencias bien definidas.
El uso ms extendido de las notaciones sirve para expresar operaciones
aritmticas. Las expresiones aritmticas se pueden expresar de tres formas
distintas: infija, prefija y postfija.
PREFIJA:
La Expresin o Notacin Prefija nos indica que el operador va antes de los
operandos sus caractersticas principales son:
*+abc = (a+b) * c
Notacin prefija: El orden es operador, primer operando, segundo operando
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 operandos. 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+2=14
3*(4+2)=18
Notacin infija: La notacin habitual. El orden es primer operando, operador,
segundo operando.
Posfija:
Como su nombre lo indica se refiere a que el operador ocupa la posicin
despus de los operandos sus caractersticas principales son:
Ejemplo 2: 2 * 3 + 5
Polaca
Ejemplo 1: * 2 + 3 5
Ejemplo 2: + * 2 3 5
VARIABLES Y CONSTANTES.
Cualquier variable necesita una posicin de memoria en la que, durante
la ejecucin del cdigo generado, se almacene su valor. Cuando se trata de
una variable de tipo lgico o boolena, para representar su valor tambin se
necesita una posicin de memoria (bastara un bit!) para almacenar su valor.
Como el cdigo intermedio definido en este captulo no dispone del tipo lgico
ni el tipo bit, en la posicin de memoria de una variable lgica se almacenar
un entero que representar su valor. Para esta representacin numrica se
emplear el mismo criterio seguido en el lenguaje C1 de que un cero
representa el valor de verdad falso, mientras que cualquier valor distinto de
cero representa el valor de verdad cierto.
Pero adems de variables lgicas, en los lenguajes de alto nivel aparecen otro
tipo de expresiones lgicas, conteniendo comparaciones y/o conectivas lgicas.
Para representar el valor de una expresin lgica se pueden emplear dos
mtodos: la representacin numrica y la representacin por control de flujo.
INSTRUCCIN DE ASIGNACIN.
Una instruccin de asignacin asigna el valor de una expresin a una
variable. En general, si la variable que se va a asignar es una propiedad, la
propiedad debe ser de lectura y escritura o de slo escritura; en caso contrario,
se produce un error de compilacin. Si la variable es una variable de slo
lectura, la asignacin debe producirse en un constructor Shared o un
constructor de instancia apropiado para el tipo de la variable; en caso contrario,
se producir un error de compilacin.
INSTRUCCIONES DE CONTROL.
Las instrucciones de control son aquellas que nos permiten variar o
alterar la secuencia normal de ejecucin de un programa. Prcticamente la
totalidad de lenguajes de programacin de alto nivel soportan tres tipos de
instrucciones de control.
CONCLUSIN
En sntesis para crear un generador de cdigo se deben hacer muchas de las
tareas que realizan los compiladores; algunas de estas tareas son: la bsqueda
de patrones, la escritura de cdigo, el anlisis sintctico, el anlisis lxico y la
optimizacin de cdigo. Estas tareas las realiza el desarrollador una vez para
una arquitectura especfica.
BIBLIOGRAFA
http://www.di-mare.com/adolfo/cursos/2008-1/pp-GenCodInterMed.pdf
http://www.giaa.inf.uc3m.es/docencia/II/PL1/ci05-06.pdf