Sather

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

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.

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.

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]