12. Deforestation und partielle Auswertung:


Deforestation ist eine andere Programmtransformationstechnik. Sie entspricht einer Automatisierung der Fold/Unfold Methode. Hier wird versucht, durch eine geeignete Anwendung von Programmtransformationsregeln, neue Programme mit einer größeren Funktionalität zu erhalten. Dieses wird wie bei der partiellen Auswertung durch eine Zielregel erreicht, die dann weiter verarbeitet wird. Bei der Deforestation brauchen durch die Zielregel keine Variablen eingefroren zu werden. Bei der Zielregel geht es vielmehr darum, eine neue Programmfunktion durch Verkettung von bereits bekannten Funktionen zu bekommen. Bei der partiellen Auswertung können zwar auch Verkettungen von Funktionen auf der rechten Seite der Zielfunktion stehen, aber diese Verkettungen müssen zwingend konstante Argumente haben, was bei Deforestation nicht der Fall sein muß. Zusammenfassend kann man sagen, daß sich die Ziele der partiellen Auswertung und der Deforestation unterscheiden. Bei der partiellen Auswertung wird versucht, eine Effizienzverbesserung der Programme durch Spezialisierung zu erreichen, und bei der Deforestation sollen neue Programmfunktionen geschaffen werden.