CS422 - Programming Language Design (Fall 2007)

From FSL
Jump to: navigation, search


Students enrolled in this class are expected to check this web page regularly. Complete lecture notes will be posted here.

Contents

Course Description

CS422 is an advanced course on principles of programming language design. Major language design paradigms will be investigated and rigorously defined, including: static versus dynamic binding, call-by-value, by reference, by name, and by need, type checking and type inference, objects and classes, concurrency. Since the definitional (or specification) framework used in this class will be executable, interpreters for the designed languages will be obtained for free. Software analysis tools reasoning about programs in these languages will also arise naturally. Major theoretical models will be discussed.

Meetings: Tu/Th 3:30 - 4:45, 1302 Siebel Center
Credit: 3 or 4 credits
Professor: Grigore Rosu (Office: SC 2110)
Office hours: 10:00 - 12:00 on Mondays (held by Grigore Rosu in SC 2110)
Web site: http://fsl.cs.uiuc.edu/index.php/CS422_-_Programming_Language_Design_%28Fall_2007%29

Newsgroup

news://news.cs.uiuc.edu/class.cs422

Lecture Notes, Useful Material

The links below provide you with useful material for this class, including complete lecture notes. These materials will be added by need.

  • Small-step SOS
  • Big-step SOS
  • Modular SOS
  • Reduction semantics with evaluation contexts
  • Homework 1 (40 points), due Sept 11, midnight: the three HW exercises in the lecture notes on operational semantics above. First exercise is on pages 63-65 and is worth 20 points. Second exercise is on page 90 and is worth 10 points. Third exercise is on page 116 and is worth 10 points.
  • 25px-Pdf_icon.png Maude Info_circle.png (updated on September 6, 2007; complete) [L5,L6]
  • 25px-Pdf_icon.png CHAM and K Info_circle.png (updated on September 13, 2007; incomplete) [L7,L8]
  • 25px-Zip_icon.png k2maude.zip Info_circle.png - K definitions in Maude (updated on September 18, 2007; incomplete) [L8]
  • Homework 2 (40 points), due Sept 25, midnight: the two HW exercises in the lecture notes on Maude above, plus defining increment and halt in CHAM and K. The first two exercises are worth 15 points each; the remaining two are worth 5 points each.
  • 25px-Pdf_icon.png K for the Maude User Info_circle.png (updated on September 25, 2007; incomplete) [L10]
  • A concrete K semantics
  • A dynamically checked type system
  • A statically checked type system
  • Homework 3 (40 points), due Thursday, October 11, midnight: There are three K definitions to complete, one for the untyped SILF (15 points), one for the dynamically typed SILF (15 points) and one for the statically typed SILF (10 points). See the README.txt file in the archive below:
  • 25px-Pdf_icon.png Elements of Functional Programming Info_circle.png (updated on October 04, 2007; incomplete) [L13].
  • 25px-Pdf_icon.png Defining Untyped FUN: a Simple Untyped Functional Language Info_circle.png (updated on October 16, 2007; complete) [L14,L15].
  • Homework 4 (40 points), due Tuesday, October 23, midnight: Complete the K definition of FUN (30 points) and then add 4 more examples (10 points). You only need to modify the file xyz-semantics.maude in the archive below for the first part, and also file xyz-programs.maude for the second:

Unit Project

Information on the unit project will be available soon.

Personal tools
Namespaces

Variants
Actions
Navigation