A useful optimization technique called memoization that uses a dynamic programming approach to computation in which intermediate results are saved and later reused to avoid redundant work is presented. The application of this principle to Horn-clause programming is explored. The table in which the intermediate results of computation are saved is known as an extension table since the set of tuples that satisfy a predicate, its extension, is stored in the table. Because of the nondeterminism in logic programming, an extension-table facility improves the termination and completeness characteristics of depth-first evaluation methods in the presence of recursion, and thus the consequences of memoizing in a relational system are much more far-reaching than in functional environments.
|Original language||English (US)|
|Title of host publication||Unknown Host Publication Title|
|Number of pages||9|
|State||Published - Dec 1 1987|
ASJC Scopus subject areas