CSE526 Home Page (Spring 2017)

Welcome to the CSE526 (Principles of Programming Languages) home page for Spring 2017. This page will be the main source of course information throughout the semester.


Important Course News and Messages

Please check this page regularly for new messages. The newest messages will always appear first.

These are the final homework and exam statistics. The homework submission rate was much less that I would have liked. To compute the statistics below I have assigned a score of zero to homeworks that were not submitted.

HW1 (whole class ) Valid 8; Mean 8.75; Std. Dev. 3.69 (8 submitted, max. poss. score 11) HW2 (whole class ) Valid 8; Mean 13.38; Std. Dev. 8.99 (6 submitted, max. poss. score 21) HW3 (whole class ) Valid 8; Mean 7.50; Std. Dev. 7.01 (5 submitted, max. poss. score 17) HW4 (whole class ) Valid 7; Mean 7.14; Std. Dev. 9.30 (3 submitted, max. poss. score 22) HW5 (whole class ) Valid 8; Mean 10.12; Std. Dev. 10.44 (5 submitted, max. poss. score 32) MIDTERM (whole class ) Valid 8; Mean 37.62; Std. Dev. 11.94 (8 submitted, max. poss. score 70) FINAL (whole class ) Valid 8; Mean 30.62; Std. Dev. 16.13 (8 submitted, max. poss. score 70)

Midterm Exam Grades
Grades for the midterm exam are now available.

The maximum possible grade on the exam was 70 points. Nobody made a serious attempt at Problem 7, so the defacto maximum possible grade was 60 points. The maximum score actually achieved was 49 points. The minimum score actually achieved was 23 points. The statistics are as follows:

MIDTERM (section CSE526) Valid 8; Mean 37.62; Std. Dev. 11.94 In the above, "Valid" means the number of nonzero scores in the applicable category.

Midterm Problem 7:

For a solution to this problem, see here. The diagram shows the state of the PPL machine just before the closure corresponding to F (fix F) is applied to parameter False. The closure for F (fix F) contains in its environment a reference to a closure corresponding fix F. That closure is what is used for recursive calls to "f". When invoked, the closure for fix F uses the references to closures F and fix F in its environment to recreate the closure F (fix F) and then invoke it. The ability of fix F to reproduce and invoke the closure F (fix F) is the key mechanism in the implementation of recursion.

Lambda Calculus Evaluator:

I have updated the git repository with code for the extended lambda calculus language that I discussed on March 2, plus the eval/apply interpreter, and also a compiler that I will hopefully be discussing on March 7. If you do "git fetch --all origin" you should hopefully receive branch S2017_LAMBDA+evaluator+compiler, which is commit ID 3f93b3959c7ce41aa54f13e7bd99de9639fca4eb.

Midterm exam date:

As I mentioned in class, the schedule has slipped a little bit and I think it best to move the midterm date back from the originally scheduled March 9 to March 23. I have updated the schedule of topics to reflect this.

HW1 due date:

I had anticipated covering the simply typed lambda calculus before the homework was due, but was not able to because of the snow day. I don't want to start extending overall due dates, but if you like you can leave out that part of HW1 and submit it with HW2.


Eugene W. Stark