Egy xBase-kompatibilis (FoxPro) programfelépítése. Láthatóság, érvényesség, eljárások és függvények forrásállományai

Az xBase kompatibilis adatkezelő nyelv. Minden nyelvnek van utasításkészlete. Magas szintű, többféle módon is használható utasítások a relációs adatmodell műveleteihez.

Utasítás: hatékony a sztringkezelő műveletek, magas szintű utasítások, hatékony dátumkezelő műveletek.
Felépítése: A változók deklarálása típus és érték szerint szabadon, bárhol lehet. Tömböt a DIMENSION és a DECLARE utasítással hozunk létre. Az egyes elemek típusai tetszőlegesek lehetnek. Ha @ jelet írunk a változó elé, akkor az értékátadás cím szerinti lesz. Speciális utasítások léteznek az adatbázis tartalmának memóriában illetve tömbökbe való másolására. A paraméterátadás cím és érték szerint lehetséges (SET UDF). Valamennyi memóriaváltozó, kivéve a tömböket, eljáráshíváskor az eljárásnak érték szerint adódik át. A tömbök viszont cím szerint adódnak át. Ha a PRIVATE parancs nincs vonatkoztatva a paraméterre, az eljárásban elvégzett módosítások a tömbben az eljárás végrehajtódása után is megmarad.
Eljárások és függvények: minden eljárás függvény, és minden függvény eljárás. Egy eljárás vagy függvény addig hajtódik végre, míg nem találkozik egy RETURN utasítással, vagy míg egy másik eljárás vagy függvény nem kezdődik. A PASCAL-lal ellentétben a nyelv nem támogatja a strukturális programozást. Erről nekünk kell gondoskodni, mivel az eljárások nem ágyazhatók egymásba. Minden eljárásnak vagy függvénynek Van visszatérési értéke. Ha ezt külön nem határozzuk meg, a visszatérési érték logikai TRUE lesz, egyébként bármi lehet. Fontos megemlíteni, hogy saját függvényeinkre, memóriaváltozóinkra hivatkozhatunk index kifejezéseinkben is.
Eljárás vagy függvény hívása:
do függvénynév with paraméterlista
if függvény (…)
= függvény (…)

Láthatóság kérdése: ha nincs PRIVATE parancs, akkor nem rejti el, kivéve, ha az eljárás által hívott paraméter megegyezik a hívó program változójával.
A SET PROCEDURE TO eljar.prg az eljar.prg forráslistába megadott eljárások globális eljárásokká válnak. Egyszerre csak egy hatásos. A memóriaváltozó globálissá tétele a PUBLIC paranccsal történik. A PUBLIC ARRAY kifejezetten hasznos a rövid törzstáblázatok memóriában tartásához.

A forrásállományok .prg kiterjesztésű text file-ok. A program gyakorlatilag eljárás vagy függvény hívások sorozatából tevődik össze. Egy programon belül valamennyi függvény globális, azaz a futtatáskor bárhonnan elérhető, hasonlóan a C nyelvhez.