2005-2006

Enginyeria en Informàtica (3371)


Processadors de Llenguatge I (12463) 


Descripció

Iniciació als estudiants en les tècniques d’anàlisi i traducció de llenguatges formals. Aquestes tècniques normalment han estat desenvolupades per a la realització de compiladors. Malgrat tot són aplicables en tot procés d'interpretació/traducció de qualsevol llenguatge amb una gramàtica ben definida. Així s'incidirà poc en el curs en aquells aspectes més específics dels llenguatges de programació, per centrar-nos en la traducció dels llenguatges formals en general, i deixar aspectes més concrets dels llenguatges de programació per a Processadors de Llenguatge II.

Objectius

Tenir soltura en el managament i comprensió de les gramàtiques així com les tècniques bàsiques de construcció d'intèrprets i compiladors per aquestes.  

Temari

1 Introducció

Que és un processador de llenguatge
Tipus de processadors de llenguatge

2 Llenguatges i gramàtiques

Tipus de gramàtiques
Gramàtiques equivalents.
Reconeixement de gramàtiques

3 Reconeixement d’expressions regulars

Generació de l’autòmat
Transformació d’un autòmat indeterminista a un de determinista
Simulació de l’autòmat: Taules d’estats.

4 Reconeixement de gramàtiques lliures de context

Construcció d’un reconeixedor recursiu descendent LL(1)
Reconeixement LR(0)
Conflictes i recomanacions amb LALR(1)

5 Taula de símbols i representació intermèdia

6 Tractament d’errors

Pràctiques

En les pràctiques es desenvoluparà un cercador de textos amb expressions regulars. Primer es desenvolupa un parser descendent recursiu, i després es fa el mateix usant "flex" i "bison"

Mètode d'avaluació

A través de las pràctiques i un examen. En l'examen hi haurà preguntes sobre la pràctica que es basarà en posar en pràctica els algorismes explicats a teoria i agafar soltura amb el tractament de les gramàtiques. La part pràctica val 4 punts dels quals 2 són el lliurament de les pràctiques i els altres dos surten de les preguntes sobre la pràctica fetes a l'examen La part de Teoria conta 6 punts dels quals 5 són de l'examen i 1 dels exercicis fets a classe de teoria i presentats. Es necessari tenir un 1.5 de pràctiques o un 2.5 de teoria per poder fer mitjana A setembre: Només hi ha examen, en el qual 4 punts són de preguntes sobre les pràctiques i 6 de teoria. Es pot anar a setembre només de les parts suspeses (teoria o pràctica)  

Bibliografia

Bibliografia bàsica

BENNETT, J.P. Introduction to Compiling Techniques - A First CourseUsing Ansi C, Lex and Yacc," McGraw Hill Book Co, 1990, ISBN 0-07-707215-4.

GRUNE,D., JACOBS, C.,Parsing Techniques, A practical guide Ed. Dick Grune, Ceriel Jacobs, 1995

GARRIDO, A. IÑESTA, J.M. MORENO, F. PEREZ, J.A. Diseño de compiladores. Publicaciones de la Universidad de Alicante. ISBN 84-7908-700-5

Bibliografia complementària

AHO, SETHI, and ULLMAN, Compiladores: Principios, Tecnicas, y herramientas

ANDREW W. APPEL Modern Compiler Implementation in (ML, Java, C) Ed. Cambridge University Press , 1998

CHARLES N. FISCHER & RICHARD J. LeBLANC, "Crafting A Compiler", Benjamin Cummings Publishing, Menlo Park, CA, 1988, ISBN 0-8053-3201-4.També en una versió posterior :"Crafting A Compiler in C"

DES WATSON, "High-Level Languages and Their Compilers," International Computer Science Series, Addison-Wesley Publishing Company, Wokingham England, 1989.

 

Darrera actualització 24-11-2010
© Universitat Pompeu Fabra, Barcelona