InteLib | |
---|---|
Típusú | Könyvtár többparadigmás programozáshoz |
Fejlesztő | András Vikt. Sztoljarov |
Beírva | C++ |
Operációs rendszer | Unix -szerű , Microsoft Windows |
legújabb verzió |
|
Engedély | GNU LGPL |
Weboldal | intelib.org |
Az InteLib egy C++ osztálykönyvtár , amely a Lisp számítási modellt modellezi , és olyan műveletsort biztosít, amely lehetővé teszi Lisp S-kifejezések leírását szintaktikailag közeli aritmetikai kifejezésekkel a C++-on belül. A könyvtárat többparadigmás programozási eszközként hozták létre .
A könyvtár a heterogén S-kifejezések objektum-orientált modelljét kínálja, amely S-kifejezés-kiértékelési művelettel van felszerelve Lisp szempontjából. A modellt alkotó osztályok újradefiniált infix műveletekkel vannak felszerelve, amelyek lehetővé teszik az S-kifejezések írását C++ aritmetikai kifejezések formájában, amelyek vizuálisan közel állnak hozzájuk. Tehát számos, az InteLib-nek szentelt cikkben egy példa található a Lisp függvényében:
( defun izomorf ( fa1 fa2 ) ( cond ( ( atom fa1 ) ( atom fa2 ) ) ( ( atom fa2 ) NIL ) ( t ( és ( izomorf ( autófa1 ) ( autófa2 ) ) ( izomorf ( cdr fa1 ) ( cdr fa2 )) )))))Az InteLib használatával ez a kódrészlet a következő C++ kifejezésként írható fel:
( L | DEFUN , IZOMORPHIC , ( L | TREE1 , TREE2 ), ( L | COND , ( L | ( L | ATOM , TREE1 ), ( L | ATOM , TREE2 )), ( L | ( L | ATOM , TREE2 ), NIL ), ( L | T , ( L | ÉS , ( L | IZOMORPHIC , ( L | CAR , TREE1 ), ( L | CAR , TREE2 )), ( L | IZOMORPHIC , ( L | CDR , TREE1 ), ( L | CDR , TREE2 )) ))))Itt L egy olyan típusú változót mutatunk be, amely egy elemből listát készítő LListConstructorművelethez vezet be . L|A művelet eredménye annak az osztálynak egy objektuma, LReferenceamelynél a "vessző" művelet újradefiniálva van - az InteLib könyvtárban ez a művelet új elemek hozzáadására szolgál a meglévő listához.
A teljes kifejezés eredménye egyben az osztály objektuma is LReference. Evaluate()Az ebben az osztályban leírt módszer lehetővé teszi egy kifejezés kiértékelését a Lisp nyelv szabályai szerint. Egy ilyen számítás eredménye egy új S-kifejezés lesz, amelyet, mint mindig, egy osztályú objektum képvisel LReference.
DEFUN, ISOMORPHIC, stb. a fenti példában a Lisp szimbólum fogalmát képviselő TREE1osztály változói .LSymbol
Az InteLib jelenlegi verziója tartalmaz egy eszközkészletet az S-kifejezések heterogén adatstruktúrákként való kezeléséhez (kiértékelés nélkül), valamint számítási modelleket a Lisp és a Scheme (pontosabban az InteLib Lisp és InteLib Scheme olyan dialektusaihoz, amelyek nem felelnek meg a e nyelvek szabványai). A csomag tartalmaz interaktív tolmácsokat mindkét dialektushoz, valamint olyan fordítókat, amelyek egy hagyományos Lisp vagy Scheme szintaxisú modult vesznek bemenetként, és létrehoznak egy C++ modult fejlécfájllal.
A könyvtár első működő változatát A. Stolyarov írta 1999 -ben a Moszkvai Állami Egyetem VMC karán végzett mesterképzési munkája során.
Az InteLib könyvtárat A. Stolyarov és E. Bolshakova A. Stolyarov és E. Bolshakova Funkcionális technikák építése objektum-orientált nyelvbe [1] cikkében említették először hivatalosan a JCKBSE'2000 konferencián Brünnben 2000 szeptemberében.
2002-ben A. Stolyarov megvédte Ph.D. értekezését Heterogén nyelvi mechanizmusok integrációja egyetlen programozási nyelven belül , amely az InteLib könyvtárban megvalósított közvetlen integrációs módszert mutatja be.
Ahogy az InteLib hivatalos honlapján is olvasható, a könyvtár neve az Intelligence Library szavakból származik, ami a szerző eredeti szándékát tükrözi, hogy mesterséges intelligencia nyelvek számítási modelljeit C ++ projektekbe integrálja.
Az InteLib könyvtár ingyenes szoftver . Maga a könyvtár LGPL licenc alatt , a hozzá tartozó fordítók és tolmácsok GPL licenc alatt kerülnek terjesztésre.