University of Miami,
Department of Computer Science
CSC519 - Programming Languages
There is a bewildering array of programming languages in current use,
and an even larger collection of dead or nearly dead languages. In
this course we will discuss what they have in common, what sets them
appart, and how they work.
Prerequisites
CSC517. Students who do not meet the prerequisites must tell the
instructor.
Office Hours and Lab time
The course will be taught by Dr. Stephan
Schulz. My office hours are Monday, Wednesday, Friday, 13:00 to
14:30, or by email appointment.
To remotely log onto the Lab machines, use an ssh client (ssh under
UNIX/Linux, Putty should work under Windows) and connect to
lee.cs.miami.edu (students.cs.miami.edu does not work
anymore). To change your password, use
yppasswd. Please also check the password policy page.
Course Material Online
Assignments and lecture notes (updated Fri Dec 6 12:09:33 EST
2002 -- final update (modulo typos)) are on the web. Lecture notes
should be available on the evening before any given
class.
Other material (Note: Some of this temporarily unavailable. Email me, if you neef a copy):
- The source handler for PL
(20/9/2002). Download it, then run gtar -xzvf
PL_STEP1.tgz to unpack it. Read PL_STEP1/README for more
information. You might need to run make depend before
running plain make. To run the test program, type
./sh_test filename (for some existing file name).
- The PL
Scanner. Again, unpack, cd into the directory, then run
make depend;make.
- The PL
Parser. To use, follow the scanner instructions above.
- Here are some PL programs for testing your compiler:
- Thanks to Andrew for providing us with a largish PL program that actually does
something interesting (computing square roots). I've only
fiddled the syntax (Andrews compiler is more generous than
mine). Use it as a test case for your compiler! As far as I can
tell, it works fine for actual square numbers, but does nothing
useful for non-squares.
- Here is a very short PL program for testing: double.plp. It accepts a single
argument and doubles it.
- My take at a square root
program computes the square root of any number (rounded
down to the next integer for non-squares). If it looks
suspiciously regular, that's because I used the C preprocessor
to generate it from this source.
Classes
Monday, Wednesday and Friday, 3:00 to 3:50 p.m., MM205
Assessment
- 5% Initial essay
- 25% Programming assignments
- 10% Midterm exam
- 10% Web page assignment
- 50% Final exam
To recieve a particular grade, you may have to qualify for it in each
individual category.
Some topics
- An overview over programming languages
- Language classification
- Language implementation
- Programming paradigms
- Imperativ/procedural
- Object-oriented
- Functional
- Declarative/Logic
Suggested literature
Books (Dead Trees)
The course uses Programming Languages: Concepts and Constructs,
2nd Ed. by Ravi Sethi. You are strongly encouraged to have a copy
of the book at hand.
Online Resources
Note: Do not post any homework questions to any newsgroups!
The regulars don't like it. I don't like it. If you have any
specialized questions that you cannot answer after your own research,
asking either me or a newsgroup is fine.
- You can try any language-specific newsgroup. We will at least
discuss C, Scheme and Prolog, and probably either Python or C++ for an
example of an object-oriented language.
- Try Google if you
need to find something specific.