Index of /teaching/ws0405/se2/sw/goferarc

Icon  Name                    Last modified      Size  Description
[DIR] Parent Directory - [   ] 230-to-230a.diffs.gz 14-Apr-2009 09:30 12K [   ] 386gofer.zip 14-Apr-2009 09:30 367K [TXT] ERRATA 14-Apr-2009 09:30 2.6K [   ] calvin22.zip 14-Apr-2009 09:30 39K [   ] gofatari.zip 14-Apr-2009 09:30 232K [   ] gofer230a.tar.gz.tar 14-Apr-2009 09:30 740K [   ] gofer230a.zip 14-Apr-2009 09:30 796K [   ] gofer230b.tar.gz.tar 14-Apr-2009 09:30 742K [   ] gofer230b.zip 14-Apr-2009 09:30 798K [   ] old.gofatari.zip 14-Apr-2009 09:30 163K [   ] pcgof228.zip 14-Apr-2009 09:30 288K [   ] pcgof230.zip 14-Apr-2009 09:30 167K [   ] rel230.tex 14-Apr-2009 09:30 24K [   ] unz50p1.exe 14-Apr-2009 09:30 39K
Gofer version 2.30a                                   Mon Jun 23 12:00:00 1994
------------------------------------------------------------------------------
This directory contains the source code, documentation and demonstrations for
Gofer version 2.30a, an interactive functional programming environment (i.e. an
interpreter!) supporting a language based on the Haskell report version 1.2
(recently published in ACM Sigplan notices).

The following features are included in Gofer 2.30a:

  o  Lazy evaluation, higher order functions, pattern matching etc...

  o  Wide range of built-in types with provision for defining new free
     datatypes and type synonyms.

  o  Polymorphic type system with provision for overloading based on
     a system of type classes.

  o  Full Haskell 1.2 expression and pattern syntax including lambda,
     case, conditional and let expressions, list comprehensions, operator
     sections, and wildcard, as and irrefutable patterns.

  o  Partial implementation of Haskell 1.2 facilities for I/O, enabling
     the use of simple interactive programs and programs reading and writing
     text files.

  o  User documentation, sample programs and source code freely available.

  o  Supports constructor classes and overloaded monad comprehensions.

  o  Simple minded compiler/translator Gofer -> C with runtime system for
     generation of standalone applications.

  o  Runs (and originally developed) on PC compatible computers, but
     also works on Sun workstations.  Code should be portable to many
     other kinds of machine.
 
Gofer is intended as an experimental language, particularly where type classes
are involved.  Gofer extends the Haskell type class system in several ways:

  o  Type classes with multiple parameters are supported.

  o  Instances of type classes may be defined non-overlapping, but otherwise
     arbitrary types.

  o  Predicates in contexts may involve arbitrary type expressions, not just
     type variables as in Haskell.

  o  Basic approach to dictionary construction is different, based on the
     approach I described in a posting to the Haskell mailing list early in
     Feburary 1991.  The resulting system ensures that all dictionaries are
     constructed before evaluation begins, avoiding repeated construction
     and enabling the shared evaluation of overloaded constants in
     dictionaries.

The most significant features of Haskell not currently supported are:
modules, overloaded numeric constants, default declarations, derived
instances.
------------------------------------------------------------------------------

This directory contains the following files:

 README           This file -- you're already reading it!

 gofer230a.tar.gz Standard Gofer distribution in gzipped, tar format.
                  This file includes all documentation, source code and
                  demo programs.

 gofer230a.zip    Standard Gofer distribution in zip format.  This include
                  the same files as gofer230a.tar.gz.


The following files will only be of interest to PC (i.e. DOS) users.

 README.PC        A copy of the readme file in pcgof230.zip.

 pcgof230.zip     Executable versions of Gofer 2.30a for use on
		  standard PCs.  These files were compiled with
		  Borland C 3.1.  Please ensure that you have read
		  and understood the README.PC file included with
		  this ZIP archive before using these programs.
		  You will still need the prelude files and
		  demonstration files from the main Gofer distribution.

 386gofer.zip     Executable and additional source for a 386 version of
                  Gofer 2.30a, compiled with DJGPP (GNU C for DOS).  If you
                  have a 386 or better PC, get this; it gives you the
                  chance to have a much bigger heap, faster execution and
                  32 bit integers.  You will still need the other files
                  from the main Gofer distribution.

 calvin22.zip     A small vi-like editor; my recommendation for use with
                  Gofer on an MSDOS PC.

 unz50p1.exe      The INFO-ZIP unzip utility in binary form.  You will need
                  this to unpack the .zip files above.  Just run the program
                  in an empty directory; it is a self extracting archive.
                  Make sure that you don't confuse the INFO-ZIP readme
                  with the Gofer readmes!

 pcgof223.zip     Executable and demonstration programs for the PC
 pcgof228.zip     versions of Gofer 2.23, and Gofer 2.28.  These are
		  provided just in case anyone wants to use Gofer
		  on an old PC without enough memory to support
		  2.30a.  If you haven't got enough for 2.28 then
		  you probably can't run 2.23 either.  But just in
		  case ...

Files ending with .tar.gz should be unpacked (on a Unix machine) by creating
and changing to a new directory and typing:

                       zcat FILE.tar.Z | tar xvf -

where FILE.tar.Z is the appropriate file name.  Files ending in just .gz
should be unpacked using the gunzip utility:

                       gunzip -v FILE.gz

Files ending with .zip should be unpacked using the unzip utility:

                       unzip FILE.zip

If you are unpacking the gofer230.zip file on a PC, add the -a flag to
ensure proper conversion of text files:

                       unzip -a gofer230.zip

Don't forget that any files with names ending in ".gz", ".zip" or ".exe"
should be tranfered in binary mode.

------------------------------------------------------------------------------

Please do not hesitate to contact me if you have any problems with the files
in this directory, or questions, comments or suggestions about Gofer.

I hope that you will enjoy using Gofer!

Mark                              Until mid-July 1994:  jones-mark@cs.yale.edu
                                  From  Sept/Oct 1994:  mpj@cs.nott.ac.uk

------------------------------------------------------------------------------
Disclaimer: Gofer is supplied "as is" without express or implied warranty
and is subject to terms and conditions of use as set out in the documentation
and source code.
------------------------------------------------------------------------------