Á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).