Você está na página 1de 15

de Universidad Autnoma de Tamaulipas

Unidad Acadmica Multidisciplinaria Mante

Asignatura: COMPILADORES Programa Educativo en Ingeniero en Sistemas Computacionales Prof. Prof. Ing. Felipe Silva Hernndez
SEMESTRE: Noveno EGRUPO: E-F-J-K

201 2011-3 OTOO

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

DESCRIPCIN GENERAL
En el transcurso de esta materia se le presentar al alumno un repaso de la teora de Traductores, para despus estudiar la traduccin de expresiones aritmticas y boolenas, el anlisis sintctico y la traduccin de referencia a variables simples y dimensionadas y la traduccin de estatutos condicionales y de repeticin que ayudarn a comprender el cdigo objeto para que puedan desarrollar su propio Compilador. El alumno dar comienzo a un nuevo proyecto de desarrollo de un programa traductor Compilador donde se involucren los conocimientos adquiridos sobre programacin, estructura de datos, sistemas operativos y compiladores en forma ptima de acuerdo a la naturaleza del trabajo seleccionado.

INTENCIN EDUCATIVA
La estructura de compiladores abarca muchas y muy amplias tcnicas, como lo son el desarrollo e ingeniera de software, algoritmos, manejo de lenguajes y programacin, se desea generar un Compilador que funcione sin importar su mquina fuente y/o destino. Los conceptos establecidos y habilidades desarrolladas en la asignatura anterior (Traductores) se aplicarn como herramienta para desarrollar este proyecto.

OBJETIVO GENERAL
Al trmino de curso el alumno: Recordar y aplicar las herramientas para la generacin del Cdigo, adems reconocer y diferenciar la asociatividad relacionada a los operadores empleados aplicndola en la elaboracin de sus anlisis, podr desarrollar una traduccin completa de las expresiones Aritmticas y Booleanas, los tipos de las variables y la declaracin de estas, recordar y aplicar las herramientas para el direccionamiento de las mismas. Recordar y traducir los estatutos Condicionales IF y CASE, y los de repeticin WHILE, DO WHILE y FOR. Aprender a controlar las subrutinas y la memoria para aplicarlas en desarrollar el programa final y conocer y aplicar las tcnicas de optimizacin.

PONDERACIN
10 ASISTENCIA 20 TAREAS Y APUNTES 20 ANALIZADORES (LXICO, SINTCTICO Y COMPILADOR) 50 EVALUACIN

COMPILADORES

2/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

COMPILADOR
Programa cuya caracterstica es convertir un programa fuente (lenguaje de alto nivel) a un programa objeto (programa compilado). El programa compilado contendr todos los errores del programa fuente y nicamente podr generar un programa ejecutable cuando se encuentre libre de errores. El l programa ejecutable esta hecho de forma que la computadora lo pueda comprender.

RELACIN ENTRE UN COMPILADOR Y LA COMPUTADORA

FASES O ETAPAS DE UN COMPILADOR

COMPILADORES

3/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

1. Unidad 1.- Generacin de Cdigo Intermedio


CDIGO INTERMEDIO.- El cdigo intermedio es una interpretacin de las operaciones que se tienen en un lenguaje y que podran ejecutarse en cualquier procesador al considerarse generados para una mquina virtual, una mquina inexistente pero con las caractersticas que toda computadora posee. Esta concepcin permite generar cdigo que puede ser optimizado ya que no depende de un operador especfico y es completamente transportable.

1.1.- TIPO DE CDIGO INTERMEDIO. GDA. Grafo Dirigido Acclico. rbol Sintctico. n-tuplas: Cudruplo, Triple, Triple Indirecto. Cdigo de 3 Direcciones Notacin Polaca (prefija) Notacin Polaca Inversa (postfija) Despus de los anlisis sintctico y semntico, algunos compiladores generan una representacin intermedia explicita del programa fuente. Se puede considerar esta representacin intermedia para una mquina abstracta (sin un lenguaje definido). Esta representacin intermedia debe tener dos propiedades importantes: a) Fcil de producir b) Fcil de traducir a programa objeto 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. Aunque un programa fuente se puede traducir directamente al lenguaje objeto algunas ventajas de utilizar una forma intermedia, independiente de la mquina. 1.- Se facilita la representacin; se puede crear un compilador para una mquina distinta uniendo una etapa final para la nueva mquina a una etapa ya existente. 2.- Se puede aplicar a la representacin intermedia a un optimizador del cdigo independiente.

