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.
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.
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:
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.
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
.
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.
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.