On this page:
History of Programming Languages
7.9.0.22

History of Programming Languages

History

image

In this seminar course, we will study themes in the programming language research area from a historical perspective.
This idea of "several steps" is distinct from the modern idea of publishing every single thought that occurred to someone over breakfast so that the dean can get a high count for her yearly report.
The primary goal is to understand some of the major themes in the discipline as it exists today and how these themes evolved in several steps. Initially, the seminar will focus on two themes close to the instructor’s heart: how semantics emerged and how languages evolved that do not adhere to the common idea of a fixed syntax, scope, and semantics. The choice of other themes will entirely depend on students’ interests and preferences. All programming language themes are welcome.
The secondary goal is to develop basic skills for understanding and describing research themes. Every student will learn to approach a theme by reading a series of papers, preparing an annotated bibliography, and presenting the key steps in the evolution of the theme.
The intended audience consists of PhD students who will write a dissertation in the area and MS/undergraduate students who wish to deepen their understanding of the programming language area. PhD students at all stages of research will benefit. Someone close to the writing stage will have a chance to develop the bibliography for the chapter on background work; students at an early stage can use this opportunity to find, refine, or reject an idea for dissertation research.

Prerequisites Ideally, a PhD student should have taken Intensive Principles of Programming Languages. An undergraduate or an MS student should have taken Principles of Programming Languages and studied some additional topics of interest outside of courses.

Chosen First Topics

1.

    

Cameron Moy

    

higher-order contracts

2.

    

Helena Dworak

    

relational programming, Kanren (tentative)

3.

    

Olek Gierczak

    

gradual typing semantics

4.

    

Lucy Amidon

    

programming languages and operating systems

5.

    

Josh Goldman

    

type inference, origins and brittleness

6.

    

Donald Pinckney

    

functional reactive programming

7.

    

Andrew Wagner

    

session types

8.

    

Mitch Gamburg

    

pi calculus

9.

    

Ryan Guo

    

system F type systems

10.

    

Daniel Melcer

    

automatic differentiation

11.

    

Michael Ballantyne

    

hygienic macro expansion

12.

    

Jared Gentner

    

macro definitions

Chosen Second Topics

Cameron Moy

          

run-time verification

Olek Gierczak

          

logical relations in PL

Lucy Amidon

          

dependently typed logic (tentative)

Donald Pinckney

          

compiler generation (tentative)

Andrew Wagner

          

the expression problem