1.2.- NOTACIN POLACA. Notacin Polaca.- La Notacin Polaca debe su nombre al famoso matemtico polaco Jan Lukasiewics y se basa en que el smbolo operador se coloca delante de sus operadores. Es una forma de notacin con prefijos, con que se escriben las expresiones lgicas, aritmticas y algebraicas, esto consiste en colocar el operador antes de los operandos. Esta notacin es exactamente inversa de la postfija por lo que no representa ninguna ventaja nueva para el problema, a esta notacin se le denomina NOTACIN POLACA.

COMPILADORES

4/15

U.A.M.M. U.A.T. = a=b+c A. Lxico: +

M.C. I.S.C. Felipe Silva Hernndez

id1

NOTACIN INFIJA (entrefija) id1 = id2 + id3 Notacin POLACA. A. Sintctico Notacin prefija (P I D) = id1 + id2 id3 Notacin POLACA INVERSA. Notacin postfija (I D P) id1 id2 id3 + =

id2

id3

NOTACIN INFIJA (entrefija) a=b*-c+b*-c = A. Lxico: id1 = id2 * menosu id3 + id2 * menosu id3 id1 + A. Sintctico
P

Notacin POLACA. Notacin prefija (P I D) = id1 + * id2 menosu id3 * id2 menosu id3
D

*
I

id2

menosu

id2

menosu

Notacin POLACA INVERSA. Notacin postfija (I D P) id1 id2 id3 menosu * id2 id3 menosu * + =

id3

id3

Promedio = (Cal1 + Cal2 + Cal3) / 3 An. Lxico: id1=(id2+id3+id4)/num(3) = An. Sintctico: id1 /
P

Notacin POLACA. Notacin prefija (P I D) = id1 / + id2 + id3 id4 Num(3)


D

Num(3)

Notacin POLACA INVERSA. Postfija (I D P) id1 id2 id3 id4 + + Num(3) / =

id2

id3

id4

Ejercicio: Disear la notacin (POLACA INVERSA) postfija y (POLACA) prefija, la representacin de cdigo intermedio (CDIGO DE 3 DIRECCIONES), para la proposicin que permita encontrar la base (B) de un tringulo conociendo: Su altura y rea. REA = B * H / 2 REA * 2 = B * H REA * 2 / H = B B = REA * 2 / H DESPEJANDO TENEMOS: B=AREA*2/H ANLISIS LXICO id1 = id2 * num(2) / id3 COMPILADORES 5/15

U.A.M.M. U.A.T. ANLISIS SINTCTICO =

M.C. I.S.C. Felipe Silva Hernndez

id1

Notacin POLACA. Prefija (P I D) = id1 * id2 / num(2) id3 = B * REA / num(2) H Notacin POLACA INVERSA. Postfija (I D P) id1 id2 num(2) id3 / * = B REA num(2) H / * =

CDIGO INTERMEDIO t1=num(2) t2=t1/id3 t3=id2*t2 id1=t3

id2

num(2)

id3

posicin = inicial + velocidad * tiempo = Notacin POLACA. Notacin prefija (P I D) = id1 + id2 * id3 id4 + Notacin POLACA INVERSA. Postfija (I D P) id1 id2 id3 id4 * + = id4

id1

id2

id3

Ejercicios: * Conociendo el valor de la raz cuadrada de una de las caras del cubo. Obtenga su volumen, y la notacin polaca de la expresin resultante. X = raz cuadrada de un lado rea= L * L = L ^ 2 VOL= L * L * L * Se remodelar el centro de la ciudad, y en lugar del kiosco de la plaza principal de la Cd. Central ser una esfera, si se estima un costo de $, por m3 de la figura obtenga el volumen que podr tener la esfera, considerando la variacin del radio. * La parte superior de un edificio circular cuyo dimetro es de w m, que tiene h pisos (cada piso es de 3 m), termina en un pico de 6 m de altura que tiene la mitad del dimetro del edificio. Si se desea conocer la mitad de agua que se podra almacenar en el pico, sabiendo que el grosor de las paredes del piso es de M cm. Obtenga la representacin intermedia en prefijos de la expresin que calculara la cantidad de agua en cm3. * La frmula de Pitgoras para un tringulo rectngulo indica que la suma de los cuadrados de los catetos es igual al cuadrado de la hipotenusa, obtenga la notacin polaca y la polaca inversa de la aplicacin de esta frmula para conocer el valor de cuadrado del cateto opuesto.

COMPILADORES

6/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

