Language Documentation

The Sather 1.1 specification is the standard language reference. However, it's primary purpose is to serve as a language specification, not as a tutorial. Several Sather tutorials exist, each of which was written with a different target audience. A selective (and relatively recent) newsgroup archive is also available.

A Language Manual . This is a programmer's introduction to Sather. The compressed postscript [~200K] version is more up-to-date. There is a PDF converted version from 10/96 courtesy Ari. The html version is also available as a tar file [~200K]
A pSather manual . This is a programmer's introduction to pSather. The postscript version is more up-to-date than the HTML. Send comments to
A general tutorial and sample code by Michael Philippsen. This is a good starting point and is also available as an HTML document. One caveat - it has not yet been converted to Sather1.1.
A C++ to Sather tutorial by Satish Thatte, aimed at those familiar with C++.
An introduction to iterators , by Holger Klawitter. This has a number of examples and exercises, illustrating iterators from while! to the most exotic recursive iterators.
A style guide from Alex Cozzi explains how to write readable, more beautiful Sather programs. Some of his suggestions might even help people when writing programs in other languages.
People with experience in Sather-K will probably be interested in the Analysis of differences between Sather 1.0 and Sather-K.
The eclectic tutorial by Ben Gomes is akin to an extended FAQ. It is superseded by the language manual, except in the area of the co- and contra- variance debate.

You may also find some of the Sather publications useful.

The Libraries

A significant portion of the Sather distribution consists of Libraries. Unfortunately, we do not yet have a document that describes the library structure and design. What we do have is an HTML library browser (using frames) that you can use to tour the library sources.
The Sather Library Browser


The Sather distribution comes with a user interface built on top of Tcl/Tk.
An Introduction
You can use the standard library browser to browse the GUI classes
HTML versions of the Tcl/Tk man pages. Very useful.
Postscript documentation. May be more recent than the HTML below.
HTML version of the postscript documentation.


Tools for the various stages of project development are available including a full-featured emacs mode, a code browser, debugging support and some rudimenary tools for presenting finished classes in Latex or as HTML (see an example). Please see the tools page for more details.

The ICSI Compiler

ICSI's Sather compiler is written entirely in Sather and generates portable ANSI C. If you wish to work on some aspect of the compiler, please contact Minimal compiler documentation is available.

A tour of the compiler sources.
Compiler man page.

Last change: 07/09/96
The Sather Team (