Compiladores. Traductores e intérpretes. Fases de compilacióm. Optimización de código. Macroprocesadores.
Materiales publicados
archivos
recursos docentes
recursos web
pdf
doc
html
ppt
avi/mpeg/swf
mp3
temas
prácticas
problemas
exámenes
artículos
site
docuwiki
blog
moodle
otros
Objetivos
- Diferenciar entre els diferents tipus de programes processadors de llenguatges informàtics: analitzadors, traductors, compiladors, intèrprets, etc.
- Modelar els aspectes estructurals d´un llenguatge informàtic.
- Descobrir com la construcció de l´arbre d´anàlisi sintàctica permet guiar el procés de traducció.
- Modelar i reconéixer els components lèxics d´un llenguatge informàtic mitjançant expressions regulars i autòmats finits.
- Implementar analitzadors lèxics.
- Adquirir una comprensió intuïtiva de l´algorisme d´anàlisi descendent.
- Dissenyar esquemes de traducció dirigida per la sintaxi correctes.
- Implementar esquemes de traducció sobre analitzadors sintàctics recursius.
- Implementar adequadament un sistema de tipus a partir de l´especificació.
- Identificar les idees fonamentals que permeten generar codi per a diferents elements dels llenguatges orientats a objectes.
- Identificar l´influència dels diferents tipus de llenguatge intermedi en el mètode seguit per a la generació del codi.
- Treballar amb diferents tipus de màquines virtuals i arquitectures.
- Identificar els possibles contextos d´aplicació de les diferents tècniques estudiades durant el curs.
- Adaptar els conceptes abordats en l´assignatura a situacions diàries.
- Distingir entre els dos sentits, descendent i ascendent, d´anàlisi sintàctica i ser capaç de realitzar un seguiment mental del procés de derivació en els dos casos.
- Adquirir una comprensió intuïtiva de l´algorisme d´anàlisi per desplaçament i reducció.
Contenidos
1. Introducció: què estudiarem i per a què serveix; fases del desenvolupament d´un traductor o d´un intrèrpret 2. Anàlisi lèxica: especificació de components lèxics; algorisme de segmentació en tokens 3. Anàlisi sintàctica: disseny de gramàtiques; ambigüitat; recursivitat; formes BNF i EBNF 4. Análisi sintàctica descendent: algorismes LL(1), LL(k), LL(*); generador d´analitzadors ANTLR 5. Traducció dirigida por la sintaxi: esquemes de traducció dirigida per la sintaxi (ETDS); atributs heretats i sintetitzats 6. Generació de codi per a diferents arquitectures i màquines virtuals: ETDS per a la generació de codi per a expressions, instruccions, classes, objectes i mètodes; màquines virtuals de .Net i de Java 7. Altres aspectes del disseny de compiladors: altres màquines virtuals; generació de codi assamblador 8. Anàlisi sintàctica ascendent: anàlisi SLR i LALR; generador d´analitzadors Bison.
CLR via C# Autor(es): Richter, Jeffrey Edición: Dades no disponibles. ISBN: 978-0735621633
Compiladores : principios, técnicas y herramientas Autor(es): Aldred V. Aho, Ravi Sethi, Jefrey D. Ullman ; versión en español de Pedro Flores Suárez y Pere Botella i López Edición: Mexico [etc.] : Addison Wesley Longman, 1998. ISBN: 968-444-333-1
Compiler construction : principles and practice Autor(es): Kenneth C. Louden Edición: Boston [etc.] : PWS Publishing Company, 1997. ISBN: 0-534-93972-4
Compiling with C# and Java Autor(es): Pat Terry Edición: Harlow [etc.] : Pearson Education, 2005. ISBN: 0-321-26360-X
Concepts in programming languages Autor(es): John C. Mitchell Edición: Cambridge (Reino Unido) : Cambridge University Press, 2003. ISBN: 0-521-78098-5 (cart.)
Construcción de compiladores: principios y práctica Autor(es): Louden, Kenneth C. Edición: México : Thomson, 2004. ISBN: 970-686-299-4
Diseño de compiladores Autor(es): A. Garrido Alenda, J. M. Iñesta Quereda, F. Moreno Seco, J. A. Pérez Ortiz Edición: Dades no disponibles. ISBN: No disponible
Lex & yacc Autor(es): John R. Levine, Tony Mason, Doug Brown Edición: Beijing [etc.] : O´Reilly, 1995. ISBN: 1-56592-000-7
Modern compiler implementation in Java Autor(es): Andrew W. Appel ; with Jens Palsberg Edición: Cambridge [Reino Unido] : CambridgeUniversity Press, 2002. ISBN: 0-521-82060-X (cart.)
The definitive ANTLR reference : building domain-specific languages Autor(es): PARR, Terence Edición: Raleigh, Dallas : Pragmatic Bookshelf, 2007. ISBN: 978-09787392-4-9
The design and evolution of C++ Autor(es): Stroustrup, Bjarne Edición: Reading, Massachusetts [etc.] : Addison-Wesley, 2003. ISBN: 0201543303