Search results
Results from the WOW.Com Content Network
A parse tree or parsing tree [1] (also known as a 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. The term parse tree itself is used primarily in computational linguistics; in theoretical syntax, the term syntax tree is more common.
An extended context-free grammar (or regular right part grammar) is one in which the right-hand side of the production rules is allowed to be a regular expression over the grammar's terminals and nonterminals. Extended context-free grammars describe exactly the context-free languages.
The standard version of CYK operates only on context-free grammars given in Chomsky normal form (CNF). However any context-free grammar may be algorithmically transformed into a CNF grammar expressing the same language (Sipser 1997). The importance of the CYK algorithm stems from its high efficiency in certain situations.
A weighted context-free grammar (WCFG) is a more general category of context-free grammar, where each production has a numeric weight associated with it. The weight of a specific parse tree in a WCFG is the product [7] (or sum [8]) of all rule weights in the tree. Each rule weight is included as often as the rule is used in the tree.
One way to do this is by using a probabilistic context-free grammar (PCFG) which has a probability of each constituency rule, and modifying CKY to maximise probabilities when parsing bottom-up. [6] [7] [8] A further modification is the lexicalized PCFG, which assigns a head to each constituent and encodes rule for each lexeme in that head slot.
In computer science, an ambiguous grammar is a context-free grammar for which there exists a string that can have more than one leftmost derivation or parse tree. [1] [2] Every non-empty context-free language admits an ambiguous grammar by introducing e.g. a duplicate rule.
For every k≥1, "a language can be generated by an LR(k) grammar if and only if it is deterministic [and context-free], if and only if it can be generated by an LR(1) grammar." [ 9 ] In other words, if a language was reasonable enough to allow an efficient one-pass parser, it could be described by an LR( k ) grammar.
Parsing the string "1 - 2 - 3" with the first grammar in an LALR parser (which can handle left-recursive grammars) would have resulted in the parse tree: Left-recursive parsing of a double subtraction. This parse tree groups the terms on the left, giving the correct semantics (1 - 2) - 3. Parsing with the second grammar gives Right-recursive ...