In computer science, a GLR parser ("Generalized Left-to-right Rightmost derivation parser") is an extension of an LR parser algorithm to handle nondeterministic and ambiguous grammars. First described in a 1984 paper by Masaru Tomita, it has also been referred to as a "parallel parser". Tomita presented five stages in his original work, though, in practice, it is the second stage that is recognized as the GLR parser.
more from Wikipedia
Parsing
In computer science and linguistics, parsing, or, more formally, syntactic analysis, is the process of analyzing a text, made of a sequence of tokens (for example, words), to determine its grammatical structure with respect to a given (more or less) formal grammar. Parsing can also be used as a linguistic term, for instance when discussing how phrases are divided up in garden path sentences.
more from Wikipedia
Canonical LR parser
In computer science, a canonical LR parser or LR(1) parser is an LR parser whose parsing tables are constructed in a similar way as with LR(0) parsers except that the items in the item sets also contain a lookahead, i.e. , a terminal that is expected by the parser after the right-hand side of the rule.
more from Wikipedia
Bottom-up parsing
In computer science, parsing reveals the grammatical structure of linear input text, as a first step in working out its meaning. Bottom-up parsing identifies and processes the text's lowest-level small details first, before its mid-level structures, and leaving the highest-level overall structure to last.
more from Wikipedia
LR parser
In computer science, LR parsers are a category of bottom-up parsers that efficiently handle an especially wide range of computer language grammars. LALR and SLR are common types of LR parsers. LR parsers are mechanically generated from a formal grammar for the language. LR parsers are very widely used, more than other kinds of generated parsers.
more from Wikipedia
Time complexity
In computer science, the time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the size of the input to the problem. The time complexity of an algorithm is commonly expressed using big O notation, which suppresses multiplicative constants and lower order terms. When expressed this way, the time complexity is said to be described asymptotically, i.e. , as the input size goes to infinity.
more from Wikipedia
Polynomial
In mathematics, a polynomial is an expression of finite length constructed from variables and constants, using only the operations of addition, subtraction, multiplication, and non-negative integer exponents. For example, x ¿ x/4 + 7 is a polynomial, but x ¿ 4/x + 7x is not, because its second term involves division by the variable x (4/x), and also because its third term contains an exponent that is not an integer (3/2).
more from Wikipedia