An Earley Parsing Algorithm for Range Concatenation Grammars

Total Page:16

File Type:pdf, Size:1020Kb

An Earley Parsing Algorithm for Range Concatenation Grammars An Earley Parsing Algorithm for Range Concatenation Grammars Laura Kallmeyer Wolfgang Maier Yannick Parmentier SFB 441 SFB 441 CNRS - LORIA Universitat¨ Tubingen¨ Universitat¨ Tubingen¨ Nancy Universite´ 72074 Tubingen,¨ Germany 72074 Tubingen,¨ Germany 54506 Vandœuvre, France [email protected] [email protected] [email protected] Abstract class of LCFRS has received more attention con- cerning parsing (Villemonte de la Clergerie, 2002; We present a CYK and an Earley-style Burden and Ljunglof,¨ 2005). This article proposes algorithm for parsing Range Concatena- new CYK and Earley parsers for RCG, formulat- tion Grammar (RCG), using the deduc- ing them in the framework of parsing as deduction tive parsing framework. The characteris- (Shieber et al., 1995). The second section intro- tic property of the Earley parser is that we duces necessary definitions. Section 3 presents a use a technique of range boundary con- CYK-style algorithm and Section 4 extends this straint propagation to compute the yields with an Earley-style prediction. of non-terminals as late as possible. Ex- periments show that, compared to previ- 2 Preliminaries ous approaches, the constraint propagation The rules (clauses) of RCGs1 rewrite predicates helps to considerably decrease the number ranging over parts of the input by other predicates. of items in the chart. E.g., a clause S(aXb) S(X) signifies that S is → 1 Introduction true for a part of the input if this part starts with an a, ends with a b, and if, furthermore, S is also true RCGs (Boullier, 2000) have recently received a for the part between a and b. growing interest in natural language processing Definition 1. A RCG G = N, T, V, P, S con- h i (Søgaard, 2008; Sagot, 2005; Kallmeyer et al., sists of a) a finite set of predicates N with an arity 2008; Maier and Søgaard, 2008). RCGs gener- function dim: N N 0 where S N is → \{ } ∈ ate exactly the class of languages parsable in de- the start predicate with dim(S) = 1, b) disjoint fi- terministic polynomial time (Bertsch and Neder- nite sets of terminals T and variables V , c) a finite hof, 2001). They are in particular more pow- set P of clauses ψ0 ψ1 . ψm, where m 0 erful than linear context-free rewriting systems → ≥ and each of the ψi, 0 i m, is a predicate of (LCFRS) (Vijay-Shanker et al., 1987). LCFRS is ≤ ≤ the form Ai(α1, . , αdim(A )) with Ai N and unable to describe certain natural language phe- i ∈ αj (T V )∗ for 1 j dim(Ai). nomena that RCGs actually can deal with. One ∈ ∪ ≤ ≤ Central to RCGs is the notion of ranges on example are long-distance scrambling phenom- strings. ena (Becker et al., 1991; Becker et al., 1992). Other examples are non-semilinear constructions Definition 2. For every w = w1 . wn with such as case stacking in Old Georgian (Michaelis wi T (1 i n), we define a) P os(w) = ∈ ≤ ≤ and Kracht, 1996) and Chinese number names 0, . , n . b) l, r P os(w) P os(w) with { } h i ∈ × (Radzinski, 1991). Boullier (1999) shows that l r is a range in w. Its yield l, r (w) is the ≤ h i RCGs can describe the permutations occurring substring wl+1 . wr. c) For two ranges ρ1 = with scrambling and the construction of Chinese l1, r1 , ρ2 = l2, r2 : if r1 = l2, then ρ1 ρ2 = h i h i · number names. l1, r2 ; otherwise ρ1 ρ2 is undefined. d) A vec- h i · tor φ = ( x , y ,..., x , y ) is a range vector Parsing algorithms for RCG have been intro- h 1 1i h k ki of dimension k in w if x , y is a range in w for duced by Boullier (2000), who presents a di- h i ii 1 i k. φ(i).l (resp. φ(i).r) denotes then the rectional top-down parsing algorithm using pseu- ≤ ≤ docode, and Barthelemy´ et al. (2001), who add an 1In this paper, by RCG, we always mean positive RCG, oracle to Boullier’s algorithm. The more restricted see Boullier (2000) for details. 9 Proceedings of the ACL-IJCNLP 2009 Conference Short Papers, pages 9–12, Suntec, Singapore, 4 August 2009. c 2009 ACL and AFNLP first (resp. second) component of the ith element in c with i = Υ(c, x): ρ(i).l+1 = ρ(i).r C. For ∈ of φ, that is xi (resp. yi). all x, y that are variables or occurrences of termi- In order to instantiate a clause of the grammar, nals in c such that xy is a substring of one of the arguments in c: ρ(Υ(c, x)).r = ρ(Υ(c, y)).l C. we need to find ranges for all variables in the ∈ clause and for all occurrences of terminals. For These are all constraints in C. convenience, we assume the variables in a clause The range constraint vector of a clause c cap- and the occurrences of terminals to be equipped tures all information about boundaries forming a with distinct subscript indices, starting with 1 and range, ranges containing only a single terminal, ordered from left to right (where for variables, and adjacent variables/terminal occurrences in c. only the first occurrence is relevant for this order). An RCG derivation consists of rewriting in- We introduce a function Υ: P N that gives the → stantiated predicates applying instantiated clauses, maximal index in a clause, and we define Υ(c, x) i.e. in every derivation step Γ Γ , we re- 1 ⇒w 2 for a given clause c and x a variable or an occur- place the lefthand side of an instantiated clause rence of a terminal as the index of x in c. with its righthand side (w.r.t. a word w). The lan- Definition 3. An instantiation of a c P with guage of an RCG G is the set of strings that can ∈ Υ(c) = j w.r.t. to some string w is given by a be reduced to the empty word: L(G) = w + { | range vector φ of dimension j. Applying φ to S( 0, w ) ε . h | |i ⇒G,w } a predicate A(~α) in c maps all occurrences of The expressive power of RCG lies beyond mild x (T V ) with Υ(c, x) = i in ~α to φ(i). If ∈ ∪ context-sensitivity. As an example, consider the the result is defined (i.e., the images of adjacent RCG from Fig. 3 that generates a language that is variables can be concatenated), it is called an in- not semilinear. stantiated predicate and the result of applying φ to For simplicity, we assume in the following with- all predicates in c, if defined, is called an instanti- out loss of generality that empty arguments (ε) ated clause. occur only in clauses whose righthand sides are We also introduce range constraint vectors, vec- empty.2 tors of pairs of range boundary variables together with a set of constraints on these variables. 3 Directional Bottom-Up Chart Parsing Definition 4. Let Vr = r1, r2,... be a set { } In our directional CYK algorithm, we move a dot of range boundary variables. A range constraint through the righthand side of a clause. We there- vector of dimension k is a pair ~ρ,C where a) h i fore have passive items [A, φ] where A is a pred- ~ρ (V 2)k; we define V (~ρ) as the set of range ∈ r r icate and φ a range vector of dimension dim(A) boundary variables occurring in ~ρ. b) C is a set and active items. In the latter, while traversing of constraints c that have one of the following r the righthand side of the clause, we keep a record forms: r = r , k = r , r + k = r , 1 2 1 1 2 of the left and right boundaries already found k r , r k, r r or r + k r ≤ 1 1 ≤ 1 ≤ 2 1 ≤ 2 for variables and terminal occurrences. This is for r1, r2 Vr(~ρ) and k N. ∈ ∈ achieved by subsequently enriching the range con- We say that a range vector φ satisfies a range straint vector of the clause. Active items have the constraint vector ρ, C iff φ and ρ are of the same form [A(~x) Φ Ψ, ρ, C ] with A(~x) ΦΨ a h i → • h i → dimension k and there is a function f : Vr N clause, ΦΨ = ε, Υ(A(~x ΦΨ)) = j and ρ, C → 6 → h i that maps ρ(i).l to φ(i).l and ρ(i).r to φ(i).r for a range constraint vector of dimension j. We re- all 1 i k such that all constraints in C are sat- quire that ρ, C be satisfiable.3 ≤ ≤ isfied. Furthermore, we say that a range constraint h i vector ρ, C is satisfiable iff there exists a range 2Any RCG can be easily transformed into an RCG satis- h i φ fying this condition: Introduce a new unary predicate Eps vector that satisfies it. with a clause Eps(ε) ε. Then, for every clause c with → Definition 5. For every clause c, we define its righthand side not ε, replace every argument ε that occurs in c with a new variable X (each time a distinct one) and add range constraint vector ρ, C w.r.t. a w with w = h i | | the predicate Eps(X) to the righthand side of c. n as follows: a) ρ has dimension Υ(c) and all 3Items that are distinguished from each other only by a bi- range boundary variables in ρ are pairwise differ- jection of the range variables are considered equivalent.
Recommended publications
  • The Earley Algorithm Is to Avoid This, by Only Building Constituents That Are Compatible with the Input Read So Far
    Earley Parsing Informatics 2A: Lecture 21 Shay Cohen 3 November 2017 1 / 31 1 The CYK chart as a graph What's wrong with CYK Adding Prediction to the Chart 2 The Earley Parsing Algorithm The Predictor Operator The Scanner Operator The Completer Operator Earley parsing: example Comparing Earley and CYK 2 / 31 We would have to split a given span into all possible subspans according to the length of the RHS. What is the complexity of such algorithm? Still O(n2) charts, but now it takes O(nk−1) time to process each cell, where k is the maximal length of an RHS. Therefore: O(nk+1). For CYK, k = 2. Can we do better than that? Note about CYK The CYK algorithm parses input strings in Chomsky normal form. Can you see how to change it to an algorithm with an arbitrary RHS length (of only nonterminals)? 3 / 31 Still O(n2) charts, but now it takes O(nk−1) time to process each cell, where k is the maximal length of an RHS. Therefore: O(nk+1). For CYK, k = 2. Can we do better than that? Note about CYK The CYK algorithm parses input strings in Chomsky normal form. Can you see how to change it to an algorithm with an arbitrary RHS length (of only nonterminals)? We would have to split a given span into all possible subspans according to the length of the RHS. What is the complexity of such algorithm? 3 / 31 Note about CYK The CYK algorithm parses input strings in Chomsky normal form.
    [Show full text]
  • LATE Ain't Earley: a Faster Parallel Earley Parser
    LATE Ain’T Earley: A Faster Parallel Earley Parser Peter Ahrens John Feser Joseph Hui [email protected] [email protected] [email protected] July 18, 2018 Abstract We present the LATE algorithm, an asynchronous variant of the Earley algorithm for pars- ing context-free grammars. The Earley algorithm is naturally task-based, but is difficult to parallelize because of dependencies between the tasks. We present the LATE algorithm, which uses additional data structures to maintain information about the state of the parse so that work items may be processed in any order. This property allows the LATE algorithm to be sped up using task parallelism. We show that the LATE algorithm can achieve a 120x speedup over the Earley algorithm on a natural language task. 1 Introduction Improvements in the efficiency of parsers for context-free grammars (CFGs) have the potential to speed up applications in software development, computational linguistics, and human-computer interaction. The Earley parser has an asymptotic complexity that scales with the complexity of the CFG, a unique, desirable trait among parsers for arbitrary CFGs. However, while the more commonly used Cocke-Younger-Kasami (CYK) [2, 5, 12] parser has been successfully parallelized [1, 7], the Earley algorithm has seen relatively few attempts at parallelization. Our research objectives were to understand when there exists parallelism in the Earley algorithm, and to explore methods for exploiting this parallelism. We first tried to naively parallelize the Earley algorithm by processing the Earley items in each Earley set in parallel. We found that this approach does not produce any speedup, because the dependencies between Earley items force much of the work to be performed sequentially.
    [Show full text]
  • Lecture 10: CYK and Earley Parsers Alvin Cheung Building Parse Trees Maaz Ahmad CYK and Earley Algorithms Talia Ringer More Disambiguation
    Hack Your Language! CSE401 Winter 2016 Introduction to Compiler Construction Ras Bodik Lecture 10: CYK and Earley Parsers Alvin Cheung Building Parse Trees Maaz Ahmad CYK and Earley algorithms Talia Ringer More Disambiguation Ben Tebbs 1 Announcements • HW3 due Sunday • Project proposals due tonight – No late days • Review session this Sunday 6-7pm EEB 115 2 Outline • Last time we saw how to construct AST from parse tree • We will now discuss algorithms for generating parse trees from input strings 3 Today CYK parser builds the parse tree bottom up More Disambiguation Forcing the parser to select the desired parse tree Earley parser solves CYK’s inefficiency 4 CYK parser Parser Motivation • Given a grammar G and an input string s, we need an algorithm to: – Decide whether s is in L(G) – If so, generate a parse tree for s • We will see two algorithms for doing this today – Many others are available – Each with different tradeoffs in time and space 6 CYK Algorithm • Parsing algorithm for context-free grammars • Invented by John Cocke, Daniel Younger, and Tadao Kasami • Basic idea given string s with n tokens: 1. Find production rules that cover 1 token in s 2. Use 1. to find rules that cover 2 tokens in s 3. Use 2. to find rules that cover 3 tokens in s 4. … N. Use N-1. to find rules that cover n tokens in s. If succeeds then s is in L(G), else it is not 7 A graphical way to visualize CYK Initial graph: the input (terminals) Repeat: add non-terminal edges until no more can be added.
    [Show full text]
  • A Mobile App for Teaching Formal Languages and Automata
    Received: 21 December 2017 | Accepted: 19 March 2018 DOI: 10.1002/cae.21944 SPECIAL ISSUE ARTICLE A mobile app for teaching formal languages and automata Carlos H. Pereira | Ricardo Terra Department of Computer Science, Federal University of Lavras, Lavras, Brazil Abstract Formal Languages and Automata (FLA) address mathematical models able to Correspondence Ricardo Terra, Department of Computer specify and recognize languages, their properties and characteristics. Although Science, Federal University of Lavras, solid knowledge of FLA is extremely important for a B.Sc. degree in Computer Postal Code 3037, Lavras, Brazil. Science and similar fields, the algorithms and techniques covered in the course Email: [email protected] are complex and difficult to assimilate. Therefore, this article presents FLApp, Funding information a mobile application—which we consider the new way to reach students—for FAPEMIG (Fundação de Amparo à teaching FLA. The application—developed for mobile phones and tablets Pesquisa do Estado de Minas Gerais) running Android—provides students not only with answers to problems involving Regular, Context-free, Context-Sensitive, and Recursively Enumer- able Languages, but also an Educational environment that describes and illustrates each step of the algorithms to support students in the learning process. KEYWORDS automata, education, formal languages, mobile application 1 | INTRODUCTION In this article, we present FLApp (Formal Languages and Automata Application), a mobile application for teaching FLA Formal Languages and Automata (FLA) is an important area that helps students by solving problems involving Regular, of Computer Science that approaches mathematical models Context-free, Context-Sensitive, and Recursively Enumerable able to specify and recognize languages, their properties and Languages (levels 3 to 0, respectively), in addition to create an characteristics [14].
    [Show full text]
  • Principles and Implementation of Deductive Parsing
    Principles and implementation of deductive parsing The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Stuart M. Shieber, Yves Schabes, and Fernando C. N. Pereira. Principles and implementation of deductive parsing. Journal of Logic Programming, 24(1-2):3-36, July-August 1995. Also available as cmp-lg/9404008. Published Version http://dx.doi.org/10.1016/0743-1066(95)00035-I Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:2031716 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA J. LOGIC PROGRAMMING 1995:24(1{2):3{36 3 PRINCIPLES AND IMPLEMENTATION OF DEDUCTIVE PARSING STUART M. SHIEBER, YVES SCHABES, ∗ AND FERNANDO C. N. PEREIRAy £ We present a system for generating parsers based directly on the metaphor of parsing as deduction. Parsing algorithms can be represented directly as deduction systems, and a single deduction engine can interpret such de- duction systems so as to implement the corresponding parser. The method generalizes easily to parsers for augmented phrase structure formalisms, such as definite-clause grammars and other logic grammar formalisms, and has been used for rapid prototyping of parsing algorithms for a variety of formalisms including variants of tree-adjoining grammars, categorial gram- mars, and lexicalized context-free grammars. ¡ 1. INTRODUCTION Parsing can be viewed as a deductive process that seeks to prove claims about the grammatical status of a string from assumptions describing the grammatical properties of the string's elements and the linear order between them.
    [Show full text]
  • Analysis of Cocke-Younger-Kasami and Earley Algorithms on Probabilistic Context-Free Grammar
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 10 | Oct 2019 www.irjet.net p-ISSN: 2395-0072 Analysis of Cocke-Younger-Kasami and Earley Algorithms on Probabilistic Context-Free Grammar Palash Anjania1, Shrushti Gangar2, Krina Bhimani3, Lynette D’mello4 1,2,3Student, Dept. of Computer Engineering, Dwarkadas J. Sanghvi College, Maharashtra India 4Lynette D’Mello, Professor, Dept. of Computer Engineering, Dwarkadas J. Sanghvi College, Maharashtra India ---------------------------------------------------------------------***---------------------------------------------------------------------- Abstract - Programming parsers are generally based on 2. LITERATURE REVIEW context-free grammar. The study of such grammars are of great importance around the world, out of which the CYK 2.1. CYK Algorithm and the Earley are the well-known algorithms. In this paper, we have done a comparative study on the above 2.1.1 Introduction: Cocke-Younger-Kasami algorithm two algorithms. We applied these algorithms on also known CYK or CKY algorithm is a membership probabilistic context-free grammar (PCFG) and tried to algorithm which works only on context-free grammar in analyses their results and obtained their time Chomsky Normal form (CNF). It is a Bottom-Up Dynamic complexities. The results obtained show that the Earley programming approach and is more data driven. algorithm have proved to be better than the CYK Probabilistic CYK recovers the most probable parse algorithm. given the probabilities of all productions and used to decide whether the string belongs to the grammar or Key Words: Cocke-Younger-Kasami algorithm, Earley not. In Context-free Grammar the right-hand side of each algorithm, Probabilistic Context-free grammar, production can have either one terminal or two non- terminals.
    [Show full text]
  • Syntactic Parsing: Introduction, CYK Algorithm
    Introduction Syntax Context-Free Grammars CYK Algorithm Syntactic Parsing: Introduction, CYK Algorithm M. Rajman & J.-C. Chappelier Laboratoire d’Intelligence Artificielle Faculté I&C ©EPFL M. Rajman & J.-C. Chappelier Syntactic parsing: Introduction & CYK Algorithm – 1 / 47 Introduction Syntax Objectives of this lecture Context-Free Grammars CYK Algorithm ¯ Introduce syntactic level of NLP ¯ Present its two components: formal grammars and parsing algorithms Contents: I Introduction I Formal Grammars I Context-Free Grammars I CYK Algorithm ©EPFL M. Rajman & J.-C. Chappelier Syntactic parsing: Introduction & CYK Algorithm – 2 / 47 Introduction Syntax Syntactic level Syntactic level and Parsing Syntactic acceptability Formalisms Context-Free Analysis of the sentence structure Grammars CYK Algorithm i.e. "grammatical" analysis (in the linguistic sense) Automatic natural language processing requires formal grammars (ressource) and parsing algorithms Two separated/complementary aspects: procedural declarative generic algorithms data parsing algorithm formal grammar ©EPFL M. Rajman & J.-C. Chappelier Syntactic parsing: Introduction & CYK Algorithm – 3 / 47 Introduction Syntax Parsing Syntactic level and Parsing Syntactic acceptability Formalisms Context-Free Grammars Parsing can be seen as: CYK Algorithm I RECOGNIZING a sequence of words ¯ Is a given sentence correct or not? or as I ANALYZING a sequence of words ¯ For a syntactically correct sentence, give the set of all its possible interpretations (i.e. associated structures). (Returns the
    [Show full text]
  • Parallel Parsing of Context-Free Grammars
    Master Thesis Computer science Thesis no: MCS-2011-28 December 2011 Parallel parsing of context-free grammars Piotr Skrzypczak School of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the School of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Computer Science. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Author(s): Piotr Skrzypczak 871216-P317 E-mail: [email protected] University advisor(s): Olgierd Unold, PhD, DSc Faculty of Electronics, Wroclaw University of Technology, Poland Bengt Aspvall, PhD School of Computing School of Computing Blekinge Institute of Technology Internet : www.bth.se/com SE-371 79 Karlskrona Phone : +46 455 38 50 00 Sweden Fax : +46 455 38 50 57 ABSTRACT During the last decade increasing interest in parallel programming can be observed. It is caused by a tendency of developing microprocessors as a multicore units, that can perform instructions simultaneously. Pop- ular and widely used example of such platform is a graphic processing unit (GPU). Its ability to perform calculations simpultaneously is being investigated as a way for improving performance of the complex algorithms. Therefore, GPU’s are now having the architectures that allows to use its computional power by programmers and software de- velopers in the same way as CPU. One of these architectures is CUDA platform, developed by nVidia. Aim of this thesis is to implement the parallel CYK algorithm, which is one of the most popular parsing algorithms, for CUDA platform, that will gain a significant speed-up in comparison with the sequential CYK algorithm.
    [Show full text]
  • Parsing of Context-Free Grammars
    Parsing of Context-Free Grammars Bernd Kiefer {Bernd.Kiefer}@dfki.de Deutsches Forschungszentrum f¨ur k¨unstliche Intelligenz Introduction to CL - Context-Free Grammars – p.1/32 Limits of Regular Expressions Assignment: Write a regular expression for fully bracketed arithmetic expressions! Answer: ? Introduction to CL - Context-Free Grammars – p.2/32 Limits of Regular Expressions Assignment: Write a regular expression for fully bracketed arithmetic expressions! Answer: This is not possible! Regular expressions can only count finite amounts of brackets Introduction to CL - Context-Free Grammars – p.2/32 Limits of Regular Expressions Assignment: Write a regular expression for fully bracketed arithmetic expressions! Answer: This is not possible! Regular expressions can only count finite amounts of brackets We need a more powerful formal device: context-free grammars Introduction to CL - Context-Free Grammars – p.2/32 Limits of Regular Expressions Assignment: Write a regular expression for fully bracketed arithmetic expressions! Answer: This is not possible! Regular expressions can only count finite amounts of brackets We need a more powerful formal device: context-free grammars Context-free grammars provide a (finite) inventory of named brackets All regular languages are also context-free, i.e.: for every regular expression, there is a context-free grammar that accepts / derives the same language Introduction to CL - Context-Free Grammars – p.2/32 Context-Free Grammars A context-free grammar (CFG) consists of: The set of terminal symbols Σ =
    [Show full text]
  • An Efficient Context-Free Parsing Algorithm for Natural Languages1
    An Efficient Context-free Parsing Algorithm For Natural Languages1 Masaru Tomita Computer Science Department Carnegie-Mellon University Pittsburgh, PA 15213 Abstract because those algorithms are not tuned for any particular subset of context-free grammars, and must be able to handle all difficult This paper introduces an efficient context-free parsing phenomena in context-free grammars. In other words, they do algorithm and emphasizes its practical value in natural not take advantage of inherent features of the programming language processing. The algorithm can be viewed as an language. Intuitively speaking, algorithms in this group are extended LR parsing algorithm which embodies the concept efficient for "hard" grammars by sacrificing efficiency on "easy" of a "graph-structured stack." Unlike the standard LR, the grammars. algorithm is capable of handling arbitrary non cyclic context-free grammars including ambiguous grammars, No parsing algorithm has been designed that takes advantage while most of the LR parsing efficiency is preserved. The of inherent features of natural languages. Because natural algorithm seems more efficient than any existing algorithms languages include slightly more difficult phenomena than including the Cocke Younger Kasami algorithm and Earley's programming languages, we cannot simply use the first group of algorithm, as far as practical natural language parsing is algorithms for natural languages. Natural languages are a little concerned, due to utilization of LR parsing tables. The "harder" than programming languages, but they are still much algorithm is an all-path parsing algorithm; it produces all "easier" than general context-free languages As we have seen possible parse trees (a parse forest) in an efficient above, we have context-free parsing algorithms at two extremes.
    [Show full text]
  • 14.5 Supplemental: Context Free Grammars: the CYK Algorithm
    Algorithms & Models of Computation CS/ECE 374, Fall 2020 14.5 Supplemental: Context free grammars: The CYK Algorithm FLNAME:14.5.0.0 ZZZ:14.5.0.0 Supplemental: Context free grammars: The CYK Algorithm 69 / 83 Algorithms & Models of Computation CS/ECE 374, Fall 2020 14.5.1 CYK: Problem statement, basic idea, and an example FLNAME:14.5.1.0 ZZZ:14.5.1.0 CYK: Problem statement, basic idea, and an example 70 / 83 Parsing We saw regular languages and context free languages. Most programming languages are specified via context-free grammars. Why? CFLs are sufficiently expressive to support what is needed. At the same time one can “efficiently” solve the parsing problem: given a string/program w, is it a valid program according to the CFG specification of the programming language? 71 / 83 CFG specification for C 72 / 83 Algorithmic Problem Given a CFG G = (V ; T; P; S) and a string w 2 T ∗, is w 2 L(G)? That is, does S derive w? Equivalently, is there a parse tree for w? Simplifying assumption: G is in Chomsky Normal Form (CNF) Productions are all of the form A ! BC or A ! a. If 2 L then S ! is also allowed. (This is the only place in the grammar that has an ".) Every CFG G can be converted into CNF form via an efficient algorithm Advantage: parse tree of constant degree. 73 / 83 Algorithmic Problem Given a CFG G = (V ; T; P; S) and a string w 2 T ∗, is w 2 L(G)? That is, does S derive w? Equivalently, is there a parse tree for w? Simplifying assumption: G is in Chomsky Normal Form (CNF) Productions are all of the form A ! BC or A ! a.
    [Show full text]
  • Compiler Construction
    Compiler construction PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 10 Dec 2011 02:23:02 UTC Contents Articles Introduction 1 Compiler construction 1 Compiler 2 Interpreter 10 History of compiler writing 14 Lexical analysis 22 Lexical analysis 22 Regular expression 26 Regular expression examples 37 Finite-state machine 41 Preprocessor 51 Syntactic analysis 54 Parsing 54 Lookahead 58 Symbol table 61 Abstract syntax 63 Abstract syntax tree 64 Context-free grammar 65 Terminal and nonterminal symbols 77 Left recursion 79 Backus–Naur Form 83 Extended Backus–Naur Form 86 TBNF 91 Top-down parsing 91 Recursive descent parser 93 Tail recursive parser 98 Parsing expression grammar 100 LL parser 106 LR parser 114 Parsing table 123 Simple LR parser 125 Canonical LR parser 127 GLR parser 129 LALR parser 130 Recursive ascent parser 133 Parser combinator 140 Bottom-up parsing 143 Chomsky normal form 148 CYK algorithm 150 Simple precedence grammar 153 Simple precedence parser 154 Operator-precedence grammar 156 Operator-precedence parser 159 Shunting-yard algorithm 163 Chart parser 173 Earley parser 174 The lexer hack 178 Scannerless parsing 180 Semantic analysis 182 Attribute grammar 182 L-attributed grammar 184 LR-attributed grammar 185 S-attributed grammar 185 ECLR-attributed grammar 186 Intermediate language 186 Control flow graph 188 Basic block 190 Call graph 192 Data-flow analysis 195 Use-define chain 201 Live variable analysis 204 Reaching definition 206 Three address
    [Show full text]