CS 345H: Programming Languages Schedule, Spring 2011



Date

Topic

Reading

Assigned

Due

1

Th

25-Aug

Introduction to course




2

Tu

30-Aug

Scheme Introduction

Yet Another Scheme tutorial
Teach yourself Scheme in fixnum days

Suggested exercises
(not to be turned in)


3

Th

1-Sep

Syntax and Interpretation

1, 2, 3

Assignment #1: Substitution


4

Tu

6-Sep

Functions

4



5

Th

8-Sep

Lambda-calculus






6

Tu

13-Sep

Deferred Substitution

5



7

Th

15-Sep

First-class Functions

6

Assignment #2: Functions

#1

8

Tu

20-Sep

Closures

9



9

Th

22-Sep

Recursion

10



10

Tu

27-Sep

Representation

11, 22
Encoding data as procedures examples



11

Th

29-Sep

Types

24, 25


#2

12

Tu

4-Oct

Type Inference

29, 30



13

Th

6-Oct

Unification

31
unification example

Assignment #3: Types


14

Tu

11-Oct

Types in Haskell

27, 28
Haskell Tutorial
Haskell Compiler



15

Th

13-Oct

Completing Types




16

Tu

18-Oct

Parsing (not included on midterm)




17

Th

20-Oct

Review




18

Tu

25-Oct

Midterm




19

Th

27-Oct

Parsing (not included on midterm)

Slides



20

Tu

1-Nov

Parsing (not included on midterm)




21

Th

3-Nov

Objects

Object Sample code

Assignment #4: Parsing and Object-oriented Interpreter

#3

22

Tu

8-Nov





23

Th

10-Nov

On Understanding Data Abstraction

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



24

Tu

15-Nov

Objects continued




25

Th

17-Nov





26

Tu

22-Nov

Distributed Objects (RMI/CORBA) and batches

Remote Batch Invocation for Compositional Object Services”
(Slides from presentation)


#4


Th

24-Nov

THANKSGIVING




27

Tu

29-Nov

Objects and Inheritance


Optional BONUS Assignment #5: simple objects


28

Th

1-Dec

Partial Evaluation

Examples of Partial Evaluation

“An Introduction to Partial Evaluation"

Yoshihiko Futamura (1971). "Partial Evaluation of Computation Process – An Approach to a Compiler-Compiler". Systems, Computers, Controls 2 (5): 45–50.





6-Dec




Optional #5 due