Academics
  /  
Courses
  /  
Descriptions
COMP_SCI 324, 424: Dynamics of Programming Languages


VIEW ALL COURSE TIMES AND SESSIONS

Prerequisites

COMP_SCI 321 or Instructor consent

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.

  • Formerly Comp_Sci 396/496 - last offer was Spring 2022
  • This course satisfies CS Technical Elective.

COURSE INSTRUCTOR: Prof. Christos Dimoulas

RECOMMENDED TEXT: Semantics Engineering with PLT Redex