In computing, memoization is an optimization technique used primarily to speed up computer programs by having function calls avoid repeating the calculation of results for previously-processed inputs. Memoization has also been used in other contexts (and for other purposes other than speed gains), such as in simple mutually-recursive descent parsing by Norvig, in a general top-down parsing algorithm by Frost, Hafiz and Callaghan that accommodates ambiguity and left-recursion in polynomial time and space. Although related to caching, memoization refers to a specific case of this optimization, distinguishing it from forms of caching such as buffering or page replacement.
Reference:
http://en.wikipedia.org/wiki/Memoization
Reference:
http://en.wikipedia.org/wiki/Memoization