Index of /teaching/ws0405/se2/sw/goferarc
Name Last modified Size Description
Parent Directory -
230-to-230a.diffs.gz 14-Apr-2009 09:30 12K
386gofer.zip 14-Apr-2009 09:30 367K
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.
------------------------------------------------------------------------------