Áttekintés

Ez az új nyelv a hagyományos szoftverfejlesztési szemlélet, a tudásábrázolás és a gépi feldolgozás támogatására készült. Erősen épít az absztrakcióra és a transzformációra.

Duál nyelv

A nyelv képességei egyedileg korlátozhatóak, validálhatóak ontológiai adatokkal kiegészítve tág határok között finomhangolható.

A nyelv kettős felépítésű, egy teljes és egy futásidejú verzióból áll. Mindkét forma erősen típusos.

A futásidelű változat multipragmadigma és statikus felépítésű. Fő feladata a végrehajtás és az egységes felépítés.

Sok átfedés van a két változat között, de a teljes nyelv néhány dologban pont az ellentéte:

  • kiértékelés: statikus vs. dinamikus,

  • integritás: teljes vs. részekre bontott,

  • feldolgozás: azonal vs csak kiértékelés után.

Mivel a szintaxis nem végleges és elég nagyszámú kulcsszó fordul elő, a kulcsszavak előtt egy csillag * karakter szerepel. A leggyakoribb kulcsszavaknál elhagyható:

  • class/representation

  • namespace/workspace

  • for/foreach/if/while.

Célok

  • adatok és típusok leképezése

  • adatok csomópontosítása

  • összefüggő adatok tárolása, lekérdezése (repository)

  • általános transzformáció

  • végrehajtható kód definiálása (jelenleg csak procedurális)

  • ontológia széles körű támogatása

  • verziók és változatok párhuzamos használata

  • egységes felépítés általánosabb feladatokhoz (nulladik implementáció)

Rendszer architektúra

A teljesen nyílt architektúra rendkívüli flexibilitást biztosít. Szabadon konfigurálható az összes rendszerelem:

  • implicit (Group::ParserData, Group::DynamicMethod) és explicit (System::Parser, System::ReaderInterfce) bővíthető nyelvtan (DSL)

  • publikus és verzionálható AST, párhuzamosan is használható

  • választható és lecserélhető végrehajtó modulok a belső AST-hoz: értelmező, JiT (LLVM), C++ DSO, System::ExecuteInterface

  • konfigurálható végrehajtási kontextus

  • a futtaható kódot tartalmazó raktár szinte bárhonnan feltölthető

  • projekt támogatás segítségével tetszőlegesen egyedire szabható működés: beolvasás, validáció, tárolás, végrehajtás, …

Feldolgozási lánc

Jelenleg két alapértelmezett módszer implementált, de a moduláris felépítésnek köszönhetően tetszőleges egyedi feldolgozási lánc megvalósítható.

Szkript futtatás

A következő szakaszok futnak le egymás után:

  • a megadott forrskód beolvasása és a hozzá tartozó nyelvtan segítségével AST generálás

  • az alapértelmezett raktárba tárolás,

  • a munkatérhez tartozó validátor végrehajtása

  • teljes nyelv esetén transzformáció a futásidejű nyelvre

  • opcionálisan optimizáló transzformációk

  • a forráskódban található belépési pont végrehajtása

Projekt betöltés és végrehajtás

Betöltési szakasz:

  • Új raktár és feldolgozó kontextus létrehozása

  • manifest fájl feldolgozása

  • a saját raktár feltöltése a manifest fájlnak megfelelően

  • onLoad() metódus végrehajtása korlátozott környezetben

A projekt cél(ok) kiértékelése külön interakció után történik vagy csoportos feldolgozás is lehetséges (pl. csomag létrehozás vagy dokumentáció készítés).