Introduction

This document is not very structured - it was started as a sort of extended FAQ in response to queries on the net about various aspects of the language. It introduces some of the trickier concepts in Sather, particularly concepts that might not be familiar to a C++ or Smalltalk programmer. I've also included several good articles from discussions on the net, mostly towards the end of the tutorial. Let me (gomes@icsi.berkeley.edu) know of bugs. Contributions are always welcome. If I have included something of yours in here without proper attribution or against your wishes, please let me know and I will fix the problem.

This is a reformatted latex document. If you are reading a printed version of this document, the latest html version is at: http://www.icsi.berkeley.edu/ gomes/Sather/sather-tutorial.html

This document first introduces concrete classes, their components and the notion of code inclusion. It then introduces abstract classes and subtyping. It then introduces value classes and then goes on to describe more exotic constructs like bound routines and exceptions.

Acknowledgements

  This document incorporates ideas and feedback from Holger Klawitter (as well as actual text from him), David Stoutamire, David Bailey, Jerome Feldman, Michael Philippsen and others. Thanks to Arno Jacobsen for fixing the higher order bound routine example. Some of the examples were taken from discussions on the net, but unfortunately their attributions have been lost in the mists of time. If you are an unwitting author, let me know.

 


Benedict A. Gomes
Mon Apr 29 10:12:43 PDT 1996