* Se desea obtener el volumen en m3 de una construccin de tipo piramidal, debido a una serie de infraestructuras que sern usadas como adornos en todos los parques de la ciudad. Las bases de estas construcciones sern hexagonales. Obtenga las notaciones polaca y polaca inversa para la expresin que permita conocer el volumen de las pirmides, si se conoce solo la medida de uno de los lados de la base y la apotema, as como la altura. Vol. pirmide = rea base * altura / 3 rea del polgono regular = permetro * apotema / 2 Permetro = (num.lados) * (medida del lado). Vol. pirmide = (( 6 * medida del lado) * apotema / 2 ) * altura / 3 Vp = lado * apotema * altura Volpir=area de la base * altura/3 rea pol= permetro *apotema/2 Permetro = (lado)*l(medida del lado) Sustituyendo: Volpiramide=area de la base*h/3 Volpiramide=((p*a)/2)*h/2 Vol=(6*l*a)/2 * h /3 Vol=l*a*h = Id1=id2*id3*id4 Notacin POLACA. Notacin prefija (P I D) = id1 * id2 * id3 id4 Notacin POLACA INVERSA. Postfija (I D P) id1 id2 id3 id4 * * =

Id1

id2

id3

id4

IMPLANTACIN DE PROGRAMA DE 3 DIRECCIONES Una proposicin de tres direcciones es una forma abstracta de cdigo intermedio en un compilador. Estas proposiciones se pueden implantar como registros con campos para el operador y los operandos. Tres de dichas representaciones: Cudruplos, Triples y Triples Indirectos.

1.3.- CUDRUPLOS. Notacin cudruple.- Un cudruplo es una estructura tipo registro con cuatro campos que se llamarn: OPERADOR, ARGUMENTO 1, ARGUMENTO 2 y RESULTADO. El Campo OPERADOR contiene un cdigo interno para el operador, la proposicin de tres direcciones X = Y OP Z se presenta poniendo a Y en ARGUMENTO 1, Z en ARGUMENTO 2 y X en RESULTADO. Compiladores principios, tcnicas y herramientas. Aho, Seti, Ullman. Addison-Wesley. P. 484 COMPILADORES 7/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

Como se muestra en la Figura 1.3 a. La operacin X = -Y se muestra en la Figura 1.3 b. Y la asignacin X = Y se desarrolla en la Figura 1.3 c. Registro OPERADOR ARGUMENTO1 ARGUMENTO2 0 OP Y Z 1 Menos u Y 2 = Y 3

RESULTADO X X X

Figura 1.3 a 1.3 b 1.3 c

Los contenidos de los campos ARGUMENTO 1, ARGUMENTO 2 y RESULTADO son generalmente apuntadores a las entradas de la tabla de smbolos correspondientes a los nombres representados por dichos campos. En ese caso los nombres temporales se deben introducir en la tabla de smbolos conforme van siendo creados. El cudruplo de la Figura 1.3 d corresponde a: A = B * - C + B * - C y se obtienen a partir del siguiente cdigo de tres direcciones: ANLISIS LXICO ID1 = ID2 * menosu ID3 + ID2 * menosu ID3 CDIGO INTERMEDIO (3 DIREC.) T1 = menosu ID3 T2 = ID2 * T1 T3 = menosu ID3 T4 = ID2 * T3 T5 = T4 + T2 ID1 = T5 Figura 1.3 d. CUDRUPLO
REG. 0 1 2 3 4 5 OPERADOR ARGUMENTO1 ARGUMENTO2

ANLISIS = SINTCTICO A ID1 + * * B ID2 menosu B ID2 menosu

RESULTADO

menosu * menosu * + =

ID3 ID2 ID3 ID2 T4 T5

T1 T3 T2 -

T1 T2 T3 T4 T5 ID1

C ID3

C ID3

1.4.- TRIPLES. Notacin triples.- Para evitar introducir nombres temporales en las tablas de smbolos, se har referencia a un valor temporal segn la posicin de la proposicin que lo calcula. En ese caso las proposiciones de 3 direcciones se pueden representar mediante registros con solo 3 campos: OPERADOR, ARGUMENTO 1 y ARGUMENTO 2. Compiladores. Principios, tcnicas y herramientas. Aho Addison-Wesley.

COMPILADORES

8/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

