Web Page for Programming Languages Project.


SATHER PROGRAMMING LANGUAGE





[Sather Logo]

Sather has a special place in the world of languages because it aims to be as efficient as C, C++, as elegant and safe as Eiffel, and supports interactive programming and higher-order functions as well as Common Lisp, or Smalltalk.

The programming language Sather has adopted ideas from Eiffel, and has been influenced by C, C++, and Modula-3. The central concept in Sather is "Simplicity". Around this central concept are built the strong features such as Object-Oriented, Efficiency, interactive, safe, and non-proprietary. I discuss the major features of this programming language below.

Object Orinted :

The central concept in Object Technology is Code-reuse. Sather programs consist of collections of modules called "classes" which encapsulate well-defined abstraction. An obvious benefit of reuse is that less code needs to be written. Another benefit is that reusable code is usually better written, more reliable and easier to debug.

Strong Typing :

Every Sather object and every Sather variable has a specified type and there are precise rules defining the types of object that each variable can hold. Statically-checked strong typing helps the Sather compiler to generate more efficient code because it has more information.

Implementation and Type Inheritance :

In Sather,inheritance from abstract classes defines subtyping while inheritance from other classes is used solely for implementation inheritance.

Multiple Inheritance:

Sather supports Multiple Inheritance.Classes can inherit from an arbitrary number of classes.

Garbage Collection :

Memory management done by the programmer is the source of two most common kinds of bugs : dangling pointers & memory leaks. Sather uses a "Garbage Collector" which tracks down unused objects and reclaims the space they use automatically.

Interactive Interpreted Programming:

Sather combines the flexibility of an interactive interpreted environment with very high efficiency compiled code. During development, the well-tested library classes are typically run compiled, while the new experimental code is run interpreted.

Conclusion:

I have expressed my understanding of the Sather 1.0 language after reading the published pages on the web. Though the language is quite young, its prospects are exciting. The user community is growing by the day.

Useful Links:

Short History of Sather
Frequently Asked Questions on Sather
Sather Publications

Jayasri Tangirala
jtangira@cs.fit.edu