Sather
|
||
Pojawienie się | 1990 | |
Paradygmat | obiektowy, funkcyjny | |
Typowanie | statyczne, silne | |
Implementacje | ICSI Sather, GNU Sather, Sather-K, Sather-W | |
Twórca | Steve Omohundro | |
Licencja | GNU GLP/LGPL | |
Strona internetowa |
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.
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.
Hello world[edytuj | edytuj kod]
class HELLO_WORLD is main is #OUT+"Hello World\n"; end; end;
Przykład iteratorów[edytuj | edytuj kod]
class MAIN is main is loop i := 1.upto!(10); #OUT + i + "\n"; end; end; end;
Ten program wyświetli liczby od 1 do 10.