A Stratego termátíró rendszer

Bevezetés

Szoftvertranszformációs rendszerek

Programnak a szoftver több formáját is nevezhetjük: a felhasználó a látott grafikus felületet nevezi így, a számítógép a közvetlenül végrehajtható számsorozatot, a programozó pedig általában a forrásnyelvi szöveget. Az utóbbi két forma közötti átalakítást végzi a fordítóprogram. Mire a programszövegből gépi kódú utasítássorozat keletkezik, a szoftver többféle reprezentációban is feldolgozásra került - lexikai, majd nyelvtani elemző alkotott hierarchiát a forráskód betűsorozatából; e struktúrán többféle elemzés - például típushelyesség-ellenőrzés - ment végbe, s csak az előre rögzített szabályoknak megfelelő programszövegből keletkezik futtatható állomány.

Ezek a részprogramok mind szoftvertranszformációkat hajtanak végre; de nem csak ezek a szoftvertranszformációk léteznek. Ezt a technikát használjuk szoftverkomponensek, dokumentáció automatikus generálására, összetett tulajdonságok ellenőrzésére is. Egyszerűbb esetekben lehet, hogy úgy gondoljuk: egy marék reguláris kifejezés illesztésével és cserék végrehajtásával is generálhatunk kódot, de hosszú távon még ekkor is rosszul járunk. Ezért szükséges a szoftvertranszformációinknak egységes keretet, nyelvet adni.

A Stratego/XT

A Stratego/XT összetett szoftvertranszformációk megvalósítására alkalmas keretrendszer. Egy transzformációs rendszer általában kicsi transzformációk csöve (pipeline): első lépésben a forrásszövegből egy elemző szintaxisfát készít, ezen a fán több transzformációt hajt végre, majd az utolsó fából programszöveget generálunk - ami a teljes transzformáció eredménye.

Egy transzformációs pipeline

A keretrendszer fő részei:

A dokumentumról

E dokumentum írásakor a 0.17-es verzió volt a legfrissebb.

A következő jelöléseket használjuk: