Fiches de cours

Computer language processing

CS-320

Enseignant(s) :

Kuncak Viktor

Langue:

English

Summary

We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language into the new web standard for portable binaries called WebAssembly ( https://webassembly.org/ )

Content

See https://lara.epfl.ch/w/cc

1. Overview, source languages and run-time models

2. Review of formal languages

3. Lexical analysis

4. Syntactic analysis (parsing)

5. Name analysis

6. Type checking

7. Code generation

8. Correctness of compilers

Keywords

programming language;

compiler;

interpreter;

regular expression;

context-free grammar;

type system;

code generation;

static code analysis

Learning Prerequisites

Recommended courses

Discrete Mathematics

Theory of computation

Functional Programming

Computer architecture

Learning Outcomes

By the end of the course, the student must be able to:

Transversal skills

Teaching methods

Assessment methods

The grade is based on the programming, testing, documentation, and presentation of projects done on student's own laptops during the semester.

Different groups of students may be assigned different variants of projects. There may be small but unavoidable variations in the difficulty of different variants.

Supervision

Office hours Yes
Assistants Yes
Forum Yes

Resources

Bibliography

Andrew W. Appel, Modern compiler implementation in Java (or ML), Addison-Wesley 1997 (full PDF available from EPFL library)

Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles, Techniques, and Tools (2nd Edition, 2006)

Niklaus Wirth: Compiler Construction, neat textbook from a prominent classical authority. Freely available  http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf

Ressources en bibliothèque
Notes/Handbook

http://lara.epfl.ch/w/cc

Faboulous and gently paced videos: https://www.coursera.org/course/compilers

Websites

Prerequisite for

Advanced compiler construction

Recommended for Foundations of software

Dans les plans d'études

    • Semestre
       Automne
    • Forme de l'examen
       Pendant le semestre
    • Crédits
      6
    • Matière examinée
      Computer language processing
    • Cours
      2 Heure(s) hebdo x 14 semaines
    • Exercices
      2 Heure(s) hebdo x 14 semaines
    • TP
      2 Heure(s) hebdo x 14 semaines
    • Semestre
       Automne
    • Forme de l'examen
       Pendant le semestre
    • Crédits
      6
    • Matière examinée
      Computer language processing
    • Cours
      2 Heure(s) hebdo x 14 semaines
    • Exercices
      2 Heure(s) hebdo x 14 semaines
    • TP
      2 Heure(s) hebdo x 14 semaines

Semaine de référence

 LuMaMeJeVe
8-9  INM202INF119 
9-10   
10-11     
11-12     
12-13     
13-14CE1100    
14-15    
15-16     
16-17     
17-18     
18-19     
19-20     
20-21     
21-22     
 
      Cours
      Exercice, TP
      Projet, autre

légende

  • Semestre d'automne
  • Session d'hiver
  • Semestre de printemps
  • Session d'été
  • Cours en français
  • Cours en anglais
  • Cours en allemand