CSCE 330: Programming Language Structures

MWF 1010-1100 SWGN 2A21

Prerequisites: CSCE 240 and MATH 374

Instructor: Marco Valtorta
Office: Swaeringen 3A55, 777-4641
E-mail: mgv@cse.sc.edu
Office Hours: MWF 1100-1200

Any student with a documented disability should contact the Office of Student Disability Services at (803)777-6142 to make arrangements for proper accommodations.

Syllabus

Grading Policy

Reference materials:

  • Allen B. Tucker and Robert E. Noonan. Programming Languages: Principles and Paradigms, second edition, McGraw-Hill, 2007 (required text, referred to as [T]). Supplementary materials from the authors, including an errata list, are available.
  • Graham Hutton. Programming in Haskell. Cambridge University Press, 2007 (required text, referred to as [U]). Supplementary materials from the author, including an errata list, are available.
  • The current departmental syllabus, an old departmental syllabus (for historical information) and an even older departmental syllabus (for historical information) list the following goals for the course: Specific objectives of this course are:

    Lecture Log

    Lecture Notes

    Homework, Tests, and Programs

  • Grading policy per assignment
  • Homework 1 on preliminaries and history (in pdf format), assigned 2009-08-21, due 2009-08-28
  • Homework 2 on preliminaries and history (in pdf format), assigned 2009-08-24, due 2009-08-28
  • Homework 3 on syntax, assigned 2009-08-28, due 2009-09-02: Exercises 2.1, 2.2, 2.3 (the grammar in figure 2.7 is EBNF, not BNF), 2.4 (same comment as for 2.3), 2.5(a), 2.6(a), 2.7(a), 2.8(a), 2.9(a), 2.10(a), 2.11
  • Homework 4 on syntax, assigned 2009-08-28, due 2009-09-09 (Wednesday): Exercises 2.12, 2.13, 2.14, 2.16, 2.18, 2.19, 2.20 (for the parse tree of 2.5(a) only)
  • Homework 5 on axiomatic semantics, assigned 2009-10-16, due 2009-10-21 (Wednesday): Exercise 18.2 [T]. Please note that there is an error in the program fragment at the beginning of the exercise, and replace "n - - 1" with "n - 1".
  • Program 1 on Simplesem (operational semantics, in pdf format), assigned 2009-09-26, due 2009-09-04; see this document for information on how to run Simplesem
  • Program 2 on Backus's fp (in pdf format), assigned 2009-11-06, due 2009-09-11
  • Program 3 on Haskell: (1) Install either hugs or GHC on your computer; (2) do all exercises at the end of Ch.2 [H], assigned 2009-11-13, due 2009-11-20
  • Program 4 on Haskell: Do exercises 1,2,4,5,6, Ch.4 [H], assigned 2009-11-18, due 2009-11-30.
  • Program 5 on Haskell: Do exercises 4,5 Ch.6 [H], assigned 2009-11-23, due 2009-12-04.
  • Program 6 on Prolog (in pdf format), assigned 2009-11-23, due 2009-12-04
  • Old Test 1 (in pdf format, with answer)
  • Old Test 2 (in pdf format, with answer)
  • Old Test 3 (in pdf format, no answers)
  • Old Test 4 (in pdf format, no asnwers)

    Haskell Information

    Quizzes (In-Class Exercises)
    Quiz 1 of 09-08-28 (in pdf format, with answer)
    Quiz 2 of 09-09-02 (in pdf format, with answer)
    Attendance at the guest lecture of 2009-09-14 counts as a successful quiz (Quiz 3).
    Quiz 4 of 09-09-18 (in pdf format, with answer)
    Attendance at the video presentation of 2009-10-7 counts as a successful quiz (Quiz 5).
    Quiz 6 of 09-10-14 (in pdf format, with answer)
    Quiz 7 of 09-10-16 (in pdf format, with answer)
    Quiz 8 of 09-10-26 (in pdf format, with answer)
    Quiz 9 of 09-11-02 (in pdf format, with answer)
    Quiz 10 of 09-11-04 (in pdf format, with answer)
    Quiz 11 of 09-11-09 (in pdf format, with answer)

    Some useful links:
    In this class, we write dates according to ISO Standard 8601.
    Brian Hayes. "The Semicolon Wars." _American Scientist_, July-August 2006, pp.299-303. Local copy, pdf.
    The Ariane 5 launch disaster.
    Local copy of paper for HW2: Rajlich, V., N. Wilde, M. Buckellew. and H. Page. ``Software Cultures and Evolution.'' _Computer_, 34, 9 (September 2001), pp.24--28.
    C.A.R. Hoare. "Retrospective: An Axiomatic Basis for Computer Programming." _Communications of the ACM_, 52, 10 (October 2009), pp.30-32. C.A.R. Hoare. "An Axiomatic Basis for Computer Programming. _Communications of the ACM_, 12, 10 (October 1969), 576-580.
    The Simplesem interpreter
    : unzip, and follow the instructions in readme.txt.
    Carter Bays's FP interpreter