A nyelv nem szabványosított; a http://strategoxt.org/ webhelyen leírtak és az onnan letölthető implementáció tekinthető de facto standardnak.
A keretrendszer eredeti megvalósításának nyelve a C és az eszközök parancssori használatra lettek optimalizálva. Később elkészült egy port Java környezetbe, melyre egy Eclipse-alapú integrált fejlesztőkörnyezet is épül (Spoofax/IMP).
A nyelv lehetőségei leggyorsabban a Stratego Shell
programmal próbálhatóak ki. A program nem az alapvető Stratego/XT disztribúció része, de a fejlesztők megegyeznek. A szoftvert a Stratego/XT fejlesztői készítik; ugyanarról a honlapról tölthető le.
Telepítés után a stratego-shell
programot elindítva egy stratego>
paranccsor fogad. Az aktív sorba egy stratégiát, stratégiadefiníciót, szabálydefiníciót vagy import
direktívát írhatunk vagy az interpreternek egy interpreter-specifikus utasítást adhatunk. A legfontosabbak:
:help
- felsorolja az interpreter által elfogadott utasításokat:undef id
- felszabadítja az id
nevet :undef id(s,t)
- törli az id(s,t)
stratégiát :reset
- törli az összes nevet, stratégiát, szintaxisdefiníciót :include file
- fájlban található utasítássorozat végrehajtása :exit
, :q
, :quit
- kilépés az interpreterből
Az interpreter - mint egy Stratego program - rendelkezik egy aktív termmel. Ha egy stratégiát hajttatunk végre, és a végrehajtás sikeres, megfelelően változik az aktív term. Ha a végrehajtás sikertelen, erről a tényről az interpreter a command failed
közléssel tájékoztat; ekkor az aktív term nem változik. Az aktív termet minden utasítás végrehajtása után kiírja.
Az interpreter használatára példa található a 15. fejezetben.
Stratego nyelvű programok fordításához az strc program használható. A program egyetlen kötelező parancssori paramétere a -i, amivel a lefordítandó fájl nevét adjuk meg.
Például:
A fordító a következő fájlokat generálja:
Az strc program további fontos kapcsolói:
Függvénykönyvtár az aktuális verzióban több lépésben hozható létre: először létrehozzuk a megfelelő C nyelvű forrásállományt, majd azt - immár C programként - fordítjuk le. Például a következő munkamenetben statikusan szerkeszthető függvénykönyvtárat hozunk létre a prop-laws.str fájl alapján:
A Spoofax/IMP rendszer egy Stratego-fordító Javára, egy hozzá tartozó, Eclipse alapú integrált fejlesztőkörnyezet és néhány, az Eclipse-alapú IDE-fejlesztést támogató könyvtár. Saját nyelv fejlesztéséhez sok segítséget ad, melyek közül a legfontosabbak:
Az alábbi ábrán egy mintaprojekt szerkesztője látható, ahol egy saját nyelv környezetfüggő súgóját láthatjuk működés közben.
A súgót az alábbi kóddal készítettük el: