CS 3304: Comparative Languages

Spring 2007


Dr. James D. Arthur
Email: arthur AT vt.edu
Office: 610 McBryde Hall
Office Hours: TTH 9:30AM - 10:45 AM or By Appointment


Xiaoyu Zhang
Email: zhangxy AT vt.edu
Office: McBryde 133A
Office Hours: M 4:00pm-5:00pm; W 6:30pm-7:30pm (218 McBryde Hall)


This course provides an in-depth study of current and historical issues in the design, implementation, and application of programming languages. Topics will vary from basic to advanced in areas such as syntax, semantics, binding, data abstraction, exception handling, concurrency, and functional, logic and object-oriented programming. A modest amount of programming will be required to help you get the feel for different types of languages.


Required: Sebesta, Concepts of Programming Languages (7th Ed.)
Useful: Friedman and Felleisen, The Little Lisper
Clocksin and Mellish, Programming in Prologue
Abolrous, Learn Pascal in Three Days


CS2604: Data Structures and File Management


Grading will be based on the following percentages:

Online Document for Scheme and Prolog


    How to install Prolog on Lab machines
  1. Download source file pl-5.6.33.tar.gz from SWI-prolog web site.
  2. Upload the source file to your home directory in the Lab machine. For example, user example's home directory is /home/ugrads/e/example.
  3. Unzip the file:
    > tar zxvf pl-5.6.33.tar.gz.
    A folder named pl-5.6.33/ will be generated.
  4. Go to the folder and configure the compile and installation environment:
    > ./configure --prefix=/home/ugrads/e/example/swi-prolog
    This step explicitly requires the prolog will be installed to swi-prolog directory under user's home directory.
  5. Compile and install
    >make install
    After this step, prolog should be installed.
  6. Run the prolog

    If you would like to type a short command instead of the full path to the prolog, add the following alias into your .bash_profile.
    alias plg="/home/ugrads/e/example/swi-prolog/bin/pl". When next time you login, or type
    > . ~/.bash_profile
    to apply the alias. Run the short command plg to start prolog:

Program Assignment