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 ) |
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.
Section Header + name := HELLO_WORLD; Section Public - main <- ( "Hello world\n".print; );
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; )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 )Poskytované obecné objekty :
POLE[E], SLOVNÍK[KEY,VALUE]Programování kontraktu pomocí Z notace .