Prerequisites: CSCE 245 and either CSCE 330 or CSCE 350
Meeting time and venue: MWF 1115-1205 in SWGN 2A21
Instructor: Marco Valtorta
Office: Swaeringen 3A55, 777-4641
E-mail:
mgv@cse.sc.edu
Office Hours:
MWF, 1400-1500 or by previous appointment.
Teaching Assistant and Grader: TBD
Grading and Program Submission Policy
Reference materials:
Questionnaires
Beginning of course questionnaire, with a summary of
some answers
Notes
Introductory lectures
Notes on Denotational Semantics
More Notes on Denotational Semantics
Lecture notes for Chapter 1
Lecture notes for Chapter 2
Lecture notes for Chapter 3
Figures for Chapter 3 of
Robert Sebesta's Concepts of Programming Languages, Eighth Edition,
(local copy), on syntax and semantics
(Link to publisher's web
site)
Slides for the above
(local copy)
Lecture notes for Chapter 4
Lecture notes for Lexical Analysis
(part of Chapter 4 and handout)
Lecture notes for Chapter 5
Notes on Aspect-Oriented Programming by
Mr. Jarrell W. Waggoner (pdf)
Lecture notes for Chapter 6
Lecture notes for Chapter 7
Lecture notes for Chapter 8
Notes on Paul Graham's reconstruction of
John McCarthy's 1960 Lisp interpreter
Lecture notes for Chapter 9
Quizzes (In-Class Exercises)
Quiz 1 of 08-01-18
(with answer)
Quiz 2 of 08-01-18 (same date as Quiz 1)
(with answer)
Quiz 3 of 08-01-25
(with answer)
Quiz 4 of 08-02-08
(with answer)
Quiz 5 of 08-03-31
(with answer)
Quiz 6 of 08-04-09
(with answer)
Quiz 7 of 08-04-09
(with answer)
Quiz 8 of 08-04-18
(with answer)
Quiz 9 of 08-04-23
(with answer)
Quiz 10 of 08-04-28
(with answer)
Tests
Old Test 1 with Correction Guide (in postscript
format)
Old Test 1 with Correction Guide (in pdf
format)
Test 2 from Fall 2001 (in postscript
format)
Test 2 from Fall 2001 (in pdf
format)
Topics for the Final
Final exam from Fall 2001 (in pdf
format)
Final exam from Spring 2002 (in pdf
format), with partial correction guide
Homework and Projects
See lecture log for a more complete list, which includes assignments for
which no handout was given.
Points per assignment.
Programming Assignment 1: assigned
February 22 and due February 27.
Programming Assignment 2: assigned
February 22 and due February 29.
Term Project: assigned
April 14 and due April 28.
Some known Triangle compiler bugs and related
problems in compilation of the compiler code.
Grading policy and test cases for the term
project.
Programs A brief guide to the Triangle language processor.
The USC Blackboard
has a site for this course.
Some useful links:
An article on the importance of learning multiple programming languages
(including functional ones)
John Backus's Obituary from the New York Times,
2007-03-20.
Paper by Paul Graham on John McCarthy's original LISP interpreter.
Paper by Paul Graham on John McCarthy's original LISP interpreter
(pdf, local copy, one page per sheet, version of January 18, 2002).
Local copy of the paper on the original LISP interpreter:
postscript, two pages per sheet, version of May 1, 2002.
Local copy of the paper on the original LISP interpreter:
pdf, two pages per sheet, version of May 1, 2002.
How to use your cse email account.
A site on
decompilers. (It includes text of a dissertation. This pointer is provided
to follow up on a question by a student in an earlier edition of the course.)
Norman Matloff's Introduction to the vi Text editor
Norman Matloff's Unix Tutorial Center