Terminator – element składni w określonym języku programowania, kończący w kodzie źródłowym określoną jednostkę kodu, taką jak: instrukcja, moduł, program, pakiet, podprogram itd.
Terminator w kodzie źródłowym pełni więc rolę ogranicznika zamykającego w tekście kolejne jednostki – zdania języka programowania. Użycie takiego elementu jest niezbędne, w celu umożliwienia podziału tekstu kodu źródłowego na konkretne, ustalone w składni danego języka, części – zdania, mające określone znaczenie (interpretację) w danym języku. Obrazowo, w uproszczeniu, można więc terminator porównać do znaku interpunkcyjnego – kropki kończącej zdanie, w języku naturalnym.
Oprócz swej podstawowej funkcji, terminator może pełnić równocześnie rolę separatora jednostek leksykalnych.
W językach programowania, w zależności od przyjętej konwencji, stosuje się oprócz terminatorów, także separatory instrukcji. Te ostatnie, w odróżnieniu od terminatorów, jedynie rozdzielają kolejne, następujące po sobie instrukcje. Ostatnią instrukcję w ciągu instrukcji zawartych w danym bloku nie trzeba więc, w przeciwieństwie do terminatora, zamykać separatorem. Co więcej, użycie separatora za taką ostatnią instrukcją jest najczęściej traktowane jak utworzenie instrukcji pustej. Różnicę pomiędzy terminatorem a separatorem obrazuje poniższy przykład:
Język Pascal – separator instrukcji | Język C – terminator instrukcji |
---|---|
begin
if a<0 then
write('ujemna')
else
write('nieujemna');
a:=0
end
|
{
if (a<0)
printf("ujemna");
else
printf("nieujemna");
a=0;
}
|
W powyższym porównaniu widać separator (język Pascal) i terminator (język C), w tym konkretnym przypadku zapisywany jest za pomocą tego samego symbolu: średnik ";". W języku C, w którym stosuje się terminator instrukcji wymagane jest użycie terminatora po instrukcji wywołania funkcji printf
przed słowem else
i przed ogranicznikiem kończącym blok "}".
Z pracą (1) można podać, że zasada, iż każda jednostka wymaga użycia określonego terminatora, jest znacznie bardziej jednoznaczna, co skutkuje mniejszą liczbą błędów w kodzie.
język programowania | terminatory | przykłady |
---|---|---|
Język C |
; /* średnik */
} /* nawias klamrowy zamykający */
|
{
int a=0;
printf("a=%d",a);
}
|
Pascal |
; {średnik}
. {kropka}
|
program a1;
const C1=1;
var a:=C1;
begin
write(a)
end.
|
PL/I | ; /* średnik */ |
A=0;
DO I=1 TO 10;
A=A+1;
END;
|
Python | # Zmniejszenie wcięcia |
a = 0
for i in data:
a += i
print(a)
|