Sather


Sather w encyklopedii

Z Wikipedii, wolnej encyklopedii Przejdź do nawigacji Przejdź do wyszukiwania

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.

Hello world | edytuj kod

class HELLO_WORLD is main is #OUT+"Hello World\n"; end; end; 

Przykład iteratorów | 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 kod

Na podstawie artykułu: "Sather" pochodzącego z Wikipedii
OryginałEdytujHistoria i autorzy