CS 819 - Higher-Order Typed Low-Level Languages - Spring 1999
15-819(A) Special Topics in Programming Languages:
Higher-Order Typed Low-level Languages
John Reynolds
Units: 12
DESCRIPTION:
A major goal of programming-language research is to extend the
benefits of higher-order typed programming languages, especially type
safety and rigorous program verification, to lower-level languages that
give the programmer more control over efficiency. In this course we will
explore two approaches to this goal: (1) to start with a higher-order typed
language (such as a purely functional, ML-like, or Algol-like language) and
introduce features, such as linear types or explicit closures, that give
the programmer more control, or (2) to start with a very low-level language
(such as a machine language) and introduce a type system or verification
methodology.
SCHEDULE:
I have rearranged the class schedule for CS 819 to accomodate as many
people as I could, subject to University holidays, classroom availablity,
and my own travel plans. Except for April 14, all classes are 1:30-2:50 pm
in Wean Hall, but the days and rooms vary:
Thursday, January 14 - 4615A
(no class Monday, January 18 - Martin Luther King Day)
Wednesday, January 20 - 4603
Monday, January 25 - 7220
Wednesday, January 27 - 4603
Monday, February 1 - 7220
Wednesday, February 3 - 4603
Monday, February 8 - 7220
Wednesday, February 10 - 4603
Monday, February 15 - 4601
Friday, February 19 - 4601
Monday, February 22 - 4601
Wednesday, February 24 - 4601
(no class Monday, March 1 - Mid-Semester Break)
Friday, March 5 - 4601
Monday, March 8 - 4601
Friday, March 12 - 4601
Monday, March 15 - 4601
Friday, March 19 - 4601
(no classes March 22-26 - Spring Break)
Monday, March 29 - 4601
Friday, April 2 - 4601
Monday, April 5 - 4601
Friday, April 9 - 4601
Monday, April 12 - 4601
Wednesday, April 14 - 4601 (2:00-2:50 pm)
Monday, April 19 - 4601
Friday, April 23 - 4601
Monday, April 26 - 4601
Wednesday, April 28 - 4601
PREREQUISITES: CS15-711 or equivalent
TEXT: There is no published text. The course will be based upon
published papers, preprints, and occasional class notes. See the tentative
bibliography given below.
Method of Evaluation: Grading will be based upon either a class
presentation or a term paper.
TOPICS TO BE COVERED:
- Linear typing
- Effects as monads
- Specification logic for Algol-like and object-oriented languages
- Reasoning about pointers and aliasing
- Type and proof systems for machine language
TENTATIVE BIBLIOGRAPHY:
- Benton, P. N. A Mixed Linear and Non-Linear
Logic: Proofs, Terms and Models (Extended Abstract). In: Computer
Science Logic, 8th Workshop, CSL '94, Selected Papers, Kazimierz,
Poland, September 25-30, 1994, edited by L. Pacholski and J. Tiuryn.
Lecture Notes in Computer Science, vol. 933, Springer-Verlag, Berlin,
1995, pp. 121- 135.
- Levy, P. B. Call-by-Observable: A Subsuming Paradigm. 1998.
- Mason, I. A.
Verification of Programs that Destructively Manipulate Data.
Science of Computer Programming 10(1988) pp. 177-210.
- Morrisett, C., Walker, D., Crary, K., and Clew, N.
From System F to Typed Assembly Language.
In: Conference Record of POPL '98: The 25th ACM
SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego,
January 19-21. ACM Press, New York, 1998, pp. 85-97.
- Necula, C. C. Proof-Carrying Code.
In: Conference Record of POPL '97:
The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming
Languages, Paris, France, January 15-17. ACM Press, New York, 1997, pp.
106-119.
- Pitts, A. M. and Stark, I. D. B. Observable Properties of Higher
Order Functions that Dynamically Create Local Names, or: What's new? In:
Mathematical Foundations of Computer Science 1993, 18th International
Symposium, Gdaiisk, Poland, August 30-September 3, edited by A. M.
Borzyszkowski and S. Sokolowski. Lecture Notes in Computer Science,
vol. 711, Springer-Verlag, Berlin, 1993, pp. 122-141.
- Reddy, U. S. Objects and Classes in Algol-like Languages. June
14, 1998.
- Reynolds, J. C. Idealized Algol and its Specification Logic.
In: Tools and Notions for Program Construction, An advanced course,
Nice, France, December 7-18, 1981, edited by D. Neel. Cambridge University
Press, Cambridge, England, 1982, pp. 121-161.
COMMENTS:
- Grading option - pass/fail
-
Any Ph.D. student may register on-line; others by permission of the instructor
only. Both creditors and auditors must register.
John.Reynolds@cs.cmu.edu
(
home page)
last updated February 4, 1999