Lisaac

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 14. ledna 2020; kontroly vyžadují 3 úpravy .
Lisaac
Jazyková třída objektově orientované prototypování
Objevil se v 2003
Autor Benoit Sonntag
Vývojář Benoît Sonntag a Jérôme Boutet
Uvolnění 0,42 (9. listopadu 2020 ) ( 2020-11-09 )
Typový systém statické psaní
Hlavní implementace Lisaac
Byl ovlivněn Smalltalk , Self , Eifel
Licence GNU GPL 3
webová stránka lisaac.org

Lisaac  je první zkompilovaný objektově orientovaný programovací jazyk založený na konceptu prototypů , podporujících systémové programování a smluvní programování .

Lisaac byl navržen tak, aby napsal operační systém Isaac .

Kompilátor Lisaac vytváří optimalizovaný kód ANSI C , který lze zkompilovat na jakékoli platformě, pro kterou existuje kompilátor jazyka C , díky čemuž jsou programy Lisaac přenosné. Je možné získat programy stejně rychle jako programy napsané v C [1] [2] .

I když je jazyk silně napsaný, neexistuje žádný rozdíl mezi kódem a daty. I zkompilovaný kód si zachovává dynamické vlastnosti.

Nejjednodušší příklad kódu

Section Header + name := HELLO_WORLD; Section Public - main <- ( "Hello world\n".print; );

Dynamická dědičnost

Nadřazený objekt je pouze slot, jehož hodnotu lze přepsat:

Záhlaví sekce - NAME := DECOD_MPEG2_TO_SCREEN; Sekce Zdědit - rodič videa : OBJECT <- ( + výsledek : OBJEKT; typ .when 1 then { result := WINDOW;} .when 2 then { result := VIDEO_VGA;} .when 3 then { result := VIDEO_TVOUT;}; výsledek ) Sekce Veřejná - typ : INTEGER; -decode_stream <- ( putimage decode_to_bitmap; )

Předefinování operátorů

V Lisaac je operátor slot, jehož hodnotu lze předefinovat. Například předefinujme operátor „+“ pro objekt NUMERIC:

- '+' Vlevo 80 other:SELF :SELF <- Self - -other;

Nebo pro matici:

- '+' Vlevo 80 dalších:SELF :SELF <- ( + výsledek : SELF; vysledek := SELF.create count; 1.to tab.count do { i : INTEGER; vysledek.put (položka i+jiná.položka i) do i; }; výsledek )

Generické programování

Poskytované obecné objekty :

POLE[E], SLOVNÍK[KEY,VALUE]

Programování smlouvy

Programování kontraktu pomocí Z notace .

Externí odkazy

Poznámky pod čarou

  1. Srovnávací testy projektu Isaac (downlink) . Získáno 24. července 2007. Archivováno z originálu 12. listopadu 2007. 
  2. Počítačová jazyková srovnávací hra (downlink) . Datum přístupu: 8. července 2008. Archivováno z originálu 19. března 2012.