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.