Los campos ARGUMENTO 1 y ARGUMENTO 2, para los argumentos de OPERADOR son apuntadores a la tabla de smbolos (para nombres constantes definidos por el programador) apuntadores dentro de la estructura del triple (para valores temporales) como se utilizan tres campos este formato de cdigo intermedio es el que conoce como Triple. Como en la Figura 1.4 (a). NOTA: A veces se denomina Cdigo de DOS direcciones y los Cudruplos Cdigo de TRES Direcciones, como una nocin abstracta de varias implantaciones, siendo los principales los triples y los cudruples. TRIPLES: Figura 1.4 a. Y = X Op Z REGISTRO OPERADOR ARGUMENTO 1 ARGUMENTO 2 0 Op X Z 1 Asigna Y (0) Figura 1.4 b Tm= Num(5) REGISTRO OPERADOR ARGUMENTO 1 ARGUMENTO 2 0 mueve Num (5) -

Figura 1.4 c X=-Y REGISTRO OPERADOR ARGUMENTO 1 ARGUMENTO 2 0 Menos u Y 1 Asigna X (0) El Triple de la Figura 1.4 d corresponde a: A = B * - C + B * - C y se obtienen a partir del siguiente cdigo de tres direcciones: Figura 1.4 d. TRIPLE
REG. 0 1 2 3 4 5 OPERADOR ARGUMENTO1 ARGUMENTO2

menosu * menosu * + Asigna

ID5 ID4 ID3 ID2 (3) ID1

(0) (2) (1) (4)

CDIGO INTERMEDIO (CDIGO DE 3 DIRECCIONES) (0) T1 = menosu ID5 (1) T2 = ID4 * T1 (2) T3 = menosu ID3 (3) T4 = ID2 * T3 (4) T5 = T4 + T2 ID1 = T5

TRIPLES INDIRECTOS Otra implantacin del cdigo de tres direcciones que se ha considerado es la de hacer una lista de apuntadores a Triples en lugar de hacer una lista de los Triples mismos. Esta aplicacin es llamada: Triple Indirecto. Por ejemplo se utilizar una matriz de proposicin para listar los apuntadores a Triples en el orden deseado.

COMPILADORES

9/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

Entonces, el triple de la Figura 1.4 d. se puede representar como la Figura 1.4 e. CDIGO INTERMEDIO (3 DIR) (0) T1 = menosu ID5 (1) T2 = ID4 * T1 (2) T3 = menosu ID3 (3) T4 = ID2 * T3 (4) T5 = T4 + T2 ID1 = T5

Figura 1.4 e. TRIPLE INDIRECTO, formado por la Tabla de Apuntadores y el TRIPLE INDIRECTO, que se obtienen del Cdigo Intermedio

Tabla de Apuntadores
REGISTRO 0 1 2 3 4 5 POSICIN

TRIPLE INDIRECTO
REGISTRO 14 15 16 17 18 19 OPERADOR ARGUMENTO 1 ARGUMENTO 2

14 15 16 17 18 19

menosu * menosu * + Asigna

ID5 ID4 ID3 ID2 (17) ID1

(14) (16) (15) (18)

EJERCICIOS CON TRIPLES INDIRECTOS V=W*-X+Y/Z An. Lxico: ID1 = ID2 * Menosu ID3 + ID4 / ID5 Cdigo intermedio: t1 = ID4 / ID5 t2 = Menosu ID3 t3 = ID2 * t2 t4 = t3 + t1 ID1 = t4 Tabla de apuntadores
REGISTRO POSICIN

TRIPLE INDIRECTO
REGISTRO OPERADOR ARGUMENTO 1 ARGUMENTO 2

0 1 2 3 4 5

14 15 16 17 18 19

14 15 16 17 18 19

/ Menosu * + Asigna

ID4 ID3 ID2 (16) antes 2 ID1

ID5 (15) antes 1 (14) antes 0 (17) antes 3

1.5.- GENERACIN DE CDIGO La fase final de un compilador es la generacin de cdigo ensamblador, las operaciones de memoria se seleccionan para cada una de las variables usadas por el programa.

COMPILADORES

10/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

Despus, cada una de las instrucciones intermedias se introduce a una secuencia de instrucciones de mquina que ejecutan la misma tarea. Un aspecto decisivo es la asignacin de variables o registros. Por ejemplo dos registros R1 y R2 la traduccin del cdigo siguiente. Posicin:= inicial + velocidad * 60 podra convertirse en: CDIGO FUENTE posicin = inicial + velocidad * 60 1.- ANALIZADOR LXICO Id1= Id2 + Id3 * Num (60) 2.- ANLISIS SINTCTICO = Id1 Id2 Id3 + * Num(60)

