Att känna till storleken på de termer till vilka programvariabler är bundna vid run-time i logiska program krävs i en klass av optimeringar som inkluderar granularity kontroll och recursion eliminering. En sådan storlek är svår att till och med approxima vid kompileringstidpunkten och beräknas därför i allmänhet i körtid genom att använda (eventuellt fördefinierade) predikat som passerar de berörda termerna. Vi föreslår en teknik som har potential att utföra denna beräkning mycket effektivare. Tekniken bygger på att hitta programprocedurer som kallas före dem där kunskap om termstorlekar behövs och som går igenom termer vars storlek ska bestämmas, och omvandla sådana procedurer så att de beräknar termstorlekar "på flykt". Vi presenterar ett systematiskt sätt att avgöra om ett givet program kan omvandlas för att beräkna en given term storlek vid en given programpunkt utan ytterligare term traversal. Dessutom, om flera sådana omvandlingar är möjliga vår strategi gör det möjligt att hitta minimala omvandlingar under vissa kriterier. Vi diskuterar också fördelarna och tillämpningen av vår teknik (särskilt i uppgiften att granularitetskontroll) och presenterar några resultat.
En teknik för att minska kostnaden för att beräkna termen storlek föreslås i REF.
Efficient Term Size Computation for Granularity Control
{'venue': 'ICLP', 'journal': None, 'mag_field_of_study': ['Computer Science']}