CS-420 / 6 credits

Teacher: Schinz Michel

Language: English


Summary

Students learn several implementation techniques for modern functional and object-oriented programming languages. They put some of them into practice by developing key parts of a compiler and run time system for a simple functional programming language.

Content

Keywords

compilation, programming languages, functional programming languages, object-oriented programming languages, code optimization, register allocation, garbage collection, virtual machines, interpreters, Scala.

Learning Prerequisites

Recommended courses

CS-320 Computer language processing

Important concepts to start the course

Excellent knowledge of Scala and C programming languages

Learning Outcomes

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

  • Assess / Evaluate the quality of a compiler intermediate representation
  • Design compilers and run time systems for object-oriented and functional programming languages
  • Implement rewriting-based compiler optimizations
  • Implement efficient virtual machines and interpreters
  • Implement mark and sweep or copying garbage collectors

Teaching methods

Ex Cathedra, mini-project

Assessment methods

Continuous control (mini-project 80%, final exam 20%)

Supervision

Office hours No
Assistants Yes
Forum Yes

Resources

Virtual desktop infrastructure (VDI)

No

Websites

In the programs

  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Advanced compiler construction
  • Lecture: 2 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks

Reference week

 MoTuWeThFr
8-9     
9-10     
10-11     
11-12     
12-13     
13-14     
14-15     
15-16   INR219 
16-17    
17-18   INR219 
18-19    
19-20     
20-21     
21-22     

Thursday, 15h - 17h: Lecture INR219

Thursday, 17h - 19h: Project, other INR219

Related courses

Results from graphsearch.epfl.ch.