A számítógépes program szövege közönséges text file, melyben karakterek sorozata írja le a program utasításait.
A program szövegét a fordítóprogram dolgozza fel.
Az első lépés az alapelemek generálása, vagyis a lexikai elemzés. Például, egy számológép program inputjaként (bemenő adat) a következő karaktersorozat érkezik be: "12*(3+4)^2". A lexikai elemző a bemenetből a következő alapelemeket generálja: 12; *; (; 3; +; 4; ); ^ és 2. Ezek azok az alapelemek, amelyek az aritmetikai kifejezések körében konkrét jelentéssel bírnak. Az elemző tartalmaz olyan szabályokat, amelyek mutatják, hogy például a *, +, ^, (and) karakterek egy új alapelem kezdetét jelzik, ezért nincsen értelme az olyan alapelemek létrehozásának, mint például "12*" vagy "(3".
A jelkészlet határozza meg, hogy a feldolgozás közben milyen karaktereket ért meg a fordítóprogram, vagyis milyen karakterek segítségével írhatjuk le a program szövegét.
Jellemző, hogy a karakterkészlet az ASCII kódtáblából kerül csak ki. Ugyanakkor a mai fordítóprogramok már az egyszerűsített UNICODE kódtábla alapján is képesek a program szövegét karakterekre bontani.
A C nyelv jelkészlete az angol ABC kis-, és nagybetűin, a számjegyeken kívül az alábbi karakterekből áll:
! " # % & ' ( ) * + , - / : ; < = > ? [ \ ] ^ _ { | ~
A program szövegét ún. white-space karakterek tördelik szét. Ilyennek számít maga a szóköz, a tabulátor, és a sorvége jel (Enter).
A programozási nyelvek szintaktikája általában úgy fogalmaz, hogy ahol állhat egy white-space karakter, ott állhat több is.
A szimbólumok a lexikai elemzés alapelemei. Egy vagy többkarakteres szimbólumokat használunk a program írása során.
Egykarakteres szimbólumnak számít a ’+’ jel, mely lehet az összeadás szimbóluma. Többkarakteres szimbólumnak számít a ’!=’ (nem egyenlő), az összehasonlítás jele.
A lexikai elemzőnek fel kell tudni ismerni a többkarakteres szimbólumokat, és azokat egyetlen szimbólumként kínálni fel a szintaktikai elemző felé.
A program írása során a saját programozási elemeinknek nevet, azonosítót adunk. Később a program szövegében ezen azonosítóval hivatkozhatunk a megfelelő programozási elemre.
Ilyen programozási elem lehet:
- saját típus
- változó
- függvény
- konstans
- címke
- stb.
Mindig nagyon izgalmas kérdés, hogy egy adott programozási nyelven milyen maximális hosszúságú azonosítókat lehet használni, illetve a kis-, és nagybetűk különbözőnek számítanak-e.
A C nyelvben az azonosítók hossza nincs korlátozva, de néhány fordító mégis 32 karakterig hajlandó azokat csak feldogozni.
A C nyelv minden fordítója különböző karaktereknek tekinti a kis-, és nagybetűket (case-sensitive nyelv).
A címke a program szövegén belül valamely utasítást azonosít. Leggyakrabban akkor használunk címkéket, amikor ugró utasítást programozunk. Ekkor címkével azonosítjuk azt a pontot a program szövegén belül, ahova a vezérlést át kívánjuk helyezni (ugrani akarunk).
A megjegyzések a forráskódban a fordítóprogram szempontjából érdektelen részek, melyeket figyelmen kívül hagy.
Ugyanakkor a megjegyzések segítségével a programozó saját magának tud az adott kódrészben üzeneteket, figyelmeztetéseket elhelyezni. Ezek igen hasznosak, ha az adott programkódot később újra meg kell érteni, esetleg módosítani szükséges.
A literálok a programkódban található direkt formában beírt adatok. Ilyen literálok például a 12, a -24.5, vagy az ”alma” szöveg.
A literálok hasonlítanak a konstans fogalmára, de a konstansoknak nevük is van, a literáloknak pedig nincs.
A literáloknak mindig van típusuk, amelyet a fordítóprogram a literál alakjából automatikusan (implicit módon) határoz meg.
A karakter literálok például a C-ben mindig aposztrófok között szerepelnek, pl. ’a’.
A string literálok idézőjelek közé vannak zárva, pl. ”alma”.
Az egész szám literálok tízes számrendszerbeli számok, pl. -423.
A lebegőpontos (tört) számokban tizedespont szerepel, pl. 3.1415.
A foglalt szavak olyan kulcsszavak, melyeknek a fordítóprogram tulajdonít jelentést, és emiatt saját elemeink azonosítására nem használhatók fel, jelentésük nem bírálható felül.
A C nyelvben foglalt szó például a do, while, if, int, static, enum, new, for stb. szavak.