CS522 - Programming Language Semantics (Fall 2018)

From FSL
Revision as of 12:34, 9 October 2018 by Grosu (Talk | contribs)

Jump to: navigation, search

Students enrolled in this class are expected to check this web page regularly. Lecture notes and important other material will be posted here.

Course Description

CS522 is an advanced course on semantics of programming languages. Various semantic approaches and related aspects will be defined and investigated. Executable semantics of various programming languages and paradigms will be discussed, together with major theoretical models.

  • Meetings: Tu/Th 9:30 - 10:45, 1103 Siebel Center
  • Professor: Grigore Rosu (Office: SC 2110, WWW: http://fsl.cs.illinois.edu/grosu, Email: grosu@illinois.edu)
  • Office hours: By appointment, very flexible (held by Grigore Rosu in SC 2110)

Piazza Page

CS522 Piazza Page

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 and more topics will be added.

  • Conventional Semantic Approaches
HW1 (due Tuesday, September 18) Downarrow.png
The following exercises are from the book material above. Do them only in Maude (that is, not on paper) by modifying 25px-Zip_icon.png the provided Maude code for HW1 Info_circle.png): Exercise 56 (page 137); Exercise 70 (page 155).

In case you are not familiar with Maude, you are encouraged to do the following exercises to warm-up (but please do not include them as part of your HW1 submission): Exercise 30; Exercise 32; Exercise 33; Exercise 35; Exercise 36. All at pages 80/81.

HW2 (due Wednesday, October 3 - easy HW, so earlier submission possible and appreciated) Downarrow.png
The following exercises related to denotational semantics are from the book material above: Exercises 80, 81, 82 ((page 168; write these up on paper, or in a PDF); Exercise 83 (page 169; do it only in Maude (that is, not on paper) by modifying 25px-Zip_icon.png the provided Maude code for HW2 Info_circle.png).
HW3 (due Monday, October 15) Downarrow.png
Combine all the individual extensions of IMP in 25px-Zip_icon.png the provided Maude code for HW3 Info_circle.png into the IMP++ language. Read the book material above for all the technical details. You should create a subfolder of imp called 6-imp++, and that should have four subfolders, one for each semantic style. Provide also three IMP++ programs.
  • Lambda Calculus and Combinatory Logic
  • Simply-Typed Lambda Calculus
  • Category theory: definition, diagrams, cones and limits, exponentials.
  • Cartesian Closed Categories as models for simply-typed lambda-calculus.
  • Recursion, Types, Polymorphism
  • Recursion and Types.
  • Polymorphism.
Personal tools