Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 CSI 4125
CSI 4125 Theory of Programming Languages
Winter 2008
Excerpts from the textbook's Foreword and Preface help set the
goals for the course
"This book brings you face-to-face with the most fundamental
idea in computer programming:
The interpreter for a computer language is just another program.
It sounds obvious, doesn't it? But the implications are
profound. [...] If you are a programmer, mastering the idea of an
interpreter is a source of great power. It provokes a real shift
in mindset, a basic change in the way you think about programming."
"The goal of this book is an analytic study of programming
languages. Our goal is to provide a deep, working understanding of
the essential concepts of programming languages."
Most of these essentials relate to the semantics, or meaning, of
program elements. Such meanings reflect how program elements are
interpreted as the program executes. Programs called interpreters
provide the most direct, executable expression of program
semantics. [...] We therefore choose interpreters as our primary
vehicle for expressing the semantics of programming language
elements."
Evaluation
Assignments, 30%
Midterm Exam, 20%
Final Exam, 50%
There will be approximately 5 assignments.
The midterm exam will take place during class time sometime in
February.
To pass the course, you must obtain at least 50% on the
final.
Assignments
A penalty of 10% will be given for an assignment that
is up to 24 hours late. After that, each additional 24 hours will
result in an additional 5% penalty. No assignments will be
accepted after the solutions have been posted.
Each student is required to do each assignment individually.
See the policy on plagiarism.
Sample solutions for Assignments 1, 2, 3, and 4 are available
on Virtual Campus.
Assignment 5, due April 11, no
assignments will be accepted after 12:00 noon on April 14
Note: Assignment 3 and/or Assignment 4 can be handed in up
until April 11 at 12:00 noon with a penalty of 15%. If you hand
in a new version, the mark for the new version will replace your
mark for the old version. For any assignment you redo, you must
hand in a complete new version, not just answers to the
questions you didn't do originally. The new version will be
marked without looking at the old version.
Midterm
The midterm will be Tuesday, February 26 during class.
Closed book.
Final Exam
The final exam will be Friday, April 18, 14:00-17:00, Fauteux
Hall Room 316.
Closed book.
Covers all the material from the course.
Chapters 1, 2
Chapter 3 (except first representation of recursive
environments in Section 3.6, Fig. 3.9)
Chapter 5
Chapter 7 (Sections 7.1, 7.2, 7.4, 7.6)
Photocopied Notes: Chapters 2, 5, and 14 (up to page 307)
Possible questions include (but are not limited to):
short answers about general material and/or code fragments
writing code fragments
tracing code (for example, by building data structures or
giving sequence of procedure calls)
"exercises" involving operational semantics rules,
denotational semantics functions, parallel and
nondeterministic programming languages
multiple choice and/or true/false questions
Programming
The language of implementation for the course will be Scheme.
It is highly recommended that you use DrScheme. You may
either download it, or use
the version that is available under Microsoft Windows in the SITE
lab. To run the book's code you need to set the language to
"Essentials of Programming Languages (2nd ed.)".
If you want to use another Scheme, you will need the
appropriate Scheme language extensions to run the book's code.
See the textbook web
site for information.