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 2006
Professor
Dr. Amy Felty
SITE 5-068
afelty@site.uottawa.ca
Required Textbook and Class Notes
Essentials of Programming Languages, Daniel
P. Friedman, Mitchell Wand, and Christopher T. Haynes, MIT Press,
2nd edition, 2001.
Photocopies of supplementary class notes will be available.
Goals
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.
To pass the course, you must obtain at least 50% on the
final.
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. (Assignments will be marked using this version.) To run the
book's code you need to change the language. (From the "Language"
menu, select "Choose Language", and choose "Essentials of
Programming Languages (2nd ed.)". Then click on "Run" or
"Execute".)
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.