Teilweise Einschätzung

: Mit der teilweisen Anwendung nicht verwirrt zu sein.

In der Computerwissenschaft ist teilweise Einschätzung eine Technik für mehrere verschiedene Typen der Programm-Optimierung durch die Spezialisierung. Die aufrichtigste Anwendung soll neue Programme erzeugen, die schneller laufen als die Originale, während sie versichert werden, sich ebenso zu benehmen. Fortgeschrittenerer Gebrauch schließt das Kompilieren durch das teilweise Auswerten eines Dolmetschers mit dem als sein Eingang zu kompilierenden Programm ein; das Erzeugen von Bearbeitern durch das teilweise Auswerten eines teilweisen Schätzers mit einem Dolmetscher für die als sein Eingang betroffene Quellsprache; und schließlich einen Bearbeiter-Generator durch das teilweise Auswerten eines teilweisen Schätzers mit sich als sein Eingang erzeugend.

Ein Computerprogramm, prog, wird gesehen als, von Eingangsdaten in Produktionsdaten kartografisch darzustellen:

:

, die statischen Daten, ist der Teil der Eingangsdaten bekannt während der Übersetzung.

Der teilweise Schätzer gestaltet um

in durch die Vorcomputerwissenschaft des ganzen statischen Eingangs während der Übersetzung. wird das "restliche Programm" genannt und sollte effizienter laufen als das ursprüngliche Programm. Die Tat der teilweisen Einschätzung wird "residualize" dazu gesagt.

Vorsprünge von Futamura

Ein besonders interessantes Beispiel davon, zuerst beschrieben in den 1970er Jahren von Yoshihiko Futamura, ist, wenn prog ein Dolmetscher für eine Programmiersprache ist.

Wenn ich Quellcode bin, der entworfen ist, um zu laufen, innen hat Dolmetscher gesagt, dann wird die teilweise Einschätzung des Dolmetschers in Bezug darauf Daten/Programm erzeugen prog *, eine Version des Dolmetschers, der nur diesen Quellcode führt, auf der Durchführungssprache des Dolmetschers geschrieben, verlangt nicht, dass der Quellcode wiedergeliefert wird, und läuft schneller als die ursprüngliche Kombination des Dolmetschers und der Quelle. In diesem Fall ist prog* effektiv eine kompilierte Version von mir.

Diese Technik ist als der erste Vorsprung von Futamura bekannt, von dem es drei gibt:

  1. Die Spezialisierung eines Dolmetschers für den gegebenen Quellcode, das Nachgeben eines rechtskräftigen
  2. Die Spezialisierung des specializer für den Dolmetscher (wie angewandt, in #1), das Nachgeben eines Bearbeiters
  3. Die Spezialisierung des specializer für sich (wie angewandt, in #2), das Nachgeben eines Werkzeugs, das jeden Dolmetscher zu einem gleichwertigen Bearbeiter umwandeln kann

Siehe auch

  • Laufzeitalgorithmus-Spezialisierung
  • Memoization
  • Die Kraft-Verminderung
  • Lehrsatz von Smn
  • Schablone metaprogramming
  • PyPy
  • Yoshihiko Futamura, http://www.brics.dk/~hosc/local/HOSC-12-4-pp381-391.pdf teilweise Einschätzung des Berechnungsprozesses - eine Annäherung an einen Bearbeiter-Bearbeiter

Außenverbindungen


Reihe 1 Netz / Eifrige Einschätzung
Impressum & Datenschutz