Lat beräkning

Från Wikipedia
Hoppa till navigering Hoppa till sök

Lat beräkning (engelska: lazy evaluation eller call-by-need), även selektiv evaluering, är en optimeringsteknik för kompilatorer eller vid programmering. Tekniken bygger på att beräkning inte utförs förrän resultatet behövs för andra beräkningar.[1][2]

Motsatsen till lat beräkning är ivrig beräkning (eager evaluation), även kallat strikt beräkning (strict evaluation).

Lat beräkning kan ge kortare beräkningstider genom att undvika beräkningar som inte behövs, och ger en möjlighet att hantera potentiellt obegränsade datastrukturer, men kan också ge en oförutsägbarhet i exekveringstid samt skapa minnesläckage.[3]

Historik[redigera | redigera wikitext]

Lat beräkning introducerades 1971 av Christopher Wadsworth i hans arbete med lambdakalkyl.[4] Det introducerades senare (oberoende av Wadsworth) i programmeringsspråk av Peter Henderson och James H. Morris(en)[5] samt Daniel P. Friedman(en) och David S. Wise.[6][7]

Referenser[redigera | redigera wikitext]

  1. ^ ”IT-ord - lat beräkning”. ComputerSweden. https://it-ord.idg.se/ord/lat-berakning/. Läst 17 januari 2020. 
  2. ^ ”Svensk Javaterminologi”. Stefan Nilsson, universitetslektor KTH. https://www.nada.kth.se/~snilsson/publications/Javaterminologi/. Läst 17 januari 2020. 
  3. ^ Edward Z. Yang. ”Inside 245-5D - Space leak zoo”. http://blog.ezyang.com/2011/05/space-leak-zoo/. Läst 17 januari 2020. 
  4. ^ Wadsworth 1971
  5. ^ Henderson & Morris 1976
  6. ^ Friedman & Wise 1976
  7. ^ Reynolds 1998, s. 312