Eiffel (język programowania)
Logo języka | |
Pojawienie się | |
---|---|
Paradygmat | |
Typowanie | |
Aktualna wersja stabilna |
24.05 |
Twórca | |
Licencja |
Podwójna (płatna komercyjna lub tzw. open source)[1] |
Platforma sprzętowa |
Wieloplatformowy |
Platforma systemowa | |
Strona internetowa |
Eiffel – statycznie typowany, obiektowy język programowania opisywany w książkach Bertranda Meyera m.in. Object-Oriented Software Construction, Eiffel: The Language.
Charakterystyka języka
[edytuj | edytuj kod]Główną ideą przyświecającą twórcy języka Eiffel było stworzenie praktycznego narzędzia do tworzenia wysokiej jakości oprogramowania. Cel ten miał być osiągnięty poprzez tworzenie re-używalnego kodu dającego pewność swojej poprawności. Stąd Bertrand Meyer określił następujące cechy języka:
- modularyzacja poprzez zastosowanie obiektów zgodnie z paradygmatem obiektowym
- ukrywanie wewnętrznych szczegółów implementacji
- polimorfizm
- dziedziczenie wielokrotne
- generyczność typów argumentów
- automatyczne zarządzanie pamięcią
- statyczna typizacja
- sprawdzane w trakcie wykonania programu warunków – programowanie kontraktowe (ang. design by contract)[2].
Hello World
[edytuj | edytuj kod]class HELLO_WORLD
creation make
feature
make is
local
do
std_output.put_string("Hello, world")
std_output.put_new_line
end
end
Historia
[edytuj | edytuj kod]Język został zaprojektowany przez firmę Interactive Software Engineering (ISE, obecnie Eiffel Software) w 1985 r. Rok później ISE zaimplementowała kompilator dla Eiffel na platformę UNIX.
W 1989 specyfikacja języka stała się publicznie dostępna[3]. Powstała wówczas organizacja Nonprofit International Consortium for Eiffel (NICE). Zajmująca się popularyzacją języka, a także jego standaryzacją. W 1992 NICE przyjęła drugie wydanie książki Eiffel The Language Bertranda Meyera jako pierwszy standard. Następnie publikowała uaktualnienia w roku 1996, 2000, 2001, 2002[4].
Od 1999 roku ISA współpracowała z Microsoft, co zaowocowało w 2001 roku utworzeniem środowiska na platformę .NET[5].
W 2002 roku ECMA utworzyła grupę zajmującą się opracowaniem standardu języka Eiffel. Pierwsza wersja została opublikowana w 2005. W kolejnym – wyszło uaktualnienie standardu[3]. W tym samym roku został opublikowany standard ISO (ISO/IEC 25436:2006)[6].
W 2007 roku Association for Computing Machinery przyznało Bertrandowi Meyerowi ACM Software System Award za zaprojektowanie i implementację języka Eiffel, programowanie kontraktowe i działalność która przyczyniła się do tworzenia godnego zaufania, re-używalnego, efektywnego oprogramowania[7].
Środowiska programistyczne
[edytuj | edytuj kod]Przedsiębiorstwo Eiffel Software oferuje IDE Eiffel Studio na licencji komercyjnej albo GPL. Środowisko jest dostępne dla różnych systemów operacyjnych: MS Windows, Linux, FreeBSD, OpenBSD, Solaris.
SmartEiffel (poprzednio SmallEiffel) to IDE tworzone przez zespół prof. Dominique Colnet w centrum naukowym LORIA we Francji[8]. Środowisko oprócz klasycznej kompilacji, oferuje możliwość wygenerowania kodu wykonywalnego dla maszyny wirtualnej Java. Nie jest zgodne ze standardem ISO/ECMA[9].
Visual Eiffel jest środowiskiem udostępnianym na licencji GPL na platformy Windows i Linux.
Przypisy
[edytuj | edytuj kod]- ↑ Eiffel Software’s Dual Licensing Business Model. eiffel.com. [dostęp 2019-08-02]. (ang.).
- ↑ Bertrand Meyer. Eiffel: A language and environment for software engineering. „The Journal of Systems and Software”, 1988. [dostęp 2010-11-02]. (ang.).
- ↑ a b Historia środowiska Eiffel Studio firmy Eiffel Software. [dostęp 2010-11-02]. (ang.).
- ↑ NICE Standards. [dostęp 2010-11-02]. (ang.).
- ↑ Raphael Simon, Emmanuel Stapf, Bertrand Meyer: MSDN. Full Eiffel on the .NET Framework. 2002. [dostęp 2010-11-02]. (ang.).
- ↑ Informacje o standardzie ISO/IEC 25436:2006. [dostęp 2010-11-02]. (ang.).
- ↑ Association for Computing Machinery: ACM Software System Award 2007. [dostęp 2010-11-02]. [zarchiwizowane z tego adresu (2007-07-17)]. (ang.).
- ↑ Loria. People.. [dostęp 2010-11-01]. (ang.).
- ↑ Strona domowa SmartEiffel. [dostęp 2010-11-01]. (ang.).