Dyrektywy Kompilatora
Dyrektywy kompilatora to polecenia umieszczane w kodzie źródłowym, które informują translator o sposobie translacji. Nie są one częścią języka programowania, lecz jego standardu lub konkretnej implementacji.
Sposób zapisu
Dyrektywy muszą być zapisane w sposób umożliwiający ich odróżnienie od reszty kodu. Zwykle zapisuje się je w formie specjalnych komentarzy. Przykładowo w języku Pascal dyrektywy zapisuje się jako:
- {$dyrektywa}
- {$dyrektywa parametry}
- {$lista_dyrektyw_przełącznikowych}
W przypadku Pascal, pierwszy znak „$” odróżnia dyrektywę od zwykłego komentarza, co pozwala na łatwe pominięcie tych linii w przypadku braku obsługi dyrektyw w innej implementacji.
Rodzaje dyrektyw
Dyrektywy można podzielić na:
- Definiujące: Umożliwiają parametryzację kompilacji (np. DEFINE, UNDEF).
- Parametryczne: Przekazują informacje do translatora o środowisku kompilacji.
- Warunkowe: Umożliwiają kompilację określonych sekcji kodu w zależności od warunków (np. IFDEF, IFNDEF).
- Przełącznikowe: Ustalają sposób kompilacji dla różnych fragmentów kodu.
Podział dyrektyw
Dyrektywy dzielą się na:
- Globalne: Działają na całym kodzie, muszą być umieszczone na początku.
- Lokalne: Działają w określonym miejscu w kodzie i mogą być umieszczane w dowolnym miejscu.
Stałe
Definiowane są w celu parametryzacji kompilacji i mogą być tworzone przez programistę lub predefiniowane przez system programowania. Przykłady stałych predefiniowanych w Turbo Pascal to VER70, MSDOS, WINDOWS.
Dyrektywy a instrukcje
Niektóre polecenia w językach programowania mogą być traktowane jako instrukcje, mimo że w rzeczywistości pełnią rolę dyrektyw dla translatora, jak w przypadku Visual Basic.
Dyrektywy a parametry wywołania
Niektóre dyrektywy globalne mogą być zastąpione parametrami wywołania translatora, co jest szczególnie istotne w systemach konsolowych.
Dyrektywy a programy pomocnicze
Pewne pakiety programistyczne, takie jak Turbo Pascal, oferują programy pomocnicze, które wspierają proces kompilacji i mogą uwzględniać parametry wywołania.