Using Automatic Memoization as a Software Engineering Tool in Real-World AI Systems
Links to Fileshttps://ebiquity.umbc.edu/paper/html/id/570/Using-Automatic-Memoization-as-a-Software-Engineering-Tool-in-Real-World-AI-Systems
MetadataShow full item record
Type of Work22 pages
conference papers and proceedings preprints
Citation of Original PublicationJames Mayfield, Tim Finin, and Marty Hall, Using Automatic Memoization as a Software Engineering Tool in Real-World AI Systems, Proceedings the 11th Conference on Artificial Intelligence for Applications , 1995, DOI: 10.1109/CAIA.1995.378786
RightsThis item is likely protected under Title 17 of the U.S. Copyright Law. Unless on a Creative Commons license, for uses protected by Copyright Law, contact the copyright holder or the author.
© 1995 IEEE
UMBC Ebiquity Research Group
Memo functions and memoization are well-known concepts in AI programming. They have been discussed since the sixties and are often used as examples in introductory programming texts. However, the automation of memoization as a practical software engineering tool for AI systems has not received a detailed treatment. This paper describes how automatic memoization can be made viable on a large scale. It points out advantages and uses of automatic memoization not previously described, identifies the components of an automatic memoization facility, enumerates potential memoization failures, and presents a publicly available memoization package (CLAMP) for the Lisp programming language. Experience in applying these techniques in the development of a large planning system is briefly discussed.