94 relations: Algorithm, Ambiguity, Apache Groovy, Approximate computing, Artificial intelligence, Associative array, Backtracking, Big O notation, Bottom-up parsing, C++, Cache (computing), Camlp4, Cellular automaton, Closure (computer programming), Cognate, Combinatory logic, Common Lisp, Compile time, Compiler, Compiler-compiler, Computational complexity theory, Computer memory, Computer program, Computing, Context-free grammar, Cross-platform, CYK algorithm, Data buffer, Data structure, Director string, Donald Michie, Dynamic programming, Earley parser, Evaluation strategy, Factorial, First-class citizen, Flyweight pattern, Formal grammar, Formal language, Function object, Functional programming, Hashlife, Haskell (programming language), Higher-order function, Higher-Order Perl, Integer, Invariant (computer science), JavaScript, Latin, Lazy evaluation, ..., Left recursion, Logic programming, Lookup table, Lua (programming language), Machine-dependent software, Materialized view, Memorandum, Memorization, Mutual recursion, Natural language processing, Page replacement algorithm, Parse tree, Parser combinator, Parsing, Parsing expression grammar, Partial evaluation, Perl, Perl module, Peter Norvig, Polynomial, Program optimization, Programmer, Programming language, Pseudocode, Python (programming language), Racket (programming language), Recursion, Recursive descent parser, Referential transparency, Rewriting, Ruby (programming language), Run time (program lifecycle phase), Scheme (programming language), Software design pattern, Space–time tradeoff, Strength reduction, String (computer science), Subroutine, Syntactic predicate, This (computer programming), Thunk, Top-down parsing, Wolfram Mathematica, .NET Framework. Expand index (44 more) »
Algorithm
In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems.
New!!: Memoization and Algorithm · See more »
Ambiguity
Ambiguity is a type of meaning in which several interpretations are plausible.
New!!: Memoization and Ambiguity · See more »
Apache Groovy
Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform.
New!!: Memoization and Apache Groovy · See more »
Approximate computing
Approximate computing is a computation technique which returns a possibly inaccurate result rather than a guaranteed accurate result, and can be used for applications where an approximate result is sufficient for its purpose.
New!!: Memoization and Approximate computing · See more »
Artificial intelligence
Artificial intelligence (AI, also machine intelligence, MI) is intelligence demonstrated by machines, in contrast to the natural intelligence (NI) displayed by humans and other animals.
New!!: Memoization and Artificial intelligence · See more »
Associative array
In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection.
New!!: Memoization and Associative array · See more »
Backtracking
Backtracking is a general algorithm for finding all (or some) solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it determines that the candidate cannot possibly be completed to a valid solution.
New!!: Memoization and Backtracking · See more »
Big O notation
Big O notation is a mathematical notation that describes the limiting behaviour of a function when the argument tends towards a particular value or infinity.
New!!: Memoization and Big O notation · See more »
Bottom-up parsing
In computer science, parsing reveals the grammatical structure of linear input text, as a first step in working out its meaning.
New!!: Memoization and Bottom-up parsing · See more »
C++
C++ ("see plus plus") is a general-purpose programming language.
New!!: Memoization and C++ · See more »
Cache (computing)
In computing, a cache, is a hardware or software component that stores data so future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation, or the duplicate of data stored elsewhere.
New!!: Memoization and Cache (computing) · See more »
Camlp4
Camlp4 is a software system for writing extensible parsers for programming languages.
New!!: Memoization and Camlp4 · See more »
Cellular automaton
A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model studied in computer science, mathematics, physics, complexity science, theoretical biology and microstructure modeling.
New!!: Memoization and Cellular automaton · See more »
Closure (computer programming)
In programming languages, a closure (also lexical closure or function closure) is a technique for implementing lexically scoped name binding in a language with first-class functions.
New!!: Memoization and Closure (computer programming) · See more »
Cognate
In linguistics, cognates are words that have a common etymological origin.
New!!: Memoization and Cognate · See more »
Combinatory logic
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic.
New!!: Memoization and Combinatory logic · See more »
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).
New!!: Memoization and Common Lisp · See more »
Compile time
In computer science, compile time refers to either the operations performed by a compiler (the "compile-time operations"), programming language requirements that must be met by source code for it to be successfully compiled (the "compile-time requirements"), or properties of the program that can be reasoned about during compilation.
New!!: Memoization and Compile time · See more »
Compiler
A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).
New!!: Memoization and Compiler · See more »
Compiler-compiler
In computer science, a compiler-compiler or compiler generator is a programming tool that creates a parser, interpreter, or compiler from some form of formal description of a language and machine.
New!!: Memoization and Compiler-compiler · See more »
Computational complexity theory
Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other.
New!!: Memoization and Computational complexity theory · See more »
Computer memory
In computing, memory refers to the computer hardware integrated circuits that store information for immediate use in a computer; it is synonymous with the term "primary storage".
New!!: Memoization and Computer memory · See more »
Computer program
A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.
New!!: Memoization and Computer program · See more »
Computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computers.
New!!: Memoization and Computing · See more »
Context-free grammar
In formal language theory, a context-free grammar (CFG) is a certain type of formal grammar: a set of production rules that describe all possible strings in a given formal language.
New!!: Memoization and Context-free grammar · See more »
Cross-platform
In computing, cross-platform software (also multi-platform software or platform-independent software) is computer software that is implemented on multiple computing platforms.
New!!: Memoization and Cross-platform · See more »
CYK algorithm
In computer science, the Cocke–Younger–Kasami algorithm (alternatively called CYK, or CKY) is a parsing algorithm for context-free grammars, named after its inventors, John Cocke, Daniel Younger and Tadao Kasami.
New!!: Memoization and CYK algorithm · See more »
Data buffer
In computer science, a data buffer (or just buffer) is a region of a physical memory storage used to temporarily store data while it is being moved from one place to another.
New!!: Memoization and Data buffer · See more »
Data structure
In computer science, a data structure is a data organization and storage format that enables efficient access and modification.
New!!: Memoization and Data structure · See more »
Director string
In mathematics, in the area of lambda calculus and computation, directors or director strings are a mechanism for keeping track of the free variables in a term.
New!!: Memoization and Director string · See more »
Donald Michie
Donald Michie (11 November 1923 – 7 July 2007) was a British researcher in artificial intelligence.
New!!: Memoization and Donald Michie · See more »
Dynamic programming
Dynamic programming is both a mathematical optimization method and a computer programming method.
New!!: Memoization and Dynamic programming · See more »
Earley parser
In computer science, the Earley parser is an algorithm for parsing strings that belong to a given context-free language, though (depending on the variant) it may suffer problems with certain nullable grammars.
New!!: Memoization and Earley parser · See more »
Evaluation strategy
Evaluation strategies are used by programming languages to determine when to evaluate the argument(s) of a function call (for function, also read: operation, method, or relation) and what kind of value to pass to the function.
New!!: Memoization and Evaluation strategy · See more »
Factorial
In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example, The value of 0! is 1, according to the convention for an empty product.
New!!: Memoization and Factorial · See more »
First-class citizen
In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities.
New!!: Memoization and First-class citizen · See more »
Flyweight pattern
In computer programming, flyweight is a software design pattern.
New!!: Memoization and Flyweight pattern · See more »
Formal grammar
In formal language theory, a grammar (when the context is not given, often called a formal grammar for clarity) is a set of production rules for strings in a formal language.
New!!: Memoization and Formal grammar · See more »
Formal language
In mathematics, computer science, and linguistics, a formal language is a set of strings of symbols together with a set of rules that are specific to it.
New!!: Memoization and Formal language · See more »
Function object
In computer programming, a function object is a construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax (a function parameter that can also be a function).
New!!: Memoization and Function object · See more »
Functional programming
In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
New!!: Memoization and Functional programming · See more »
Hashlife
Hashlife is a memoized algorithm for computing the long-term fate of a given starting configuration in Conway's Game of Life and related cellular automata, much more quickly than would be possible using alternative algorithms that simulate each time step of each cell of the automaton.
New!!: Memoization and Hashlife · See more »
Haskell (programming language)
Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.
New!!: Memoization and Haskell (programming language) · See more »
Higher-order function
In mathematics and computer science, a higher-order function (also functional, functional form or functor) is a function that does at least one of the following.
New!!: Memoization and Higher-order function · See more »
Higher-Order Perl
Higher-Order Perl: Transforming Programs with Programs, is a book about the Perl programming language written by Mark Jason Dominus with the goal to teach Perl programmers with a strong C and Unix background how to use techniques with roots in functional programming languages like Lisp that are available in Perl as well.
New!!: Memoization and Higher-Order Perl · See more »
Integer
An integer (from the Latin ''integer'' meaning "whole")Integer 's first literal meaning in Latin is "untouched", from in ("not") plus tangere ("to touch").
New!!: Memoization and Integer · See more »
Invariant (computer science)
In computer science, an invariant is a condition that can be relied upon to be true during the execution of a program, or during some portion of it.
New!!: Memoization and Invariant (computer science) · See more »
JavaScript
JavaScript, often abbreviated as JS, is a high-level, interpreted programming language.
New!!: Memoization and JavaScript · See more »
Latin
Latin (Latin: lingua latīna) is a classical language belonging to the Italic branch of the Indo-European languages.
New!!: Memoization and Latin · See more »
Lazy evaluation
In programming language theory, lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing).
New!!: Memoization and Lazy evaluation · See more »
Left recursion
In the formal language theory of computer science, left recursion is a special case of recursion where a string is recognized as part of a language by the fact that it decomposes into a string from that same language (on the left) and a suffix (on the right).
New!!: Memoization and Left recursion · See more »
Logic programming
Logic programming is a type of programming paradigm which is largely based on formal logic.
New!!: Memoization and Logic programming · See more »
Lookup table
In computer science, a lookup table is an array that replaces runtime computation with a simpler array indexing operation.
New!!: Memoization and Lookup table · See more »
Lua (programming language)
Lua (from meaning moon) is a lightweight, multi-paradigm programming language designed primarily for embedded use in applications.
New!!: Memoization and Lua (programming language) · See more »
Machine-dependent software
Machine-dependent software is application programming that runs only on a specific kind of PC.
New!!: Memoization and Machine-dependent software · See more »
Materialized view
In computing, a materialized view is a database object that contains the results of a query.
New!!: Memoization and Materialized view · See more »
Memorandum
A memorandum (abbrev.: memo; from Latin memorandum est, "It must be remembered (that)...") is a note, document or other communication that helps the memory by recording events or observations on a topic such as may be used in a business office.
New!!: Memoization and Memorandum · See more »
Memorization
Memorization is the process of committing something to memory.
New!!: Memoization and Memorization · See more »
Mutual recursion
In mathematics and computer science, mutual recursion is a form of recursion where two mathematical or computational objects, such as functions or data types, are defined in terms of each other.
New!!: Memoization and Mutual recursion · See more »
Natural language processing
Natural language processing (NLP) is an area of computer science and artificial intelligence concerned with the interactions between computers and human (natural) languages, in particular how to program computers to process and analyze large amounts of natural language data.
New!!: Memoization and Natural language processing · See more »
Page replacement algorithm
In a computer operating system that uses paging for virtual memory management, page replacement algorithms decide which memory pages to page out, sometimes called swap out, or write to disk, when a page of memory needs to be allocated.
New!!: Memoization and Page replacement algorithm · See more »
Parse tree
A parse tree or parsing tree or derivation tree or concrete syntax tree is an ordered, rooted tree that represents the syntactic structure of a string according to some context-free grammar.
New!!: Memoization and Parse tree · See more »
Parser combinator
In computer programming, a parser combinator is a higher-order function that accepts several parsers as input and returns a new parser as its output.
New!!: Memoization and Parser combinator · See more »
Parsing
Parsing, syntax analysis or syntactic analysis is the process of analysing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar.
New!!: Memoization and Parsing · See more »
Parsing expression grammar
In computer science, a parsing expression grammar, or PEG, is a type of analytic formal grammar, i.e. it describes a formal language in terms of a set of rules for recognizing strings in the language.
New!!: Memoization and Parsing expression grammar · See more »
Partial evaluation
In computing, partial evaluation is a technique for several different types of program optimization by specialization.
New!!: Memoization and Partial evaluation · See more »
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.
New!!: Memoization and Perl · See more »
Perl module
A Perl module is a discrete component of software for the Perl programming language.
New!!: Memoization and Perl module · See more »
Peter Norvig
Peter Norvig (born December 14, 1956) is an American computer scientist.
New!!: Memoization and Peter Norvig · See more »
Polynomial
In mathematics, a polynomial is an expression consisting of variables (also called indeterminates) and coefficients, that involves only the operations of addition, subtraction, multiplication, and non-negative integer exponents of variables.
New!!: Memoization and Polynomial · See more »
Program optimization
In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources.
New!!: Memoization and Program optimization · See more »
Programmer
A programmer, developer, dev, coder, or software engineer is a person who creates computer software.
New!!: Memoization and Programmer · See more »
Programming language
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
New!!: Memoization and Programming language · See more »
Pseudocode
Pseudocode is an informal high-level description of the operating principle of a computer program or other algorithm.
New!!: Memoization and Pseudocode · See more »
Python (programming language)
Python is an interpreted high-level programming language for general-purpose programming.
New!!: Memoization and Python (programming language) · See more »
Racket (programming language)
Racket (formerly PLT Scheme) is a general-purpose, multi-paradigm programming language in the Lisp-Scheme family.
New!!: Memoization and Racket (programming language) · See more »
Recursion
Recursion occurs when a thing is defined in terms of itself or of its type.
New!!: Memoization and Recursion · See more »
Recursive descent parser
In computer science, a recursive descent parser is a kind of top-down parser built from a set of mutually recursive procedures (or a non-recursive equivalent) where each such procedure usually implements one of the productions of the grammar.
New!!: Memoization and Recursive descent parser · See more »
Referential transparency
Referential transparency and referential opacity are properties of parts of computer programs.
New!!: Memoization and Referential transparency · See more »
Rewriting
In mathematics, computer science, and logic, rewriting covers a wide range of (potentially non-deterministic) methods of replacing subterms of a formula with other terms.
New!!: Memoization and Rewriting · See more »
Ruby (programming language)
Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.
New!!: Memoization and Ruby (programming language) · See more »
Run time (program lifecycle phase)
In computer science, run time, runtime or execution time is the time during which a program is running (executing), in contrast to other program lifecycle phases such as compile time, link time and load time.
New!!: Memoization and Run time (program lifecycle phase) · See more »
Scheme (programming language)
Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.
New!!: Memoization and Scheme (programming language) · See more »
Software design pattern
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.
New!!: Memoization and Software design pattern · See more »
Space–time tradeoff
A space–time or time–memory trade-off in computer science is a case where an algorithm or program trades increased space usage with decreased time.
New!!: Memoization and Space–time tradeoff · See more »
Strength reduction
In compiler construction, strength reduction is a compiler optimization where expensive operations are replaced with equivalent but less expensive operations.
New!!: Memoization and Strength reduction · See more »
String (computer science)
In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.
New!!: Memoization and String (computer science) · See more »
Subroutine
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.
New!!: Memoization and Subroutine · See more »
Syntactic predicate
A syntactic predicate specifies the syntactic validity of applying a production in a formal grammar and is analogous to a semantic predicate that specifies the semantic validity of applying a production.
New!!: Memoization and Syntactic predicate · See more »
This (computer programming)
this, self, and Me are keywords used in some computer programming languages to refer to the object, class, or other entity of which the currently running code is a part.
New!!: Memoization and This (computer programming) · See more »
Thunk
In computer programming, a thunk is a subroutine used to inject an additional calculation into another subroutine.
New!!: Memoization and Thunk · See more »
Top-down parsing
In computer science, top-down parsing is a parsing strategy where one first looks at the highest level of the parse tree and works down the parse tree by using the rewriting rules of a formal grammar.
New!!: Memoization and Top-down parsing · See more »
Wolfram Mathematica
Wolfram Mathematica (usually termed Mathematica) is a modern technical computing system spanning most areas of technical computing — including neural networks, machine learning, image processing, geometry, data science, visualizations, and others.
New!!: Memoization and Wolfram Mathematica · See more »
.NET Framework
.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.
New!!: Memoization and .NET Framework · See more »
Redirects here:
Automatic memoization, Memo function, Memo functions, Memoisation, Memoise, Memoised function, Memoize, Memoized function, Memoizing, Tabling.
References
[1] https://en.wikipedia.org/wiki/Memoization