Course "Programming Language Theory" WS 2012/13

Staff

Lecture: Prof. Dr. Ralf Lämmel

Lab: Andrei Varanovich

Exam

  • Final: 06.02.2013, M 201, 10:15-11:15
  • Resit: 29.05.2013, E 011, 18:15-19:15
  • Student ids will be checked.
  • You need to have a valid admission for the exam.
  • You *must* register with KLIPS (watch out for "Programmierparadigmen").

Links

Lectures

Lectures start "ct".

  • 17.10.2012: Prolog crash course [.pdf]; [.pro]
  • 24.10.2012: Introduction [.pdf]
  • 31.10.2012: Big-step semantics [.pdf]
  • 07.11.2012: Small-step semantics [.pdf]
  • 14.11.2012: Semantics-based reasoning [.pdf]
  • 21.11.2012: Type systems [.pdf]
  • 28.11.2012: The untyped lambda calculus [.pdf]
  • 05.12.2012: The simply-typed lambda calculus [.pdf]
  • 12.12.2012: Lambda calculi with polymorphism [.pdf]
  • 19.12.2012: Featherweight Java [.pdf]
  • 09.01.2013: Concurrency calculi [.pdf]
  • 16.01.2013: Denotational semantics [.pdf]
  • 23.01.2013: Program analysis [.pdf]
  • 30.01.2013: Program specialization [.pdf]
  • 06.02.2013: Final

Extra material has to be covered for the extended (legacy) course "Programming paradigms". To this end, an "Introduction to functional programming" (aka "Haskell crash course") is taught in a block course in January.

Labs

  • 17.10.2012: Prolog crash course
  • 24.10.2012: Prolog crash course
  • 31.10.2012: Big-step semantics
  • 07.11.2012: Small-step operational semantics
  • 14.11.2012: Semantic-based reasoning
  • 21.11.2012: Type systems
  • 28.11.2012: No lab
  • 05.12.2012: The simply-typed lambda calculus
  • 12.12.2012: Lambda calculi with polymorphism
  • 19.12.2012: Dry final run / Q&A
  • 09.01.2013: The CCS calculus concurrency
  • 16.01.2013: Haskell
  • 23.01.2013: Denotational semantics
  • 30.01.2013: Q&A [.pdf]

Assignments

  1. Big-step operational semantics
  2. Small-step operational semantics
  3. Semantic-based reasoning
  4. Type systems
  5. The untyped lambda calculus
  6. An applied, typed lambda calculus
  7. Lambda calculi with polymorphism
  8. The CCS calculus concurrency
  9. Some Haskell exercises
  10. Denotational semantics

Solutions are to be submitted to svn:

https://svn.uni-koblenz.de/softlang/main/courses/plt1213/students append name of group

Examination rules

  • Admission rules for final:
    • Assemble teams of 3 members.
    • Register online by 27 October 2012.
    • Each team submits 7 acceptable solutions of 10 assignments by the deadline.
    • Each team presents 3 invited solutions.
    • Exam admission is inherited from winter semesters 2011/12 and 2010/11.

Rationale: The assignments are designed to help understand all material covered in the lecture. Also, the assignments support effective preparation for the exam. Upcoming assignments are discussed briefly in the lab. Completed assignments are discussed in detail in the lab on the grounds of presentations by invited and additional teams. All submitted solutions are briefly reviewed by the lab assistant to determine whether the solutions are acceptable. The criteria for accepting a solution are discussed and calibrated in the lab, when the assignment is given out. (Essentially, simple assignments must be solved more or less correctly and completely whereas more complex assignments may already be acceptable if there is an insightful approach to the problem that is perhaps not carried through correctly.) The lab assistant also reviews submitted solutions to prepare the discussion in the lab by inviting teams for presentation. If time permits during the lab, solutions in addition to the invited ones can be presented, but such presentations do not count in the sense of the above-mentioned rule that each team presents 3 invited solutions. The use of invitations helps assembling a good set of presentations for the lab and distributing assignments of different complexity fairly over the different teams.