Foundations of Programming Languages
Spring 2017, University of Science and Technology of China
Lecture Notes
We borrow the courseware of
CS242 at Stanford
. Below are local copies of lecture notes, given for your convenience.
[05/25]
: TA review session.
[05/22]
:
Memory models
(also see
this
).
[05/18]
:
Hoare Logic
.
[05/15]
: An Overview of Coq: continued.
[05/10]
:
An Overview of Coq
(Code:
lang.v
and
Imp.v
; You'll also need the file
SfLib.v
. The whole package is available at
http://www.cis.upenn.edu/~bcpierce/sf/
). Here is some guide on
installing and configuring Emancs and Proof General on Windows
.
[05/08]
:
Haskell Parallel Programming
(
reading
material).
[05/03]
:
Program Synthesis
: guest lecture by Jiayi Wei.
[05/01]
: Holiday.
[04/26]
: STM in Haskell, continued.
[04/24]
:
Software Transactional Memory in Haskell
.
[04/19]
:
Concurrency-III: List algorithms
.
[04/17]
:
Concurrency-II: Linearizability
.
[04/12]
:
Concurrency: overview
and
notes
from Herlihy and Shavit.
[04/10]
:
Templates and Generics
. Reading:
Meta-Programming in C++
,
Java Generics
, and
F-Bounded Polymorphism
. Also an
article
about the sort library implemented in C++.
[04/05]
:
Java Implementation
.
[04/01]
:
Subtyping
.
[03/29]
:
C++ and Java
. Reading: same as previous class.
[03/27]
:
Object-Oriented Languages
. Reading: textbook chapters, see slides.
[03/22]
:
Computability and Modularity
. Reading: Chapters 2 and 9.
[03/20]
:
Memory management and garbage collection
. Reading:
Java Garbage Collection handbook
and
Region-based memory management
.
[03/15]
:
Exceptions and Continuations; Garbage collection
. Reading: textbook, Chapter 8, Sections 8.1 - 8.3, Chapter 3, Sections 3.3, 3.4.2, 3.4.3, 3.4.5, 3.4.8. Also Sec. 7.3 of
Exception Handling in the I/O Monad
.
[03/13]
:
IO Monad
. Reading: Sec. 1-2 of
Tackling the Awkward Squad
. and
Chapter 7 of Real-World Haskell.
Here is the
code
.
[03/08]
:
Type Classes
(continued).
[03/06]
:
Type Classes
. Reading:
revised Chapter 7
.
[03/01]
:
Types
. Reading:
revised Chapter 6
.
[02/27]
:
Scopes
. Read Chapter 7 of textbook.
[02/22]
:
Fundations
(continued): operational semantics.
[02/20]
:
Fundations
, and more on Lambda calculus (
notes
). Read Chapter 4 (4.1, 4.2 and 4.4) of textbook, Chapter 1-3 of the
notes on lambda calculus
, and the
alligator illustration
of lambda calculus.
[02/15]
:
Haskell
(Reading:
textbook chapter
and
code
)
[02/13]
:
Course overview
, and
Haskell
back