Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Memoization
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Software programming optimization technique}} {{distinguish|Memorization}} In [[computing]], '''memoization''' or '''memoisation''' is an [[Optimization (computer science)|optimization]] technique used primarily to speed up [[computer programs]] by storing the results of expensive [[Subroutine|function calls]] to [[Pure_function|pure functions]] and returning the cached result when the same inputs occur again. Memoization has also been used in other contexts (and for purposes other than speed gains), such as in simple [[mutual recursion|mutually recursive]] descent parsing.<ref name="Norvig1991">{{cite journal |last=Norvig |first=Peter |title=Techniques for Automatic Memoization with Applications to Context-Free Parsing |journal=Computational Linguistics |volume=17 |issue=1 |pages=91β98 |year=1991 |url=https://dl.acm.org/doi/abs/10.5555/971738.971743 }}</ref> It is a type of [[Cache (computing)|caching]], distinct from other forms of caching such as [[Buffer (computer science)|buffering]] and [[Page replacement algorithm|page replacement]]. In the context of some [[logic programming]] languages, memoization is also known as [[tabling]].<ref>{{Cite journal |last=Warren |first=David S. |date=1992-03-01 |title=Memoing for logic programs |journal=Communications of the ACM |volume=35 |issue=3 |pages=93β111 |doi=10.1145/131295.131299 |issn=0001-0782|doi-access=free }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)