A RobotC nyelv az azonosítók, literálok, és megjegyzések területén teljes egyezést mutat a C-vel, míg a kulcsszavakban van némi bővítés.
A RobotC firmware-je tartalmazza a C standard library egy részhalmazát (ez a halmaz a leggyakrabban használt és így a fejlesztők
által szükségesnek ítélt alprogramokból és konstansokból áll, de bárki tehet javaslatot mi kerüljön a firmware szintjére).
Ezeknek az alprogramoknak a használatához nem kell megadnunk az implementációt, mert az implementáció a nyelv szerkezetében mélyebben, a futtatást végző
virtuális gépben van elhelyezve. Tehát nincs szükség #include-ra, se az std lib forrásfájljaira.
Ezen alprogramok és konstansok azonosítói kulcsszavai a RobotC nyelvnek, nem definiálhatók felül.
Példaként nézzük meg, hogy a következő program #include pragma nélkül futtatható.
A programozott robot más felületeken érintkezik a külvilággal, mint a számítógépünk. Itt nem a standard kimenetre írunk, hanem
pl.: kijelzőre rajzolunk (NXT), és nem standard bemenetről olvasunk, hanem gombnyomásokra kell reagálnunk.Ezeket a funciókat kezelő alprogramok
hasonlóan az előzőekhez nem külön könyvtárban, hanem a nyelv részeként vannak jelen és így kulcsszavai a nyelvnek.
Ezeknél is fontosabb a robotprogramozás szempontjából a motorok és szenzorok kezelése, az ezekkel kapcsolatos függvények is kulcsszavak.
Fontos megemlíteni, hogy a 3 különböző hardverre a RobotC nyelvnek 3 különböző változata létezik melyek
különböző beépített alprogramokkal rendelkeznek.
Az alábbi linkeken elérhető a beépített függvények listája a különböző hardverekre:
http://www.robotc.net/support/vex/WebHelpCortex/
http://www.robotc.net/support/nxt/MindstormsWebHelp/
Még egy rövidebb összefoglalása a kulcsszavaknak:
http://www.robotc.net/teachingmindstorms/reference/hp_res_words.pdf
task | ld. a párhuzamosságról szóló fejezetben |
const | C++ -ból átvett nyelvi elem |
inline | inline függvények jelzésére szolgál |
true | bool típusnak megfelelő igaz értékű konstans, 1 értékű bájt |
false | bool típusnak megfelelő hamis értékű konstans, 0 értékű bájt |
A változók láthatósága teljesen ugyanúgy működik mint C-ben.
A változók élettartamára ugyanez nem mondható el, nagyobb különbség a C-vel nem is lehetne: RobotC-ben ugyanis nincsen hagyományos értelemben vett stack.
Van ugyan egy verem, ami a függvényhívásokat követi, de ez nem kezel aktivációs rekordokat. Ennek a nyelvi tualjdonságnak az következménye, hogy RobotC-ben minden deklarált változó statikus memóriafoglalással kerül a memóriába.
Ebből következően nincs rekurzió a nyelvben, és párhuzamosság esetén nagyon óvatosan kell bánni a közösen használt függvényekkel.
A fejlesztők azért élhettek ezzel a nem-szokványos nyelvtervezési döntéssel, hogy a sebességet és a szabad memóriát növeljék. Feltételezték, hogy minden változó statikusként való tárolása, még ha egyáltalán nem is szép megoldás, hatékonyabb, mint heap és stack kezelése.