Sather

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 GPL/LGPL

Strona internetowa

Satherobiektowo 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.

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.

Linki zewnętrzne

[edytuj | edytuj kod]