Wynika to z budowy języków Pascal i Object Pascal, które nie używają plików nagłówkowych, natomiast instrukcje dołączania plików bibliotecznych są częścią składni języka (słowo kluczowe: uses). Języki te obsługują również stałe w przeciwieństwie do języka C, który ich nie obsługuje (pojawiły się one dopiero w C++, w języku C zamiast nich stosuje się ciągi znaków zamieniane przez preprocesor, tzw. pseudostałe). Ponadto języki Pascal i Object Pascal nie obsługują makr preprocesora, jako że ich użyteczność jest niewielka. Zamiast nich stosowane są funkcje/procedury opatrzone klauzulą inline.

W języku C# istnieje preprocesor i jest on częścią kompilatora. Jednak w odróżnieniu od preprocesora języków C i C++ jest on podobny w działaniu do dyrektyw kompilatora używanych w języku Object Pascal. Oczywiście lista dyrektyw preprocesora języka C# różni się od listy dyrektyw kompilatora języka Object Pascal.

Najważniejszą (ale nie jedyną) rolą dyrektyw kompilatorów języków Pascal i Object Pascal oraz dyrektyw preprocesora języka C# jest kompilacja warunkowa.