CSC 382 Organization of Programming Languages
News
This file was last modified November 27, 2006.
Useful links
Fall 2006 Syllabus, as distributed)
Topic checklist (from syllabus)
Project ideas (from syllabus, but modified)
Dr. Chase's home page (under construction)
Dr. Chase’s office hours on my office door for appointments in any open slot.
Grading grid what do letter grades mean at Messiah College?
Academic integrity You must understand Messiah College's policy on academic integrity (plagiarism and other things) in order properly to be enrolled in this course. See pp. 38–40.
Course Outline
Day Topics (tentative) and due dates (not tentative)
August
1 W 30 Programming language paradigms
September
2 F 1 Criteria for judging a good programming language (Read Chapter 1)
3 M 4 History of programming languages (Read Chapter 2.1–2.8)
4 W 6 Compiler theory, general (Read Chapter 2.9–2.19; Chapter 4 to p. 182)
5 F 8 Syntax (Read Chapter 2.20; think about project ideas)
6 M 11 BNF for CFG (Read Chapter 3.1–3.3); grep demo
7 W 13 Chomsky Hierarchy overview; Project topic area and partner selection if any are due
8 F 15 Chomsky Hierarchy (cont.)
9 M 18 Lab 1: Turing machines
10 W 20 Static semantics: Attribute grammars (Read §3.4); Project abstract and three references due
11 F 22 Operational semantics (Read §3.5 to p. 150)
12 M 25 Axiomatic semantics (Read §3.5 to p. 163); Lab 1 due
13 W 27 Loop invariants, weakest preconditions
14 F 29 Exam 1, closed book
October
15 M 2 Denotational semantics, overview, numeric examples (Read remainder of Chap. 3)
16 W 4 Denotational semantics, boolean examples (Read internet assignment by Patrick Winston on C++)
17 F 6 Denotational semantics, control structures (Read §§12.5–12.6)
18 M 9 Lab 2: C++
19 W 11 Lab 2: continued (Read §§12.1–12.4 carefully enough to answer these questions: Are subclasses subtypes? Is multiple inheritance good? How does Smalltalk differ from Java or C++?)
October 12–15 Mid-Fall Recess
20 M 16 Recursive descent parsing (Read Chap. 4, pp. 183–192)
21 W 18 Bottom up parsing [omitted] (Read Chap. 4, pp. 193–200)
22 F 20 [Lecture topic to be decided]; Lab 2 due
23 M 23 Binding times (Read Chap. 5 to p. 222)
24 W 25 Types and scoping (Read §§5.5–5.10 and eventually §7.4 but not now)
25 F 27 Begin data types in Chapter 6, to pick up after lab
26 M 30 Exam 2, closed book. Exam review is included in previous lecture notes.
November
27 W 1 Lab 3: Pure Lisp and Pure Prolog (Read §§15.1–15.5 for Lisp, §§16.4–16.6)
[Note current final lab 3 combines labs 5 & 6 mentioned in original syllabus, so due date is later than lab 5 originally, but earlier than lab 6 originally]
28 F 3 More on pure lisp; first-class functions
29 M 6 Data types concluded (Chapter 6)
30 W 8 Implementing control structures (Read selections to be assigned from Chap. 8)
31 F 10 Parameter passing: by value, by result, by value-result, by reference (Read §9.5 to top p. 394)
32 M 13 Parameter passing: by name; subprograms as parameters (Read p. 394 & §9.6)
33 W 15 Implementation of parameter passing (Read pp. 394–408)
34 F 17 Implementing strings, enumerations, subranges (Read §§6.1–6.4); Lab 3 on Prolog due
35 M 20 Implementing arrays, records, pointers, (Read §§6.5–6.9)
November 22–26 Thanksgiving Recess
36 M 27 Demos are available on-line for today’s lecture:
The Java Virtual Machine as an object-oriented stact architecture
FloatTest.java and
javap -c FloatTest > FloatTest.decompiled
Contrast of Java namespaces with C++ namespaces.
37 W 29 Dr. Joseph Liauw, “Concurrency in programming languages”
Read about exceptions, coroutines, and guarded statements (§8.5 and selections of Chap. 13 to be assigned)
December
38 F 1 [Catch-up]
39 M 4 David Owen, “Model checking for errors in finite-state
machine models of software systems”
40 W 6 Project reports
41 F 8 Project reports; Review for final exam; Projects due
Wednesday, December 13, 8:00–10:00 p.m.: Exam 3, two hours, closed book.