Deforestation (computer science)

In the theory of programming languages in computer science, deforestation (also known as fusion) is a program transformation to eliminate intermediate lists or tree structures that are created and then immediately consumed by a program.The term "deforestation" was originally coined by Philip Wadler in his 1990 paper "Deforestation: transforming programs to eliminate trees".One particular algorithm for deforestation, shortcut deforestation,[2] is implemented in the Glasgow Haskell Compiler.[3] Deforestation is closely related to escape analysis.This programming-language-related article is a stub.
programming languagescomputer scienceprogram transformationtree structuresPhilip Wadlerfunctional programming languagesnon-strict programming languagesHaskellGlasgow Haskell Compilerescape analysisHylomorphism (computer science)Compiler optimizationsPeephole optimizationLocal value numberingLoop nest optimizationLoop splittingLoop unrollingLoop unswitchingSoftware pipeliningStrength reductionData-flowanalysisAvailable expressionCommon subexpression eliminationConstant foldingDead storeInduction variable recognition and eliminationLive-variable analysisUpwards exposed usesUse-define chainReaching definitionsGlobal value numberingSparse conditional constant propagationCode generationInstruction schedulingInstruction selectionRegister allocationRematerializationTail-call eliminationInterprocedural optimizationBounds-checking eliminationCompile-time function executionDead-code eliminationExpression templatesInline expansionJump threadingPartial evaluationProfile-guided optimizationAlias analysisArray-access analysisControl-flow analysisData-flow analysisDependence analysisPointer analysisShape analysisValue range analysisprogramming-language