4.- CDIGO INTERMEDIO t1 = Num(60) t2 = Id3 * t1 t3 = Id2 + t3 id1 = t3 5.- CDIGO OPTIMIZADO t1 = Id3 * Num(60) Id1 = Id2 + t1 6.- CDIGO OBJETO R0, R1 y R2 MOV R2, MOV R1, MUL R1, MOV R0, ADD R0, MOV Id1, 003C Id3 R2 Id2 R1 R0

3.- ANLISIS SEMNTICO PROD id = E EXP EXP * EXP | EXP + EXP EXP Id | Num Id letletletletletletletlet | letletletletletletlet Id letletletletletletletletlet let p|o|s|i|c||n|a|l|v|e|d Num DigDig Dig 0|1|2|3|4|5|6|7|8|9

Nmeros: 60 D = 3C H

EJERCICIO COMPLETO: Cdigo Fuente: R = U / T + H 10 / 17 * A 1.- ANLISIS LXICO ID1 = ID2 / ID3 + ID4 NUM(10) / NUM (17) * ID5 2.- ANLISIS SINTCTICO P = 4.- CDIGO INTERMEDIO (CDIGO 3 DIRECCIONES) T1 = NUM(17) ID1 + I D T2 = T1 * ID5 T3 = NUM(10) / T4 = T3 / T2 T5 = ID4 T4 ID2 ID3 ID4 / T6 = ID2 / ID3 T7 = T6 + T5 NUM(10) * ID1 = T7 NUM(17) COMPILADORES ID5 11/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

3.- ANLISIS SEMNTICO Prop ID = EXP EXP NUM | ID | EXP * EXP | EXP / EXP | EXP EXP | EXP + EXP ID R|U|T|H|A NUM DIGDIG DIG 09 4.- CDIGO INTERMEDIO Notacin Polaca (PREFIJOS) [ P I D ] = ID1 + / ID2 ID3 ID4 / NUM(10) * NUM(17) ID5 Notacin Polaca Inversa (POSFIJOS) [ I D P ] ID1 ID2 ID3 / ID4 NUM(10) NUM(17) ID5 * / + = Cudruplos
REG. 0 1 2 3 4 5 6 7 OPERADOR ARGUMENTO1 ARGUMENTO2 RESULTADO

= * = / / + = Triples

NUM(17) T1 NUM(10) T3 ID4 ID2 T6 T7

ID5 T2 T4 ID3 T5

T1 T2 T3 T4 T5 T6 T7 ID1

CD. INT. 3 DIR. T1 = NUM(17) T2 = T1 * ID5 T3 = NUM(10) T4 = T3 / T2 T5 = ID4 T4 T6 = ID2 / ID3 T7 = T6 + T5 ID1 = T7

REG. 0 1 2 3 4 5 6 7

OPERADOR

ARGUMENTO1

ARGUMENTO2

MOVER * MOVER / / + ASIGNA

NUM(17) (0) NUM(10) (2) ID4 ID2 (5) ID1

ID5 (1) (3) ID3 (4) (6)

CD. INT. 3 DIR. (0) T1 = NUM(17) (1) T2 = T1 * ID5 (2) T3 = NUM(10) (3) T4 = T3 / T2 (4) T5 = ID4 T4 (5) T6 = ID2 / ID3 (6) T7 = T6 + T5 (7) ID1 = T7

Triples Indirectos TABLA DE APUNTADORES


REGISTRO POSICIN REGISTRO

TRIPLE INDIRECTO
OPERADOR ARGUMENTO 1 ARGUMENTO 2

0 1 2 3 4 5 6 7

206 207 208 209 210 211 212 213

206 207 208 209 210 211 212 213

MOVER * MOVER / / + ASIGNA

NUM(17) (206) NUM(10) (208) ID4 ID2 (211) ID1

ID5 (207) (209) ID3 (210) (212) 12/15

COMPILADORES

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

5.- OPTIMIZACIN DE CDIGO CDIGO OPTIMIZADO (CDIGO 3 DIRECCIONES) T1 = NUM(17) * ID5 T2 = NUM(10) / T1 T3 = 744110ID4 T2 T4 = ID2 / ID3 ID1 = T4 + T3 CDIGO INTERMEDIO (CDIGO 3 DIRECCIONES) T1 = NUM(17) T2 = T1 * ID5 T3 = NUM(10) T4 = T3 / T2 T5 = ID4 T4 T6 = ID2 / ID3 T7 = T6 + T5 ID1 = T7

