I've added links to two important early papers on types to the course web page. The first paper is Church's 1940 paper on "A Formulation of the Simple Theory of Types", which introduces the simply typed lambda calculus. The second is Newman's 1942 paper on "Stratified Systems of Logic", which I got from Jean-Jacques Levy, who got it from Roger Hindley. This may be the first paper that describes a process that could be considered type checking.
If you download these papers and look at them, you'll see that the terminology and notation are rather antique and laborious by modern standards, and they refer to issues and systems that are no longer current, so reading them is a lot of work. But it is probably worthwhile spending a little time trying to reconstruct what is going on in comparison with our current ways of doing things (e.g. abstract syntax of terms). You will see that in those days they had a rather concrete view of syntax, lacking the notation of a grammar.
Monday, April 2, 2007
Monday, March 26, 2007
Welcome to the CMSC 32001-1 Course Blog
This blog is for announcements and discussion relating to the UofC course CMSC 32001-1, Topics in Programming Languages, Spring 2007.
Although the official title of the course is the generic "Topics in Programming Languages", the unofficial title is "Implementing Type and Module Systems". The course will cover a range of basic and advanced techniques used in implementing modern type systems, including module systems like that of Standard ML. The first detailed examples of implementation techniques will come from the Standard ML of New Jersey (SML/NJ) compiler, but there will be background readings relating to design and implementation issues covering a variety of related systems and various extensions to the ML type system. The formal, graded work for the course will consist of a paper or programming project due at the end of the course.
The first meeting is at 10:30am in Ry 277 on Monday, March 26. There will be no meetings on Wednesday or Friday this week because I will be away at ESOP 07, so we will continue on Monday, April 2. A make-up class will be scheduled later in the quarter.
Although the official title of the course is the generic "Topics in Programming Languages", the unofficial title is "Implementing Type and Module Systems". The course will cover a range of basic and advanced techniques used in implementing modern type systems, including module systems like that of Standard ML. The first detailed examples of implementation techniques will come from the Standard ML of New Jersey (SML/NJ) compiler, but there will be background readings relating to design and implementation issues covering a variety of related systems and various extensions to the ML type system. The formal, graded work for the course will consist of a paper or programming project due at the end of the course.
The first meeting is at 10:30am in Ry 277 on Monday, March 26. There will be no meetings on Wednesday or Friday this week because I will be away at ESOP 07, so we will continue on Monday, April 2. A make-up class will be scheduled later in the quarter.
Subscribe to:
Posts (Atom)