Sather
Z Wikipedii
Sather jest obiektowo zorientowanym językiem 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.
Oryginalnie bazował on na języku Eiffel, ale teraz zawiera wiele elementów programowania funkcjonalnego. Sather czerpie inspirację również z innych języków programowania i paradygmatów: iteratory, kontrakty, klasy abstrakcyjne, wielokrotne dziedziczenie, funkcje anonimowe, przeciążanie operatorów, kontrawariantny system typowanie. Wiele z tych cech jest normalnie spotykana jedynie w językach funkcjonalnych.
Oryginalna implementacja Berkley jest w tej chwili utrzymywane przez wiele osób, nie tylko w Berkley, 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 obiektowego 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.
[edytuj] Hello world
class HELLO_WORLD is main is #OUT+"Hello World\n"; end; end;
[edytuj] Przykład iteratorów
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.