CS 321 Programming Languages
Fall 2017
Lectures
Important Dates (tentative):
- Midterm Exam 1: 26.10.2017
- Midterm Exam 2: 30.11.2017
- Final Exam: 11.01.2018 @ 9:00, in room 237.
- Withdrawal week: 13-17.11.2017
25.09.2017 Monday
28.09.2017 Thursday
02.10.2017 Monday
- OCaml, part 02 cont’d.
- OCaml, part 03 - Lists (up to slide #19)
[2up]
[4up]
05.10.2017 Thursday
- NO LECTURE. The instructor is attending a conference.
09.10.2017 Monday
- OCaml, part 03 cont’d.
- Watch videos:
12.10.2017 Thursday
16.10.2017 Monday
19.10.2017 Thursday
- User-defined data types (cont’d)
- Polymorphic tree implementation in Java [Code]
- An interpreter for the ArithLang language
(constant ints, names, arithmetic operations).
- OCaml code
- Read Chapter 1 and Chapter 2 (up to Section 2.3.2) in PLC.
23.10.2017 Monday
- Extended the ArithLang with Let-in.
26.10.2017 Thursday
30.10.2017 Monday
02.11.2017 Thursday
06.11.2017 Monday
09.11.2017 Thursday
- Parsing cont’d.
- Connecting the pieces to obtain a Deve REPL.
- At this point, we have an end-to-end interpreter that takes
code as a string and reduces the code to a value.
We will call this Deve 1.0.
13.11.2017 Monday
- Extending the Deve language with new features.
See the sample questions on interpretation.
- At this point, we have a version of the language
that handles booleans gracefully,
has relational operators,
handles pairs, etc.
We will call this Deve 2.0.
16.11.2017 Thursday
20.11.2017 Monday
23.11.2017 Thursday
- At this point, we have reached
Deve 4.0.
27.11.2017 Monday
30.11.2017 Thursday
04.12.2017 Monday
07.12.2017 Thursday
- Lambda calculus and Church numeral encodings
[2up]
[4up]
[Code]
- Read: PLC Section 5.6
11.12.2017 Monday
- Lambda calculus (cont’d with recursion)
- Imperative programming
[Slides]
[Code (experiment?.c)]
- Read: The C Programming Language by K&R, Chapter 5, Sections 5.1-5.4.
(Available on LMS)
14.12.2017 Thursday
- Imperative programming cont’d.
18.12.2017 Monday
- Imperative programming cont’d.
See
swap.cpp
and experiment5.cpp
.
- Read: PLC Sections 7.1-7.5.
- Sample problems
21.12.2017 Thursday
25.12.2017 Monday
28.12.2017 Thursday