Checking date: 17/05/2022


Course: 2022/2023

Compilers
(13890)
Study: Dual Bachelor in Computer Science and Engineering, and Business Administration (233)


Coordinating teacher: GARCIA HERRERO, JESUS

Department assigned to the subject: Department of Computer Science and Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
Programming (1º, 1C) Automata and Formal Language Theory (2º, 1C)
Objectives
Cognitive 1. Knowledge on theoretical basis of automata and formal languages 2. Knowledge on techniques for lexical, syntactic and semantic analysis 3. Techniques for code generation 4. Techniques for error recovery 5. Knowledge on code optimization methods - Procedimental/Instrumental 1. Design of a formal grammar 2. Design of a lexical and syntactic ¡analyzers 3. Use of automatic tools (meta-compilers) for generation of analyzers - Attitudinal 1. Ability to generate new ideas (creativity) 2. Concern with quality 3. Motivation for success 4. Interest for investigating and finding solutions to new problems
Skills and learning outcomes
Description of contents: programme
Representation of formal languages, lexical analysis, syntactic analysis, semantic analysis, code generation, error recovery, code optimization
Learning activities and methodology
Theoretical lectures: 1.5 ECTS. To achieve the specific cognitive competences of the course (PO a, c). Practical lectures: 1,5 ECTS. To develop the specific instrumental competences and most of the general competences, such as analysis, abstraction, problem solving and capacity to apply theoretical concepts. Besides, to develop the specific attitudinal competences. They consist in proposing during the practical lectures a compiler/interpreter project to be developed in teamwork (PO c, d, e, g, k). -Guided academic activities (present teacher): 1 ECTS. The student proposes a project according to the teachers guidance to go deeply into some aspect of the course, followed by public presentation (PO c, d, g). -Guided academic activities (absent teacher): 1.5 ECTS. Exercises and complementary readings proposed by teacher (PO a, c). Exercises and examination: 0,5 ECTS. To complete the development of specific cognitive and procedimental capacities (PO a, c).
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60
Calendar of Continuous assessment
Basic Bibliography
  • A. V. Aho and Ravi Sethi and J. D. Ullman. Compiladores: Principios, Técnicas y Herramientas. Addison-Wesley Iberoamericana, 1990.
  • Kenneth C. Louden. Construcción de Compiladores. Principios y práctica. Thomson, 2004.
Additional Bibliography
  • C. N. Fisher, R. J. Leblanc. Crafting a Compiler with C. Addison-Wesley, 1991.
  • Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs, Koen G. Langendoen. Modern Compiler Design. John Wiley & Sons, 2000.
  • Doug Brown, John Levine, Tony Mason. Lex & Yacc. O'Reilly Media, Inc., 1995.
  • F. J. Sanchis and C. Galán. Compiladores: Teoría y Construcción. , Paraninfo, 1986.
  • Garrido, Iñesta, Moreno, Pérez. Diseño de Compiladores. Publicaciones Universidad de Alicante, 2002.
  • K. A. Lemone. Fundamentals of Compilers: An Introduction to Computer Language Translation. CRC Press, 1992.

The course syllabus may change due academic events or other reasons.