Deklaration (Programmierung)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

In der Informatik und Programmierung ist eine Deklaration die Festlegung von Dimension, Bezeichner, Datentyp und weiteren Aspekten einer Variablen oder eines Unterprogramms. Durch die Deklaration wird dem Übersetzer (Compiler oder Interpreter) diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit möglich, diese an anderen Stellen im selben Quelltext zu verwenden.

Häufig werden die Ausdrücke Deklaration und Definition mit der allgemeinen Bedeutung „Daten/Datenstrukturen/Datentypen festlegen/beschreiben“ als Synonyme verwendet. Beispiele siehe „eigene Datentypen definieren“ in [1], „definierte Variable“ in [2] oder „definieren einer Klasse“ in Klasse.

Programmiersprachenabhängig werden diese Begriffe jedoch zum Teil auch unterschiedlich verwendet. So werden zum Beispiel in Haskell per Deklaration auch Funktionen spezifiziert,[1] in den Programmiersprachen C++ und C wird dies 'Definition' genannt.[2] ‚Definition‘ wird dabei als Sonderfall der Deklaration verstanden. Bei Variablen spricht man von Definition, wenn der Übersetzer Code erzeugt, der entweder statisch (im Datensegment) oder dynamisch (zur Laufzeit) Speicherplatz für diese Variable reserviert. Bei Unterprogrammen spricht man von Definition, wenn an dieser Stelle der Quelltext des Unterprogramms angegeben ist. Die Deklaration eines Unterprogramms ohne Definition wird auch oft als Prototyp bezeichnet.

Bei der Referenzierung einer deklarierten (nicht definierten) Variable bzw. Unterprogrammes überprüft der Linker, dass die Variable bzw. das Unterprogramm an anderer Stelle definiert wurde und verknüpft die Referenzen mit der Definition.

Erst nach der Deklaration kann einer Variablen ein Ausdruck zugewiesen werden. Neben der expliziten Deklaration gibt es in einigen Programmiersprachen (z. B. Fortran, BASIC, PL/I) aber auch die Möglichkeit einer impliziten Deklaration von Variablen: In diesem Fall führt das erste Auftreten einer Variablen zu einer automatischen Typzuordnung.

Beispiele[Bearbeiten]

Das folgende Beispiel in der Programmiersprache C deklariert und definiert die Variable x mit dem Datentyp int.

  int x;

Im nächsten Beispiel bewirkt das Schlüsselwort extern, dass die Variable y nur deklariert, aber nicht definiert wird. Die Definition muss an einer anderen Stelle in derselben oder einer anderen Quelltext-Datei erfolgen.

  extern int y;

Das dritte Beispiel deklariert das Unterprogramm example1, ohne es zu definieren. Es besteht lediglich aus dem sogenannten Funktionskopf (Funktionsprototyp, oder auch Signatur des Unterprogramms).

  int example1(char *c);

Im nächsten Beispiel wird das Unterprogramm example2 deklariert und definiert. In geschweiften Klammern steht der sogenannte Funktionskörper oder Funktionsrumpf, der den Quelltext des Unterprogramms enthält.

  int example2(int a, int b)
  {
    return a * b;
  }

Im folgenden Codebeispiel werden in der Programmiersprache Cobol die Variablen einer ‚Tabelle‘ – einer Datenstruktur vom Typ 'Array' – definiert/deklariert. Diese sind mit für das jeweilige Datenformat geeigneten Anweisungen sowie einem sogenannten ‚Index‘ (dessen Inhalt meist innerhalb einer Schleife gesetzt und kontrolliert wird) anzusprechen:

* Im Datenteil des Programms:    (mit '*' beginnende Anweisungen/Texte gelten als Kommentare)
01 TAB_PRODUKT.                       ** Die gesamte Datenstruktur:
   02 PRODUKT    OCCURS 100.           * Daten für 1 Produkt; die Struktur kann 100 mal auftreten
      03 NUMMER    PIC 9(5)            * Numerisch 5 Stellen
      03 NAME      PIC X(25).          * Alphanumerisch 25 Stellen
      03 PREIS     PIC 9(5)V99 Comp-3. * Numerisch-gepackt 5 Stellen + 2 Dezimalstellen (4 Bytes)
* Im Befehlsteil des Programms:       ** Summieren des Preises aller vorhandenen Produkte 
  IF NUMMER (INDEX) <> 0               * Null bedeutet (hier im Beispiel) 'nicht belegt'         
     ADD PREIS (INDEX) TO SUMME_PREIS  
  ELSE ...

Weblinks und Literatur[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. a b CGI-Programmierung mit Haskell [1]
  2. a b Uni Magdeburg Grundlagen der Informatik ... [2] (PDF; 117 kB)