Przejdź do zawartości

Sather

Z Wikipedii, wolnej encyklopedii
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.

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.

Linki zewnętrzne[edytuj | edytuj kod]