CS571: Programming Languages, Fall 2011 (Section I & II)




Essentials

  • Time:
    • Section I: T Th 6PM - 7:25PM
    • Section II: T Th 7:35PM - 9PM
  • Classroom: EB-Q23
  • Professor: David Liu. Office hour: T Th 4:50PM-5:50PM (room G25, NOT my office!)
  • TA for Section I: Haris Ribic, Office hour: MW11-12 (room G25). Email: hribic1@binghamton.edu
  • TA for Section II: Yu Jiang, Office hour: MF 12-1 (room G25). Email: yjiang5@binghamton.edu
  • Blackboard System, where lecture slides and assignments are posted.

Topics

This is an introductory programming language course for graduate students. Its level of difficulty is on par with a typical upper-level undergraduate programming language course, with slightly more focus on compiler implementation and foundations. Students are not assumed to have deep pre-knowledge of functional programming or logic programming. Significant experience with C-like languages and Java-like languages, however, is required. Topics covered by the course include:

  • compiler construction with Flex, Bison, and Polyglot
  • selected features (syntax and semantics) for Java-like languages
  • selected features (syntax and semantics) for C-like languages
  • functional programming with Haskell
  • logic programming with Prolog

Textbook

  • Michael Scott, PROGRAMMING LANGUAGE PRAGMATICS, 3rd Edition, ELSEVIER, ISBN:9780123745149

Dateline

This dateline is being developed incrementally and iteratively. The schedules and topics will be continually updated to reflect any changes.

Date
Day
Topic
Note
Assignments
Aug 30
T
Introduction
 
 
Sept 1
Th
Compiler Construction (Lexing and flex)
 
 
6
T
Compiler Construction (Parsing and Bison)
 
 
8
Th
No class
Flood
 
13
T
Presentations (XML, ant)
 
 
15
Th
Presentation (Jflex); Compiler Construction (Java Lexing)
 
Project Iteration I Out
20
T
Compiler Construction (Java Parsing)
 
 
22
Th
Compiler Construction (Semantic Analysis: Java Typechecking)
 
Project Iteration I Due 11:59PM
27
T
Compiler Construction (Semantic Analysis: Java Type Lookup; Intermediate Code Generation)
 
 
29
Th
No class
NYS Holiday
 
Oct 4
T
Compiler Construction (Optimization; Final CodeGen; Polyglot Passes and Scheduling; Java Extension with Polyglot)
 
Project Iteration II Out
6
Th
Polyglot Review Session
 
6:45PM-8:15PM, joint session
11
T
OO I
 
Project Iteration II Due 11:59PM Today; Demo next day
13
Th
OO II
 
 
18
T
OO III; Multithreading I (Java Threading Basics)
 
 
20
Th
Mulithreading II (Correctness Properties)
 
 
25
T
Mulithreading III (Futures, and Project Explanation)
 
 
27
Th
Procedural I
 
Project Iteration III, IV, V Out
Nov 1
T
Procedural II
 
 
3
Th
Presentations
Sec I: Go Basics (first half), Go Concurrency (second half)
Sec II: LLVM (first half), Java Generics (second half)
 
Project Iteration III Due the next day
8
T
Procedural III
 
 
10
Th
Haskell I
 
Project Iteration IV Due the next day
15
T
Haskell II
 
 
17
Th
Haskell III
 
Project Iteration V Due the next day
22
T
Presentations:
Sec I: Cyclone (first half), Dart (second half)
Sec II: Scala OO (first half), Scala Functional (second half)
 
Assignment I Out; Iteration VI Out (choose one between it and Assignment II)
24
Th
No class
Turkey Day
 
29
T
Haskell IV
 
 
Dec 1
Th
Prolog I
 
 
6
T
Prolog II
 
Assignment I Due Tonight; Assignment II Out (choose one between it and Iteration VI)
8
Th
Prolog III; Conclusion
 
Iteration VI and Assignment II Due the next Tuesday; Final Demo the coming week

Useful Links

Academic Honesty