CSC 580 - Theory of
Programming Languages, Spring, 2009 - Old Main 140, Monday 6-8:50 PM.
Office Hours: M 5-6, Tu 10-11, W 10-12, Th 2-3, and by
day handout with language links. Official syllabus.
Links to language websites.
The Python website is at http://www.python.org/.
Documentation is at http://docs.python.org/.
There is a good on-line tutorial and reference
called Building Skills in Python.
We will be using a 2.4, 2.5 or 2.6 version of
Python, not 3.x.
Python on bill is at /opt/csw/bin/python.
Week 2 slides
on Python Data Types and Control Abstraction (PR Chapters 7 and 8).
Week 3 slides on Data
Abstraction and Object Orientation in Python (PR Chapter 9).
Week 4 slides on intermediate
virtual machines and threaded intermediate code.
Week 9 slides on ML and
Haskell functional languages.
Example code is at
There are also some examples at /export/home/faculty/parson/ProcLang.
Pragmatics web site.
Language Pragmatics, Second Edition slides
Assignment 1 on Python
eval(), apply(), explicit type coercion and a sorting function, is due
at 11:59 PM on February 2, 2009 for CSC 580.
Assignment 2 on Implementing an
indirect threaded virtual machine in Python is due at 11:59 PM on
February 23. Here is the documentation on the
Forth-like STEP VM
and a paper on implementing
Forth using g++ computed gotos
and a slides
on Sun's HotSpot Just-in-time (JIT) compilation technology.
Assignment 3 on concurrent, purely
functional programming in Python is due
at 11:59 PM on March 26. Students are also working on individual
projects and preparing for 30 minute presentations during this time.
Here are the guidelines for the Assignment
5 programming exercises and 30 minute talks.
Documentation and other external links
has the gmake manual.
An introduction to Python by its
A Python tutorial by its creator.
site for Python, use latest stable 2.6.n version, not 3.x!
Eclipse IDE/Debugger for Java.
Use the "Eclipse IDE for Java
Developers," then update it as follows.
Download and unzip Eclipse.
Go into the Eclipse directory and run
the eclipse executable file.
Once Eclipse is running, click Help
-> Software Updates -> Available Software -> Add site.
http://pydev.sourceforge.net/updates/ as a site, click the boxes to add
Eclipse should require a restart.
Window -> Preferences -> Pydev
-> Debug -> Interpreter Python for interpreter.
"New" to add Python 2.4, 2.5 or 2.6
We will go over Pydev Projects, source
editing and debugging in class.