Anweisung (Programmierung)

Als Anweisung oder Statement (aus englisch statement entlehnt)[1] wird in der Informatik im Bereich der Programmierung ein zentrales Element vieler imperativer Programmiersprachen bezeichnet. Die Programme derartiger Sprachen setzen sich hauptsächlich aus einer oder mehreren Anweisungen zusammen. Eine Anweisung stellt eine in der Syntax einer Programmiersprache formulierte einzelne Vorschrift dar, die im Rahmen der Abarbeitung des Programms auszuführen ist. Wie eine Anweisung syntaktisch auszusehen hat, wird durch die jeweilige Programmiersprache oder deren Spezifikation festgelegt und ist innerhalb eines Programms (üblicherweise) nicht änderbar.

In der maschinennahen Programmierung werden Anweisungen häufig auch als Befehl,[2] Instruktion (aus englisch instruction)[3] oder Kommando (aus englisch command)[4] bezeichnet.

Anweisungen sind üblicherweise Zuweisungen, Kontrollanweisungen (wie Sprünge, Schleifen und bedingte Anweisungen) und Prozeduraufrufe. Abhängig von der Programmiersprache sind teilweise auch Zusicherungen, Deklarationen, Klassen- und Funktionsdefinitionen Anweisungen.

Im Gegensatz zu Ausdrücken haben Anweisungen nicht immer einen Wert. Einige Anweisungen können jedoch auch Ausdrücke sein, so z. B. Zuweisungen, Inkrementoperatoren oder Funktionsaufrufe. Umgekehrt sind viele Ausdruckstypen wie etwa Vergleiche oder arithmetische Ausdrücke keine syntaktisch vollständigen Anweisungen.

Sequenzen von Anweisungen werden häufig in Blöcken zusammengefasst.

Beispiele

Assembler-AnweisungMOV AX,BX
Assertionassert(ptr != NULL);
Bedingte Anweisungif A > 3 then WRITELN(A) else WRITELN("NOT YET") end
Blockbegin WRITE('Number? '); READLN(NUMBER); end
DeklarationVAR A:INTEGER;
Do-while-Schleifedo computation(&i); while (i < 10);
For-Schleifefor A:=1 to 10 do WRITELN(A) end;
GOTO-Anweisunggoto 1;
InitialisierungTYPE SALARY = INTEGER; oder long i = 0;
Return-Anweisungreturn 5;
Switch-Case-Anweisungswitch (c) { case 'a': alert(); break; case 'q': quit(); break; }
UnterprogrammaufrufCLEARSCREEN();
While-do-Schleifewhile NOT EOF DO begin READLN end;
ZuweisungA := A + 1;

siehe auch Programmiersprachelemente

Syntax

Das Erscheinungsbild eines Programms ist vom Aussehen der Anweisungen geprägt. Daher werden Programmiersprachen oft nach der Art ihrer Anweisungen unterschieden (z. B. Sprachen mit geschweiften Klammern). Viele Anweisungen beginnen mit einem Bezeichner wie if, while oder repeat. Oft sind die Schlüsselwörter der Anweisungen reserviert, sodass sie nicht als Name einer Variable oder Funktion verwendet werden können. Imperative Programmiersprachen nutzen meist eine spezielle Syntax für ihre Anweisungen, welche sich deutlich von einem Funktionsaufruf unterscheidet. Verbreitete Methoden um die Syntax von Anweisungen zu beschreiben sind Backus-Naur-Form und Syntaxdiagramm.

Semantik

Semantisch differieren viele Anweisungen von Unterprogrammen durch die Behandlung ihrer Parameter. Normalerweise wird ein tatsächlicher Parameter vor dem Aufruf des Unterprogramms ausgewertet. Dies unterscheidet sich von den Parametern vieler Anweisungen, welche mehrmals (z. B. die Bedingung einer while-Schleife) oder gar nicht (z. B. der Rumpf einer while-Schleife) ausgewertet werden. Technisch gesehen sind solche Anweisungsparameter Closures, welche bei Bedarf ausgeführt werden (siehe auch Lazy Evaluation). Wenn Closure-Parameter für Unterprogramme verfügbar sind, kann das Verhalten einer Anweisung durch Unterprogramme implementiert werden (siehe Lisp). Für Sprachen ohne Closure-Parameter geht die semantische Beschreibung einer Schleife oder Bedingten Anweisung über die Fähigkeit der Sprache hinaus. Deswegen benutzen Spezifikationen oft semantische Beschreibungen in natürlicher Sprache.

Literatur

Einzelnachweise

  1. StatementDuden, Bibliographisches Institut; 2016.
  2. BefehlDuden, Bibliographisches Institut; 2016.
  3. instruction (Memento des Originals vom 22. Dezember 2016 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.duden.de (englisch-deutsch) – Duden, Langenscheidt; 2015.
  4. command (Memento des Originals vom 22. Dezember 2016 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.duden.de (englisch-deutsch) – Duden, Langenscheidt; 2015.