CS 386L: Programming Languages Schedule, Spring 2014

Note: Schedule subject to change!

 

Date

Topic

Reading

Assigned

Due

1

Jan 13

Smallstep and bigstep semantics

Pierce 1, 2, 3



2

Jan 15

Inductive proofs, Untyped Lambda Calculus

Pierce 3

HW1: Pierce 3.5.16



Jan 20

MLK Holiday (no class)


 

 

3

Jan 22

Introduction to Haskell

Haskell Tutorial
Haskell Compiler
Chapter 5 of Theory in Programming Practice



4

Jan 27

Church encodings, Fixed points

Pierce 5

HW2: Pierce 5.2.4, 5.2.8, 5.3.8

AND: Write a factorial function that does not use recursion.
(use the same techniques we used for +, *, and Pred)

HW1

5

Jan 29

Type systems

Pierce 8



6

Feb 03

Ben Zorn (Microsoft) Gates 6.302

"Synthesis and security in a world of devices and services"




7

Feb 05

Big-step semantics and closures


HW3: Pierce 9.3.2, 11.5.2, 11.9.1

HW2

8

Feb 10

Simply-Typed Lambda-calculus

Pierce 9



9

Feb 12

Implementing Semantics in Haskell

Pierce 4, 6, 7

HW4: Implement small-step (7) and big-step (7.3.1) in Haskell
(using named expressions, not nameless ones) See Lambda Parser and Lambda AST


10

Feb 17

Tuples, Records, Sums

Pierce 11


HW3

11

Feb 19

References and mutable state, Exceptions

Pierce 13, 14



12

Feb 24

Type Classes

* How to make ad-hoc polymorphism less ad hoc

HW5: Complete proof of preservation for Simply-Typed Lambda-Calculus with References (13.5.3) [Note: there is some background info in and around theorem 9.3.9]. Include proofs of lemmas 13.5.4, 13.5.5 and 13.5.6.


13

Feb 26

Monads

* Monads for functional programming
* All About Monads


HW4

14

Mar 03

Type Reconstructions

Pierce 22



15

Mar 05

TBD



HW5


Mar 10

Spring break





Mar 12

Spring break




16

Mar 17

Universal Types

Pierce 23



17

Mar 19

Midterm




18

Mar 24

Existentials

Pierce 24

HW 6: Type Inference


19

Mar 26

No Class




20

Mar 31

Imperative Objects, FJ

Pierce 18, 19



21

Apr 02

ADT versus OOP

On Understanding Data Abstraction, Revisited (paper)
(Slides presented in Orlando)



22

Apr 07

Partial Evaluation

* Haskell code
* Lecture notes
* An introduction to partial evaluation
* Partial Evaluation of Computation Process—An Approach to a Compiler-Compiler Yoshihiko Futamura



23

Apr 09

TBD



HW 6

24

Apr 14

Programming for Everyone: From Solvers to Solver-Aided Languages and Beyond.
ECE seminar Dr. Emina Torlak

10:00 AM
POB 2.302

Send an email to wcook@cs.utexas.edu with a comment about something you learned from the talk.


25

Apr 16

Rewriting Systems

K Framework
An Executable Formal Semantics of C with Applications 



26

Apr 21

Algebra and Coalgebra

A Tutorial on (Co) Algebras and (Co) Induction



27

Apr 23

Algorithm Synthesis

KIDS: A Semi-Automatic Program Development System



28

Apr 28





29

Apr 30