Instrukcja (informatyka)
Instrukcja – najmniejszy samodzielny element imperatywnego języka programowania. Instrukcja może być niskiego poziomu napisana w asemblerze np. mov ax,bx
, która po przetłumaczeniu na kod binarny (język maszynowy) nadaje się do uruchomienia przez procesor lub instrukcja wysokiego poziomu napisana np. w języku C: int a = 5;
, która zostanie przetłumaczona na kilka instrukcji niskiego poziomu. Program komputerowy jest tworzony jako lista różnych instrukcji. Instrukcja może zawierać wewnętrzne komponenty (np. wyrażenia).
Wiele języków programowania (np. C) w swojej syntaktyce rozróżnia instrukcje i definicje – instrukcja zawiera kod wykonywalny, a definicja deklarację identyfikatora. Można również wprowadzić podział na instrukcje proste i złożone – złożone mogą zawierać dowolne inne instrukcje jako komponenty.
Typologia
edytujGłówne rodzaje instrukcji z przykładami w typowych językach imperatywnych (w niektórych językach poniższe przykłady są uznawane za wyrażenia, nie instrukcje):
Instrukcje proste
edytujint a = a + 1;
CLEARSCREEN()
return 5;
goto 1
assert(ptr != NULL);
Instrukcje złożone
edytujbegin WRITE('Number? '); READLN(NUMBER); end
if A > 3 then WRITELN(A) else WRITELN("NOT YET") end
switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
while NOT EOF DO begin READLN end
Wyrażenia
edytujW większości języków instrukcje różnią się od wyrażeń tym, że niekoniecznie zwracają wyniki i mogą być wykonywane dla osiągnięcia określonych skutków ubocznych, podczas gdy wyrażenia zawsze zwracają wynik i zwykle nie powodują żadnych efektów ubocznych. Spośród imperatywnych języków programowania, Algol 68 jest jednym z niewielu, w którym wyrażenie może zwrócić wynikzaprzecza wcześniejszemu zdaniu[potrzebny przypis]. W językach, które łączą programowanie imperatywne z programowaniem funkcyjnym, takich jak dialekty Lispu, nie istnieje podział na wyrażenia i instrukcje: nawet wyrażenia wykonywane sekwencyjnie jedynie dla określonych skutków ubocznych, których zwracane wyniki nie są brane pod uwagę, wciąż są nazywane wyrażeniami. W językach czysto funkcyjnych nie ma instrukcji – wszystko jest wyrażeniem.
Języki programowania
edytujSkładnia i semantyka instrukcji jest zdefiniowana przez specyfikację języka programowania. Większość języków nie zezwala na tworzenie nowych instrukcji podczas wykonywania programu (jednym z wyjątków jest np. Snobol 4) lub modyfikację już stworzonych wyrażeń (Lisp jest językiem znanym ze swojego wsparcia dla samomodyfikującego się kodu).