|
|
Overview
Goals of this course:
- Better understanding of programming languages
- Which concepts are essential?
- Which are ephemeral?
- How can fundamental concepts encode derived ones?
- Better understanding of programming
- Fundamental composition principles
- Language as a means of abstraction
- Interpreters and compilers
- Better understanding of definitions of programming languages
- Which things can/should be formalized
- What techniques are available for formalization
- Overall: Increased competence as a programmer, language
implementor, library and language designer
The course is organized in three streams:
- Theory: Syntax and Semantics of Programming Languages
- Applications: Core languages that illustrate essential concepts: Funnel, Oz, Nomadic Pict
- Practice: Programming & Verification Examples, Interpreters
References:
Schedule
This schedule is still preliminary.
- Week 1 (March 11 & March 14): Introduction
-
- Week 2 (March 18 & March 21): Lambda Calculus
-
- Week 3 (March 25 & March 28): Lambda Calculus & Algebraic Data Types
-
- Week 4 (April 08 & April 11): Concurrency I: from Lambda to CCS
-
- Week 5 (April 15 & April 18): Concurrency II: Bisimulation
-
- Week 6 (April 22 & April 25): Concurrency III: from CCS to Pi
-
- Week 7 (April 29 & May 2): Concurrency IV: from Pi to FN
-
- Week 8 (May 6 & May 9): Simply Typed Lambda Calculus
-
- Week 9 (May 13 & May 16): Types II - Polymorphism
-
- Week 10 (May 20 & May 23): Types III - Objects
-
- Week 11 (May 27 & May 30): Types IV - Classes & Inheritance
-
- Week 12 (June 3 & June 6): Types V - Nested?
-
- Week 13 (June 10 & June 13): Distribution I
-
- Week 14 (June 17 & June 20): Distribution II
-
- Oral EXAM - July, 2002
-
Slides
-
Overview,
in .pdf format, in .ps format.
- Introduction to Functional Programming,
in .pdf format, in .ps
format.
- Lambda Calculus,
in .pdf format, in .ps
format.
- Lists in Funnel
,
in .pdf format, in .ps
format.
- From Lambda to CCS (Session 8),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- Equivalence in CCS (Session 9),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- Scheduler Example (Session 10),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- From CCS to Pi-Calculus (Session 11),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- Booleans & Buffer Example (Session 12),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- Pi-Calculus: Encodings and Variants (Session 13),
in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.
- Functional Nets,
in .ps format, in .ppt format.
- Type Systems: The Simply Typed Lambda Calculus,
in .pdf format, in .ps format.
- Polymorphism,
in .pdf format, in .ps format.
- Types for Objects,
in .pdf format, in .ps format.
- Classes and Inheritance,
in .ps format, in .ppt format.
- Located Process Calculi (June 10),
in 4on1.ps
- Nomadic Pict (June 17),
Tutorial
Contact
Related Links
|
|