Educational guide
IDENTIFYING DATA 2024_25
Subject LANGUAGE PROCESSORS Code 00709035
Study programme
0709 - GRADO EN INGENIERÍA INFORMÁTICA
Descriptors Credit. Type Year Period
6 Compulsory Fourth Second
Language
Castellano
Ingles
Prerequisites
Department ING.MECANICA,INFORMAT.AEROESP.
Coordinador
FERNÁNDEZ DÍAZ , RAMÓN ÁNGEL
E-mail raferd@unileon.es
jmalip@unileon.es
Lecturers
ALIJA PÉREZ , JOSÉ MANUEL
FERNÁNDEZ DÍAZ , RAMÓN ÁNGEL
Web http://agora.unileon.es
General description Introduces the student to the analysis and evaluation of language processing tools (compilers).
Tribunales de Revisión
Tribunal titular
Cargo Departamento Profesor
Presidente ING.MECANICA,INFORMAT.AEROESP. PEREZ GARCIA , HILDE
Secretario ING.MECANICA,INFORMAT.AEROESP. PANIZO ALONSO , LUIS
Vocal ING.MECANICA,INFORMAT.AEROESP. CASTEJON LIMAS , MANUEL
Tribunal suplente
Cargo Departamento Profesor
Presidente ING.MECANICA,INFORMAT.AEROESP. SANCHEZ GONZALEZ , LIDIA
Secretario ING.MECANICA,INFORMAT.AEROESP. MATELLAN OLIVERA , VICENTE
Vocal ING.MECANICA,INFORMAT.AEROESP. BARREIRO GARCIA , JOAQUIN

Competencias
Code  
A18138
B5619
B5623
B5625
C2 CMECES2 That students know how to apply their knowledge to their work or vocation in a professional manner and possess the skills that are usually demonstrated through the development and defense of arguments and the resolution of problems within their area of study.
C5 CMECES5 That students have developed those learning skills necessary to undertake further studies with a high degree of autonomy

Learning aims
Competences
The student knows the theoretical foundations of programming languages and the associated lexical, syntactic and semantic processing techniques, and knows how to apply them to language creation, design and processing. A18138
B5619
B5623
B5625
C2
C5
The student applies language theory to the construction of language processors. A18138
B5619
C2
The student is able to implement and evaluate solutions to language processor problems. A18138
B5619
B5623
C5

Contents
Topic Sub-topic
Fundamentals of language processors 1. INTRODUCTION TO LANGUAGE PROCESSORS
Functions of language processors. Logical and physical structures. Types.

2. LEXICAL ANALYSIS
Functional description. Tokens, lexemes and patterns. Lexical errors. Token specification and recognition. Error handling.

3. SYNTHATIC ANALYSIS
Functional description. Context-free grammars. Top-down parsing. Bottom-up parsing. Error recovery.

4. SEMANTIC ANALYSIS
Functional description. Syntax-oriented translation. Symbol tables.

5. INTERMEDIATE CODE GENERATION
Three-way code. Types and declarations. Expression translation. Type checking and conversion.

6. EXECUTION ENVIRONMENT. CODE GENERATION AND OPTIMISATION
Storage organisation, allocation and access. Code generation: instruction selection, register allocation, basic blocks. Main sources of optimisation.

7. GENERAL PROCEDURES AND TOOLS FOR BUILDING LANGUAGE PROCESSORS. LANGUAGE-BASED PRODUCTION TOOLS AND THEIR PROCESSORS
Lexical and syntactic parser generators, grammar parsers, syntax-driven translation machines, automatic code generators.

Planning
Methodologies  ::  Tests
  Class hours Hours outside the classroom Total hours
Personal tuition 2 0 2
 
Practicals using information and communication technologies (ICTs) in computer rooms 20 30 50
Problem solving, classroom exercises 10 15 25
 
Lecture 23 25 48
 
Extended-answer tests 5 20 25
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies   ::  
  Description
Personal tuition Time that each teacher has to speak to pupils and resolve their doubts.
Practicals using information and communication technologies (ICTs) in computer rooms Practical application of the theory of a knowledge area in a particular context. Practical exercises using ICTs.
Problem solving, classroom exercises Formulation, analysis, resolution and debate of a problem or exercise related to the topic of the subject.
Lecture Description of the contents of the subject.

Personalized attention
 
Personal tuition
Description
Personalised guidance on request

Assessment
  Description Qualification
Practicals using information and communication technologies (ICTs) in computer rooms Completion, delivery within the established deadlines and defence (oral and/or written tests) of practical work consisting of software development. 30%
Extended-answer tests Written tests consisting of exercises and case studies. 50%
Others Submission of optional work, attendance and participation in course activities. 20%
 
Other comments and second call
OTHER REMARKS:

In order to pass the subject, it is necessary to obtain a mark of at least 5 points (out of a maximum of 10 points) in both the part corresponding to the development tests and the practical laboratory part. In order to pass the practical part of the course, all practical work must be submitted within the specified deadlines. 

The course is passed if the final weighted score is at least 5 points out of a maximum of 10.

SECOND EXAMINATION:

Final examination of the whole course. The grade of the laboratory practical will be kept for those students who have passed it.

Sources of information
Access to Recommended Bibliography in the Catalog ULE

Basic

Aho A.H., Lam M.S., Sethi R & Ullman J.D. Compilers: principles, techniques and tools Addison Wesley 2007

Aho A.H. & Ullman J.D. The theory of parsing translation and compiling Vol 1 Parsing 1972 Vol 2 Compiling 1973 Prentice-Hall

Bauer F.L. & Eickel J. Ed. Compiler construction . An advanced course Lecture Notes in Computer Science nº 21, Springer 1974

Bornat R. Understanding and writing compilers MacMillan 1979

Deransart P., Jourdan M. & Lorho B Attribute grammars Springer 1988 Lecture Notes in Computer Science 323

Gries D. Compiler construction for digital computers Wiley 1971

Grune D., Jacobs C., Parsing techniques http://www.cs.vu.nl/~dick/PTAPG.html

Grune D., Jacobs C., Parsing techniques (segunda edición) Springer 2008

Grune D., et al. Modern compiler design Wiley 2000 (hay traducción al español)

Garrido A. et al. Diseño de compiladores Universidad de Alicante

Louden K. C. Construcción de compiladores Thomson Mexico 2004

Jones R. Lins R. Garbage collection Wiley 1996

Watt D. A Programming Language Design Concepts Wiley 2004

Complementary


Recommendations