Fiches de cours 2018-2019

PDF
 

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/cc17:top

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. Data-flow analysis

9. Run-time organization and memory management

 

Keywords

programming language;

compiler;

interpreter;

regular expression;

context-free grammar;

type system;

code generation;

static code analysis

Learning Prerequisites

Recommended courses

Advanced ICC I

Theory of computation

Programming in Scala

Computer architecture

Learning Outcomes

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

Transversal skills

Teaching methods

Assessment methods

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  INF213INF119 
9-10CE1100  
10-11    
11-12     
12-13     
13-14     
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