Moduły są podstawą programowania modularnego i służą przede wszystkim do grupowania procedur i funkcji w biblioteki, a także do dzielenia dużych programów na powiązane logicznie części. Moduł nie stanowi samoistnego programu a jego użycie w programie wymaga deklaracji (USES). Po zadeklarowaniu modułu w danym programie dostępna jest każda procedura i funkcja zdefiniowana w danym module, jak również zadeklarowane w nim stałe, typy i zmienne. Uruchomienie skompilowanego programu zawierającego deklaracje modułu wymaga, aby moduł taki był również wcześniej skompilowany.
Dokładna postać modułu jest następująca:
UNIT Nazwa_modułu;INTERFACE
{Początek części opisowej modułu}
Deklaracje_modułów;
Definicje_literałów;
Definicje_typów;
Deklaracje_zmiennych;
Lista_nagłówków_procedur_i_funkcji;
{Koniec części opisowej modułu i początek części implementacyjnej}
IMPLEMENTATION
Deklaracje_etykiet;
Deklaracje_literałów;
Definicje_typów;
Deklaracje_zmiennych;
Definicje_funkcji_i_procedur_wewnętrznych;
Definicje_funkcji_i_procedur; {których nagłówki podano w części opisowej}
{Koniec części implementacyjnej}
END.{Część inicjująca modułu}
Część inicjująca modułu może być także instrukcją złożoną, która będzie wykonywana w celu zainicjowania modułu. Nazwa modułu jest identyfikatorem wykorzystywanym do deklaracji danego modułu w programie lub innym module - nazwa ta musi być unikatowa.