On this page:
Programming Languages
Home
8.16.0.2

Programming Languages🔗

Programming Languages

From the first day of the semester forward I expect students (you) to visit this page once per 24 hours. It is the only source of truth with respect to milestones and warm-up exercises.


Abstract

The course introduces the basic aspects of programming languages:
  • syntax, which refers to the superficial appearances of code;

  • static semantics, which is a collective term for the static checks of code as performed in IDEs and language implementations;

  • dynamic semantics, which, in the context of this course, denotes the study of how programs behave; and

  • pragmatics, which is the evaluation of how language (construct) assists software developers in various tasks—or fails to do so.

Following tradition, the course will use executable models of small programming languages to illustrate these ideas.

The Fall’25 semester instance of this course will illustrate these aspects with a careful study of (models of) JavaScript and TypeScript: how to understand the imperative core language, classes, objects, types, and the interaction between typed and untyped code fragments.

Project

The course work mostly consists of a series of approximately weekly homework problems that build on each other to yield a complete language implementation (of a model).

At the beginning of the semester, students will choose the programming language with which they wish to work on homework problems. Students will present their solutions to their peers during lecture time. The use of AI is acceptable as long as students can explain the resulting code and as long as they can build on this code from week to week.

Prerequisite

This course requires a thorough understanding of Fundamentals I and Fundamentals II. Having taken an instance of Object-Oriented Design during a regular semester provides an advantage, because it reinforces the lessons of F II; a summer version of the course does not help.—An understanding of state machines—say, as covered in the text book for F Iprovides a head start.