Study-Unit Description

Study-Unit Description



CODE CSA2201

 
TITLE Formal Languages and Compilers

 
UM LEVEL 02 - Years 2, 3 in Modular Undergraduate Course

 
MQF LEVEL 5

 
ECTS CREDITS 6

 
DEPARTMENT Computer Science

 
DESCRIPTION Module 1: Formal Languages

This module will be dealing with the formal treatment of languages and automata (or machines) to recognize languages. The aims are not only at instilling the basic notions of languages, grammars and automata using formal mathematical notation but also provides a practical perspective, by applying the mathematical results to design parsers.

Syllabus:

• Formal languages and grammars.
• Regular languages: regular grammars, finite-state automata, regular expressions.
• Context-free languages: context-free grammars, pushdown automata.
• Closure properties of regular and context-free languages.
• Normal forms for grammars.
• Recognition algorithms for grammars.

The theory explored in the study-unit will also be presented from a practical perspective, and a background in declarative functional programming will be assumed. The constructions used in the proofs covered in the study-unit will also be expressed as programs, introducing the concept of provably correct algorithms.

Module 2: Compilers

This module is an advanced compiler theory course which concerns itself mainly with the building of efficient and correct compilers. We’ll see how many of the algorithms used in formal language theory are utilized in compiler writing. The aim of this course is to give students a solid theoretical and practical understanding of how to build a compiler.

The following topics (amongst others which we might deem important at the time of delivering the study-unit) are covered:

• Lexical Analysis;
• Syntax Analysis;
• Type Checking;
• Code Generation and Optimisation.

Textbooks:

• An Introduction to Formal Langauges and Automata, Peter Linz, Jones and Bartlett Publishers, 2006.
• An Introduction to the Theory of Computation, Michael Sipser, PWS Publishing, 1997.
• A First Course in Formal Language Theory, V.J. Rayward-Smith, McGraw Hill, 1995.
• Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman Compilers – Principles, Techniques and Tools (2nd Edition).

 
ADDITIONAL NOTES The method of assessment shown below is for Day courses only. The method of assessment for Evening courses is:
- 25% Assignment [Resit: Yes]
- 75% Examination (3 Hours) [Resit: Yes]

 
STUDY-UNIT TYPE Lecture

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Assignment Yes 25%
Examination (3 Hours) Yes 75%

 
LECTURER/S

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2025/6. It may be subject to change in subsequent years.


https://www.um.edu.mt/courses/studyunit/index.php