Strikte Auswertung

Strikte Auswertung

Auswertung (engl. evaluation als Beschreibung, Analyse und Bewertung) bezeichnet in der Informatik den Vorgang, der einem Ausdruck (eventuell in einem gegebenen Kontext von Variablenbindungen) einen Wert zuordnet.

Programmiersprachen sind nach ihrer Auswertungsstrategie unterscheidbar:

  • Bei strenger Auswertung oder strikter Auswertung (engl. eager bzw. strict evaluation) werden Ausdrücke sofort ausgewertet. Z. B. bei der Berechnung einer Funktion werden bei strikter Auswertung erst die Argumentausdrücke ausgewertet, bevor der Funktionsrumpf ausgewertet wird.
  • Dem gegenüber steht die Bedarfsauswertung oder verzögerte Auswertung (engl. Lazy Evaluation), bei der Ausdrücke erst ausgewertet werden, wenn deren Wert in einer Berechnung benötigt wird. Dadurch lassen sich z. B. unendlich große Datenstrukturen (z. B. die Liste aller natürlicher Zahlen, die Liste aller Primzahlen, usw.) definieren und bestimmte Algorithmen vereinfachen sich. Diese Datenstrukturen bezeichnet man als Ströme (engl. streams).

Manche Berechnungen lassen sich mit strenger Auswertung, andere mit Bedarfsauswertung effizienter ausführen.

Bei der Auswertung von Funktionen mit mehreren Argumenten besteht ein weiterer Freiheitsgrad darin, in welcher Reihenfolge die Argumente ausgewertet werden. In der Theoretischen Informatik (Lambda-Kalkül) wird formal gezeigt, dass die Reihenfolge der Auswertung keine Rolle spielt, was den berechneten Wert eines Ausdrucks angeht, so er denn ausgewertet werden kann; siehe auch Currying bzw. Schönfinkeln.

Die Anwendung der Funktion (bzw. Funktionsdefinition) auf ihre Argumente bezeichnet man auch als Applikation.

Eng verwandt mit dem Begriff der Auswertung ist der Begriff der Semantik, das ist eine Abbildung, die einem Programm (meistens ein Programmtext bzw. Quellcode) seine berechenbare Funktion zuordnet. Dieses stimmt mit der umgangssprachlichen Deutung des Begriffs Semantik als Bedeutungszuordnung gut überein.


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Strikte Funktion — In der Informatik heißt eine Funktion streng, wenn gilt: Ist eines der Argumente undefiniert ( , bottom), so ist das Funktionsresultat ebenfalls undefiniert. Beispiel In vielen Programmiersprachen ist es möglich, über nicht strenge Verknüpfungen… …   Deutsch Wikipedia

  • Funktionale Programmiersprache — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • Funktionale Programmierung — ist ein Programmierstil, bei dem Programme ausschließlich aus Funktionen bestehen. Dadurch werden die aus der imperativen Programmierung bekannten Nebenwirkungen vermieden. Die funktionale Programmierung entspringt der akademischen Forschung. In… …   Deutsch Wikipedia

  • Funktionionale Programmierung — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • ALGOL 60 — Die Programmiersprache Algol 60 wurde von 1958–1963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information… …   Deutsch Wikipedia

  • Algol 60 — Die Programmiersprache Algol 60 wurde 1958–1963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information… …   Deutsch Wikipedia

  • PASCAL — Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

  • Pascal (Programmiersprache) — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Typisierung: stark, statisch …   Deutsch Wikipedia

  • Programmiersprache Pascal — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

  • Eugenio Maria Giuseppe Giovanni Pacelli — Pius XII. (bürgerlicher Name Eugenio Maria Giuseppe Giovanni Pacelli, * 2. März 1876 in Rom; † 9. Oktober 1958 in Castel Gandolfo) war Papst von 1939 bis 1958. Da in seine Amtszeit der Holocaust fiel, ist seine Haltung dazu bis heute Thema… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”