Fordítás
A Pascal nyelvű programot a processzor nem tudja értelmezni, illetve végrehajtani, ezért azt le kell fordítani gépi kódra. A Free Pascal intergált fejlesztői környezete tartalmazza a fordítót is, a fordítást a Compile menü Compile menüpontjával lehet végrehajtani. A művelet végrehajtható a Make és a Build menüpontokkal is. A különbség csak saját Unit-okat is tartalmazó programok esetében van.
Az a művelet, amely során a fordítóprogram a forráskódot tárgykóddá (gépi kóddá), vagy esetenként más magas szintű nyelven megírt forráskóddá fordítja.
Futtatás
A fordítás során elkészül a gépi kódú program, de nem indul el automatikusan. Ha el is akarjuk indítani a programunkat, akkor válasszuk a Run menü Run parancsát vagy a Ctrl-F9 billentyűkombinációt.
Hibaüzenetek
A fordítóprogram csak szintaktikailag helyes forráskódot tud lefordítani. Ha a fordításkor valamilyen szintaktikai hibát talál a programunkban, akkor hibaüzenettel leáll. A Free Pascal fordítója a szintaktikai hibák közül csak a legelsőig jut el. Ennek helyét kiírja a képernyőre, és a fordítás leáll. Léteznek olyan fordítóprogramok (pl. egyes C fordítók), melyek a forráskód összes szintaktikai hibáját összegyűjtik fordításkor és egy hibalistát adnak a programozónak.
A Free Pascal fordítója csak szintaktikai hibákat képes felfedezni, a szemantikai hibák csak futásidőben derül(het)nek ki.
A fordítóprogram vagy a futtató rendszer jelzése a programozó számára, melyből megtudhatja a fordításkor vagy futásidőben bekövetkezett hibák minőségét (fajtáját, jellegét), fordításkor a hiba helyét, esetleg futásidőben a hiba okát. A fordítóprogram leginkább szintaktikai hibákat talál és jelez a programozó számára, de egyes fordítóprogramok képesek bizonyos jellegű szemantikai hibák felfedésére is, pl. deklaráltunk egy változót, amelyet nem használunk semmire a programban.
Töréspont elhelyezése a forráskódban
A szemantikai hibák feltárásának egyik lehetősége, hogy a forráskódban töréspontokat helyezhetünk el. Fordításkor a teljes forráskódot gépi kódra fordítja a fordító, de futtatáskor a törésponttal megjelölt utasításhoz érve a program leáll. Ennek az a haszna, hogy ilyenkor megvizsgálhatjuk a program változóinak aktuális értékeit, és ebből sokféle hiba okára tudunk következtetni.
Töréspontot a forráskódban a Debug menü Breakpoint menüpontjával tudunk elhelyezni. A programban elhelyezett töréspontokról a Debug menü Breakpoint list menüpontjának választásával kaphatunk több információt. Ugyanezt a menüpontot választva törölhetünk egy korábban beszúrt töréspontot.
Az IDE eszköze, melynek segítségével a forráskód egy sorát megjelölhetjük. Fordítás után, futtatáskor a program végrehajtása ennél az utasításnál befejeződik, így a programozó megvizsgálhatja a program környezetének aktuális állapotát (pl. a változók értékeit) és így könnyebben fedezheti fel a programban megbúvó szemantikai hibákat. A töréspont szerepe tehát teszteléskor és hibakereséskor a legnagyobb.
Futtatás lépésről lépésre
A szemantikai hibák feltárása gyakran nem valósítható meg csupán töréspont beszúrásával, mivel a hibák egy része nem köthető egyetlen utasítás hibás működéséhez. Ha egy alprogram, vagy ciklus stb. egészének működését akarjuk tesztelés céljából vizsgálni, akkor használjuk a Run menü Step over és Trace into menüpontjait. Ezek kiválasztásával a program soron következő utasítását hajtjuk végre, és az eredményt (képernyőkép, változók aktuális értéke, stb.) rögtön meg tudjuk vizsgálni.
A két parancs között az a különbség, hogy a Step over menüparancs választásával a program saját eljárásait úgy hajthatjuk végre, mint a Pascal nyelv saját utasításait, míg a Trace into kiválasztásával, ha az aktuális parancs egy saját eljárás vagy függvény, annak törzsébe is belépünk és azon belül is lépésről-lépésre követhetjük a futást.
Változók értékének nyomonkövetése
Akár törésponttal állítottuk le a programunk futását, akár lépésről-lépésre hajtjuk végre az utasításokat, a változók értékének nyomonkövetése gyakori tesztelési eszköz. Erre szolgál a Debug menü Add watch parancsa, mely kiválasztásával egy változó nevét adhatjuk meg, melynek aktuális értékét ezután nyomon tudjuk követni. A Debug menü Watches menüpontjának kiválasztása után a listába felvett változók aktuális értéke látható.