CS 333: Programming Languages

Course Information for Fall 2009

Time: MWF 11-11:50am
Place: Roberts 221

Instructor Information

Prof. Bruce A. Maxwell
Office: Mudd 403
Phone: 859-5854

Office hours: TBA, or just stop by

Course Description

A survey of programming languages and paradigms. We will examine the underlying theory of programming languages and compare and contrast the characteristics of different language families. Each student will learn one new programming language in depth as well as gain familiarity with several others of differing types.

Textbooks

Useful Links

Languages

Programming Language Tools

Source Code Examples

  • polymorph.c: example of void * and function pointer.
  • ppolymorph.cpp: example of using a pure virtual class as an interface.
  • Vec3.java: example of an interface in Java.
  • polytemp.cpp: example of a template in C++.
  • semantic.c: Semantics of the pre- and post- increment operator.
  • trycatch.cpp: Try/catch exception handling in C++.
  • trycatch2.cpp: Another example in C++.
  • trycatch.java: Try/catch exception handling in Java.
  • trycatch.py: Try/catch exception handling in Python.
  • signal.c: Example of signal handling in C.
  • signal-inf.c: Another example of signal handling in C.
  • sumthread.c: Example of using threads to sum an array. Includes code for timing the operation. To compile, use gcc -o sumthread sumthread.c -lpthread
  • mutex-simple.c: Example of a mutex lock to control access to a counter variable. Compile with the pthread library, as above.
  • prodcons.c: Example of using a mutex lock to implement producer and consumer threads. Compile with the pthread library, as above.