6.- GENERACIN DE CDIGO OBJETO (LENGUAJE ENSAMBLADOR) MOV R5, ID5 MOV R4, 0011 MUL R4, R5 MOV R3, 000A DIV R3, R4 MOV R2, ID4 SUB R2, R3 MOV R1, ID3 MOV R0, ID2 DIV R0, R1 ADD R0, R2 MOV ID1, R0

COMPILADORES

13/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

1.6.- ASOCIATIVIDAD IZQUIERDA Y ASOCIATIVIDAD DERECHA Por convencin 9 + 5 + 2 es equivalente a ( 9 + 5 ) + 2 y 9 5 2 es equivalente a ( 9 5 ) 2. Cuando un operando como 5 tiene operadores a su izquierda y derecha, se necesitan convenciones para decidir qu operador considera se operando. Se dice que el operador suma + asocia a la izquierda, porque un operando que tenga un signo de + a ambos lados es tomado por el operador que est a su izquierda. En la mayora de los lenguajes de programacin, los 4 operadores aritmticos bsicos: adicin, sustraccin, multiplicacin y divisin son asociativos por la izquierda. cadena cadena cadena + cadena + cadena 2 cadena 9 cadena + cadena cadena + cadena

5 2 Figura 1.6 a. Dos rboles de anlisis sintcticos para (9 + 5) + 2

Con la gramtica: Cadena cadena + cadena | cadena cadena | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Figura 1.6 b. Gramtica para sumas y restas Algunos operadores comunes como la exponenciacin (potencia) son asociativos por la derecha. Otro ejemplo anlogo, es el operador de asignacin = en C que es asociativo por la derecha; en C la expresin A=B=C se trata igual que la expresin a=b=c. Las cadenas como a=b=c con un operador asociativo a la derecha se pueden representar con la siguiente gramtica Figura 1.6 c. Figura 1.6 c. derecha letra = derecha | letra letra a | b | c | d | e | f | g | h | i | j | k | m | n | | o | p | q | r | s | t letra u | v | w | x | y | z derecha letra = a letra = derecha derecha

Figura 1.6 d, rbol para a=b=c

COMPILADORES

14/15

U.A.M.M. U.A.T.

M.C. I.S.C. Felipe Silva Hernndez

BIBLIOGRAFA
TTULO: Compilers: Principles, Techniques, and Tools Autor: Aho, Alfred V., Lam. Monica S., Sethi. Ravi, Ullman Editorial: Addison Wesley Precio: 1000 Usd. ISBN-10: 0321486811 ISBN-13: 978-0321486813 TTULO: Compiladores: Principios Herramientas Autor: Aho A., Sethi R., Ullman J. Editorial: Addison-Wesley Iberoamericana. Willington, Delaware, 1990. 820 pginas. TTULO: SISTEMAS OPERATIVOS Y COMPILADORES Autor: Salas Parrilla Jess Editorial: Mc Graw Hill. Mxico D. F. 1992. 212 pginas. TTULO: COMPILADORES E INTRPRETES. 2a Ed. Autor: Snchez Dueas, G. Valverde Andrew, J.A. Editorial: Daz de Santos ISBN: 84-87189-06-7 Precio: 20.19 Euros Editorial: EDICIONES DIAZ DE SANTOS C/Albasanz,2 28037 MADRID-Espaa E-mail: ediciones@diazdesantos.es Telef. 34 + 917.434.890 Fax 34 + 917.434.023 TTULO: AN INTRODUCTION TO GCC Autor: Gough Brian Editorial: Network Theory Limited. 2004-2005 ISBN: 0-9541617-9-3 Precio: $19.95 USD TTULO: CONSTRUCCIN DE COMPILADORES Autor: Louden, Kenneth C. Editorial: THOMSON PARANINFO, S.A. 2004. 592 pgs ISBN: 9706862994 Precio: 39.00 Euros, 48.00 USD TTULO: CONSTRUCCIN DE COMPILADORES PRINCIPIOS Y PRCTICA Autor: Kenneth C. Louden Editorial: THOMSON. Primera edicin. ISBN-10: 9706862994 ISBN-13: 9789706862990 TTULO: TEORA DE AUTMATAS Y LENGUAJES FORMALES Autor: Alfonseca, Manuel 15-JAN-07 ISBN: 8448156374 TTULO: ADVANCED COMPILER DESIGN AND IMPLEMENTATION Autor: Steven S. Muchnick Jeffrey D.

Tcnicas y

E.U.A.

COMPILADORES

15/15

Você também pode gostar