Sather
Sather – obiektowo zorientowany język programowania. Powstał około 1990 roku w Międzynarodowym Instytucie Informatyki (ang. International Computer Science Institute) na Uniwersytecie Kalifornijskim w Berkeley, rozwijany przez międzynarodowy zespół pod kierownictwem Steve'a Omohundro. Język obsługuje automatyczne zarządzanie pamięcią oraz programowanie generyczne poprzez podtypy.
Pojawienie się |
1990 |
---|---|
Paradygmat | |
Typowanie | |
Implementacje |
ICSI Sather, GNU Sather, Sather-K, Sather-W |
Twórca |
Steve Omohundro |
Licencja | |
Strona internetowa |
Pierwotnie bazował na języku Eiffel, ale szybko zaczął korzystać z konceptów znanych z programowania funkcjonalnego, takich jak iteratory, kontrakty, klasy abstrakcyjne, wielokrotne dziedziczenie, funkcje anonimowe, przeciążanie operatorów i kontrawariantny system typowania.
Oryginalna implementacja jest w tej chwili utrzymywana przez wiele osób, nie tylko w Berkeley, oraz została zaadaptowana przez Free Software Foundation. Istnieją również implementacje Sather-K z Uniwersytetu w Karlsruhe i Sather-W z Uniwersytetu w Waikato.
Sather jest zaimplementowany jako kompilator do kodu C, tzn. kompilator nie produkuje plików obiektowych czy kodu maszynowego, ale na podstawie kodu źródłowego Sather generuje kod źródłowy C jako pośredni język. Optymalizacja niskopoziomowa jest przeprowadzana przez kompilator C. Kod Sather często jest bardziej wydajny niż odpowiadający mu kod C++, a wygenerowany kod C może być dodatkowo ręcznie zoptymalizowany.
Sather jest rozprowadzany na podwójnej licencji: GNU GPL i LGPL.
class HELLO_WORLD is main is #OUT+"Hello World\n"; end; end;
Przykład iteratorów
edytujclass MAIN is main is loop i := 1.upto!(10); #OUT + i + "\n"; end; end; end;
Ten program wyświetli liczby od 1 do 10.