CS603 Organization of Programming Languages

University of Alabama
Department of Computer Science
Spring 2003

Class: Mo We 5:00 - 3:15PM, 119 East Engineering
Instructor: Joel Jones, 554 Houser, jones@cs.ua.edu
  Office hours: Tuesday and Thursday 3PM - 4:30PM and by appointment
Text: Norman Ramsey and Sam Kamin (with Russ Cox)
  Programming Languages: An Interpreter-Based Approach,
  Draft manuscript, Spring 2002. Required
Exams: Machine Problems (MP) 35%
  Midterm Thursday March 10, 2003, in class, 30%:
  Final, 35%: 5 May 2003, 11:30 AM to 5:00 PM
Web Page: http://cs.ua.edu/cs603
Call Number: 11883

Course Description

In this course on programming languages, we examine programming languages from a multi-paradigm approach. By this, we mean that we look at languages in the whole, rather than in the parts. We choose languages that exemplify different points in the design space of programming language design. We will write lots of programs in several different programming languages. We will approach each language by first examining it in its essential form, stripped of its particular syntactic expression. Then we will examine its implementation in comparison to other programming languages. Then we will write programs in the syntax and environment of the real language, giving a better feel for the languages role in a broader context.

Course Objectives

The purpose of studying various languages is to make you a better programmer, regardless of the programming language you are using. You will find that knowing multiple languages that follow different paradigms will increase the number of tools in your toolbox of programming techniques. These techniques can be useful even if the language you are using do not directly support the paradigms you learn in this class.

The examination of the interpreters will provide you with the knowledge to implement simple languages in whatever programming language you use. The examination of the interpreters will also provide you with a greater understanding of language implementation.

Course and Class Topics

A more complete schedule will be available soon.


The work for this class will involve machine problems. We require that you not discuss the substance of machine problems with anyone. By substance, we mean to exclude such things as ``What machines are we doing this MP on?'' and ``Has MP3 been passed out yet'' and other questions of similar ilk.

Evaluation and Policies

Class assignments will be annotated with the point count for individual components of the assignment. Late work will be accepted only for two days after the due date, with a 10% penalty per day. This is to facilitate the timely return of graded assignments with answers. Machine problems that do not compile will receive no credit, i.e. 0 points.


I try to make every class worth attending. Students will be responsible for any and all material covered, handed-out, announced, etc. in class unless told otherwise (in class :-) ). Attempts will be made, however, to place important announcements on the class web page. Class will be held on all days as scheduled, unless notified otherwise. For more information, reference the Computer Science Department's guidelines on the pink sheets.

Academic Misconduct

Academic misconduct will not be tolerated. For more information, reference the Computer Science Department's guidelines on the pink sheets. Since this class will involve group work, we will establish specific guidelines for each group assignment and post them at the time of the assignment.

Retention of material

Every attempt will be made to return assignments in a timely fashion. In the case of the final examination, it will be kept. However, you may examine it by arranging a meeting with the instructor during the Summer 2003 or Fall 2003 semester.

About this document ...

CS603 Organization of Programming Languages

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.61)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -nonavigation syllabus.tex

The translation was initiated by on 2003-01-26