Courses
  /  
Descriptions
COMP_SCI 396, 496: Dynamics of Programming Languages

Quarter Offered

Spring : 2-3:20 TuTh ; Dimoulas & Findler

Description

The focus of the course is the rigorous analysis of programming languages. Where COMP_SCI 321 looks at languages through the lens of interpreter-based implementation, this course strips the languages down to their essential parts and describes them mathematically. This mathematical description of languages allows us to state and prove properties that validate their design.

Through a series of lectures, you will learn: 

(i) how to describe the essence of programming languages in math; 

(ii) how to state and prove their basic properties; 

(iii) how to use PLT Redex, a domain-specific language, to turn the math into programs that you can test and experiment with.  

To put these lessons in good use, you will investigate programming language designs from the research literature, translate them into Redex programs, test them and present your findings in class.

COURSE INSTRUCTOR: Prof. Christos DimoulasProf. Robby Findler

RECOMMENDED TEXT: Semantics Engineering with PLT Redex

SUGGESTED PREREQUISITE: COMP_SCI 321 (but not required)