Anweisung (Programmierung)
Als Anweisung oder Statement (aus {{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}} entlehnt)<ref>Statement – Duden, Bibliographisches Institut; 2016.</ref> 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,<ref>Befehl – Duden, Bibliographisches Institut; 2016.</ref> Instruktion (aus englisch {{#invoke:Vorlage:lang|flat}})<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20161222052903
| {{#ifeq: 20161222052903 | *
| {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20161222052903}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20161222052903}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }} ({{#if: {{#if: | | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: instruction | {{#invoke:WLink|getEscapedTitle|instruction}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20161222052903|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|https://www.duden.de/woerterbuch/englisch-deutsch/instruction}}
|| {{#if: || }}
}}{{#if: instruction
| {{#if: {{#invoke:WLink|isBracketedLink|instruction}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|https://www.duden.de/woerterbuch/englisch-deutsch/instruction%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|https://www.duden.de/woerterbuch/englisch-deutsch/instruction%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/instruction }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} (englisch-deutsch) – Duden, Langenscheidt; 2015.</ref> oder Kommando (aus englisch {{#invoke:Vorlage:lang|flat}})<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20161222052906
| {{#ifeq: 20161222052906 | *
| {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20161222052906}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20161222052906}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }} ({{#if: {{#if: | | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: command | {{#invoke:WLink|getEscapedTitle|command}} | {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20161222052906|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|https://www.duden.de/woerterbuch/englisch-deutsch/command}}
|| {{#if: || }}
}}{{#if: command
| {{#if: {{#invoke:WLink|isBracketedLink|command}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|https://www.duden.de/woerterbuch/englisch-deutsch/command%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|https://www.duden.de/woerterbuch/englisch-deutsch/command%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|https://www.duden.de/woerterbuch/englisch-deutsch/command }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} (englisch-deutsch) – Duden, Langenscheidt; 2015.</ref> 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-Anweisung | MOV AX,BX
|
| Assertion | assert(ptr != NULL);
|
| Bedingte Anweisung | if A > 3 then WRITELN(A) else WRITELN("NOT YET") end
|
| Block | begin WRITE('Number? '); READLN(NUMBER); end
|
| Deklaration | VAR A:INTEGER;
|
| Do-while-Schleife | do computation(&i); while (i < 10);
|
| For-Schleife | for A:=1 to 10 do WRITELN(A) end;
|
| GOTO-Anweisung | goto 1;
|
| Initialisierung | TYPE SALARY = INTEGER; oder long i = 0;
|
| Return-Anweisung | return 5;
|
| Switch-Case-Anweisung | switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
|
| Unterprogrammaufruf | CLEARSCREEN();
|
| While-do-Schleife | while NOT EOF DO begin READLN end;
|
| Zuweisung | A := 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
- James Gosling, Bill Joy, Guy Steele, Gilad Bracha: The Java Language Specification, Third Edition. (PDF; 6,2 MB) Addison-Wesley, Upper Saddle River 2005, ISBN 0-321-24678-0
- 6. Expressions. The Python Language Reference.
Einzelnachweise
<references />
{{#ifeq: s | p | | {{#if: 4458688-7 | |
}} }}{{#ifeq:||{{#if: | [[Kategorie:Wikipedia:GND fehlt {{#invoke:Str|left|{{{GNDCheck}}}|7}}]] }}{{#if: | {{#if: | | }} }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#ifeq: s | p | {{#if: 4458688-7 | | {{#if: {{#statements:P227}} | | }} }} }}{{#ifeq: s | p | {{#if: 4458688-7 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P227}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P244}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P244}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P214}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P214}} | | }} }} }} }}Vorlage:Wikidata-Registrierung
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Wikipedia:GND fehlt
- Wikipedia:Normdaten-TYP falsch oder fehlend
- Wikipedia:GND in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:GND in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:LCCN in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:LCCN in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:VIAF in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:VIAF in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Programmierung
- Programmiersprachelement