CSCI 6220
Fall 2001

Last modified: 12/10/01

Announcements

The final exam will be Tuesday, December 11 at 7:30pm in Austin 304.


Systems

Scheme

There is a page

scheme description
that describes Scheme by relating it to Astarte. You can also read the Scheme Report if you want a more definitive source.

To use Scheme, you have the following options (plus others if you explore).

  1. Use Dr. Scheme under Unix in room 320. It is called drscheme.

  2. You need to set the language to full scheme, not the stripped down versions that are available. Under the Language menu, select "Choose Language", and change the language to "Full Scheme".

  3. Get Dr. Scheme for yourself. It runs under Windows. You can get it from www.cs.rice.edu/CS/PLT/packages/drscheme.

  4. (least recommended) Use the basic MIT Scheme. It is installed only on the Sparc computers in room 320, as /export/stu/3675/bin/scheme. This version is available from MIT swiss-ftp.ai.mit.edu, in the /pub directory.

    The Scheme interpreter is called scheme. So type scheme to start the Scheme interpreter. The way to use it is to write your program using a text editor, and to load your program into the interpreter. If you modify your program, then reload it. To load file "eval.scm", you write

           (load "eval.scm")
      
    (The value of this expression is the name of the last function defined in that file, and the interpreter will report that value.)

    To exit Scheme, type a control-D.

Astarte

Astarte version 0.10.4 for Windows is available. See getting Astarte distribution to get it.

Secure shell

You can get to the lab computers using ssh and sftp. Ssh for Windows is available from ftp://ftp.ssh.com/pub/ssh. Get SSHWinClient-3.0.0-build203.exe. It is a self-extracting executable. Just run it and it will install itself.


Syllabus

This course will concentrate on declarative programming and the semantics and use of declarative programming languages. See the course syllabus.


Office hours

TTh 10:45-12:15 and 5:30-6:30pm or by appointment.


Exercises

  1. Homework assignment 2
  2. Programming assignment 2
  3. Programming assignment 3


Language documentation

Documentation on Astarte is available from http://www.cs.ecu.edu/astarte/. The documentation describes version 0.10.2. The lab currently has version 0.10 installed. It will be changed shortly, but is not very different.


Lecture summaries

  1. [8/16/01] We covered general issues on the ideas of declarative programs and the motivation for using them.

  2. [8/21/01] We did several examples of writing definitions of functions and evaluating expressions using a functional style. Functional programming is discussed in chapter 8 of the text.

  3. [8/23/01] We did more examples of writing programs in a functional style.

  4. [8/28/01] We began looking at higher order functions and how they can be used to implement entire classes of algorithms. This material is from chapter 9 of Sethi.

  5. [8/30/01] We continued looking at higher order functions.

  6. [9/4/01] We looked at using list comprehensions and functions on lists

  7. [9/6/01] We looked at evaluation strategies and uses of lazy evaluation.

  8. [9/11/01] We went over homework questions and also over the programming assignment.

  9. [9/13/01] We looked at evaluation strategies, the run-time stack and function closures.

  10. [9/18/01] We discussed types and polymorphism.

  11. [9/20/01] We discussed types and type inference in a polymorphic language.

  12. [9/25/01] We discussed more on type inference, including how unification can be done in a practical way.

  13. [9/27/01] Test.

  14. [10/2/01] We discussed the programming language Scheme.