Ausdruck (Informatik)

Im Informatik, ein Ausdruck ist ein syntaktisch Entität in a Programmiersprache Dies kann bewertet werden, um ihren Wert zu bestimmen.[1] Es ist eine Kombination aus einer oder mehrerer Konstanten, Variablen, Funktionen, und Betreiber dass die Programmiersprache (gemäß ihrer Besonderheit interpretiert Vorrangregeln und von Verband) und berechnet, um zu produzieren ("zurückkehren", in a Staatsbürgerlich Umgebung) ein anderer Wert. Dieser Prozess für Mathematische Ausdrücke, wird genannt Auswertung.

In einfachen Einstellungen die resultierender Wert ist normalerweise einer von verschiedenen primitive Typenwie numerisch, Saite, Boolesche, Komplexer Datentyp oder andere Typen.

Ausdruck wird oft im Gegensatz zu stehen Aussage- Eine syntaktische Einheit, die keinen Wert hat (eine Anweisung).

Beispiele

Zum Beispiel, 2 + 3 ist sowohl ein arithmetischer als auch ein Programmierausdruck, der bewertet 5. Eine Variable ist ein Ausdruck, weil sie einen Wert im Speicher bezeichnet, also y + 6 ist auch ein Ausdruck. Ein Beispiel für a relationaler Ausdruck ist 4 ≠ 4, was bewertet zu FALSCH.[2][3]

Leere als Ergebnistyp

Im C und die meisten C-abgeleiteten Sprachen, ein Aufruf einer Funktion mit a Leere Der Rückgabetyp ist ein gültiger Ausdruck des Typs Typ.[4] Werte der Typ -Leere können nicht verwendet werden, daher wird der Wert eines solchen Ausdrucks immer weggeworfen.

Nebenwirkungen und Eliminierung

In vielen Programmiersprachen eine Funktion und damit ein Ausdruck, der eine Funktion enthält Nebenwirkungen. Ein Ausdruck mit Nebenwirkungen hat normalerweise nicht die Eigenschaft von Referenztransparenz. In vielen Sprachen (z. B. C ++) können Ausdrücke mit einem Semikolon (Semikolon () beendet werden (;) Um den Ausdruck in einen Ausdruck zu verwandeln Aussage. Dies fordert die Implementierung auf, den Ausdruck nur für seine Nebenwirkungen zu bewerten und das Ergebnis des Ausdrucks zu ignorieren (z. x+1;) Es sei denn, es ist Teil einer Expressionserklärung, die Nebenwirkungen induziert (z. y=x+1; oder func1(func2());).

Vorbehalte

Beachten Sie, dass der formale Begriff eines Nebeneffekts eine Änderung des abstrakten Zustands des laufenden Programms ist.

Eine weitere Klasse von Nebenwirkungen sind Änderungen des konkreten Zustands des Computersystems, z. B. das Laden von Daten in Cache -Erinnerungen. Sprachen, die oft als "Nebenwirkung - frei" bezeichnet werden Seitenkanalangriffe.

Darüber hinaus ist die verstrichene Zeit, die einen Ausdruck bewertet (sogar einen ohne andere offensichtliche Nebenwirkungen), manchmal für den korrekten Betrieb eines Systems wichtig es interagiert und könnte sogar als die angesehen werden primär Effekt wie bei der Ausführung Benchmark -Test.

Es hängt von der jeweiligen Programmiersprachspezifikation ab, ob ein Ausdruck ohne abstrakte Nebenwirkungen kann legal beseitigt werden aus dem Ausführungspfad durch die Verarbeitungsumgebung, in der der Ausdruck bewertet wird.

Siehe auch

Verweise

  1. ^ Mitchell, J. (2002). Konzepte in Programmiersprachen. Cambridge: Cambridge University Press, 3.4.1 Aussagen und Ausdrücke, p. 26
  2. ^ JavaScript -Ausdrücke, Mozilla Zugriff am 6. Juli 2009
  3. ^ Programmierung in c Archiviert 2015-01-09 bei der Wayback -Maschine Zugriff am 6. Juli 2009
  4. ^ ISO/IEC 9899: 1999 Abschnitt 6.3.2.2, abgerufen am 31. August 2009

Externe Links

  • Dieser Artikel basiert auf Material, das von entnommen wurde Ausdruck Bei der Kostenloses Online-Wörterbuch des Computers vor dem 1. November 2008 und unter den "Relicensing" -Beurang der "Relicensing" aufgenommen GFDL, Version 1.3 oder höher.