Fordítás
Az Emerald implementációja a hordozhatóság érdekében lehetővé teszi az interpreter használatát. A fordítót Emerald nyelven írták és bájtkódot tartalmazó végrehajtható fájlt generál, mely ezután interpretálható.
A fordító neve ec, melyet legtöbbször így használunk:
ec filename ...
Az emerald forrásfájlok neve koncepció szerint .m kiterjesztésű. A fordító által létrehozott végrehajtható fájl neve megegyezik a forrásfájléval, de a kiterjesztése .x-re változik.
Az Emerald interpreter neve
emx. Tipikus hívása:
emx filename.x ...
Az interpreternek számos kapcsoló adható, a leghasznosabbak:
-
-i Meghívja a beépített nyomkövetőt, amikor egy hiba fordul elő.
-
-I Azonnal meghívja a beépített nyomkövetőt, tehát lehetőség van mérföldkövek elhelyezésére.
-
-Tcall Egy hívásnyomkövetőt hoz létre, mellyel az összes függvény és eljárás hívása és visszatérése követhető.
-
-v Statisztikát készít a program terminálásáról.
-
R[host[:port]] Ezzel a kapcsolóval a kooperatívan dolgozó Emerald gépek kollekciójának lehetünk a tagjai azáltal, hogy kapcsolódunk a megadott porton keresztül ahhoz az interpreterhez, amelyik a megadott gépen fut.
Nyomkövetés
Az Emerald nyomkövető az interpreterbe van beépítve. A -i kacsolóval indítja az interaktív nyomkövetőt. Ha a program végrehajtása egy hiba miatt megakad, a vezérlés a nyomkövetőnek adódik át. Ha nincs bekapcsolva a -i kapcsoló, akkor hiba esetén az interpreter egyszerűen kilép.
Ha töréspontokat szeretnénk elhelyezni a programban, akkor a -I kapcsolót is be kell kapcsolni. Ezzel a program indulása előtt a nyomkövetőbe léphetünk, mintha az induláshoz egy töréspontot tettünk volna. A nyomövetőnek adható utasítások:
-
where Egy minimális verem képet ad, mely tartalmazza a forrásfájlbeli neveket és az utasítások sorszámát.
-
dump Bővebb információt ad a veremről, mely tartalmazza az összes lokális változót és paramétert.
-
processes Az összes létező processzus leírását adja meg.
-
process id A megadott processzus nyomkövetésére kapcsol.
-
quit Kilép a nyomkövetőből.
-
continue Folytatja az interpretálást.
-
print expression kiírja egy változó értékét. A változót az aktuális aktivációs rekordban keresi, és ha ott nem találja akkor halad tovább lefelé a veremben. Egy objektum belsejébe is benézhetünk a "." operátor használatával. Ha x egy azonosító és x-nek van egy i nevű példányváltozója, akkor azt a "print x.i" utasítással tudjuk kiíratni.
-
look Az aktuális aktivációs rekordot illetve az aktuális objektumot írja ki.
-
b fájlnév sorszám A megadott helyre egy töréspontot helyez el. Fájlnév vagy sorszám nélkül az aktuális fájlban illetve az aktuális sorban helyezi el.
-
delete fájlnév sorszám Törli a megadott helyen lévő töréspontot.
-
step A következő forrássorra lép.