Type 3 languages. Type 2 languages. Regular grammars Finite automata. Regular expressions. Type 2 grammars. Deterministic Nondeterministic.
|
|
- Giles Jordan
- 6 years ago
- Views:
Transcription
1 Course 7 1
2 Type 3 languages Regular grammars Finite automata Deterministic Nondeterministic Regular expressions a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 ) Type 2 languages Type 2 grammars 2
3 Brief history of programming Stages of compilation Lexical analysis Lexical description Interpretation Right oriented interpretation Well formed lexical description Bottom up parsing General bottom-up parser LR analysis LR(0) 3
4 Programs written using processor instructions Few computers Few programmers 4
5 Fortran (1957): First compiler (artihmetic expressions, instructions, procedures) Still used for computationally complex applications or for benchmarking systems Algol (1958): BNF grammars (Backus-Naur Normal Form), instruction blocks, recursion, etc. Precursor of modern syntax Lisp (1958) Functional programming Tree data structures, automatic storage management, dynamic typing, higher-order functions, recursion COBOL (1959) Similar to English language Business oriented Emphasis on inputs and outputs 5
6 Simula (1965) Based on ALGOL 60 First object oriented language Objects, classes, inheritance, virtual functions, etc. Structured programming (1968) Edsger Dijkstra GOTO Considered Harmful Pascal (1970) C (1973) IRQ, dynamic variables, multitasking 6
7 ADA (1980) First standardized language Objective C (1984) Inspired by Smalltalk Object oriented C++ (1985) C with Classes; Object oriented, exceptions, templates Inspired by Simula Java (1995) just-in-time compilation C# (2000 ).NET framework 7
8 Source code Characters Lexical analyzer Lexemes Syntactic analyzer Syntactic tree Semantic analyzer Processor code Decorated syntactic tree Code generator Intermediary code Assembler Interpreter 8
9 Def. 1 Let Σ be an alphabet (of a programming language). A lexical description over is a regular expression E = (E 1 E 2 E n ) +, whre n is the number of lexical units, and E i describes a lexical unit, 1 i n. Def. 2 Let E be a lexical description over Σ which contains n lexical units and w +. The word w isccorrect relative to the description E if w L(E). An interpretation of the word w L(E) is a sequence of pairs (u 1, k 1 ), (u 2, k 2 ),, (u m, k m ), where w = u 1 u 2 u m, u i L(E ki ) 1 i m, 1 ki n. 9
10 w = alpha := beta = 542 Interpretations for the word w: (alpha, Id), (:=, Assign), (beta, Id), (=, Equal), (542, Integer) (alp, Id), (ha, Id), (:=, Assign), (beta, Id), (=, Equal), (542, Integer) (alpha, Id), (:, Colon), ( =, Equal), (beta, Id), (=, Equal), (542, Integer) 10
11 Def. 3 Let E be a lexical description over and w L(E). An interpretation of the word w, (u 1, k 1 )(u 2, k 2 ), (u m, k m ), is a right-oriented interpretation if ( i) 1 i m: u i = max{ v, v L(E 1 E 2 E n ) Pref(u i u i+1 u m )}. (where Pref(w) is the set of prefixes for the word w ). There are some lexical descriptions E in which not every word of L(E) allows for a right-oriented interpretation. E = (a ab bc) + şi w = abc. 11
12 Def. 4 A lexical description E is well-formed if every word w L(E) has exactly one rightoriented interpretation. Theorem Given a lexical description E, it can be determined if it is well-formed. Def. 5 Let E be a well-formed lexical description over. A lexical analyzer (scanner) for E is a program that recognizes the language L(E) and determines, for each w L(E), its right-oriented interpretation. 12
13 Let E be a lexical description over Σ. To produce a lexical analyzer for E means to: 1. Build the finite automaton A, equivalent to E 2. From A, obtain the deterministic automaton equivalent to E, A. 3. (Optional) Obtain the minimal automaton equivalent to A. 4. Implement the automaton A. 13
14 Lexical description: letter a b z digit identifier letter (letter digit)* sign + - number (sign ε) digit+ operator + - * / < > <= >= < > assign := Colon : reserved_words if then else parenthesis ) ( 14
15 A i A n A o q 0 A a A : A r A p 15
16 letter, digit letter 1 # i or # r digit 2 digit # n +,- 3 digit # o operator {+,-} 4 # o : ),( = # a # : # p 0 16
17 Source code Characters Lexical analyzer Lexemes Syntactic analyzer Syntactic tree Semantic analyzer Processor code Decorated syntactic tree Code generator Intermediary code Assembler Interpreter 17
18 a 1... a i... a n # X 1 X 1 Control Parsing table... # p 1 p
19 A configuration ( #γ, u#, π) is described as follows: #γ is the stack content, with the # symbol at the bottom. u# is the input. π is the output. C 0 = {(#, w#, ε) w ε T*} is the set of initial configurations. 19
20 The bottom-up parser attached to a grammar G is the pair (C 0, ) where C 0 is the set of initial configurations and is the trasition relation, defined below: (# γ, au#, π) (# γa, u#, π) (shift) for any γ ε Σ*, a ε T, u ε T*, π ε P*. (#αβ, u#, π) (#αa, u#, πr) if r = A β ε P(reduce). The configuration (#S, #, π), where π ε, is called acceptance configuration. Any configuration which is not an acceptance configuration and which is not in a relation to another configuration is an error configuration. Shift /reduce parsers. 20
21 S asb ε. Possible transitions are: (#γ, u#, π) (#γs, u#, π2) (#γasb, u#, π) (#γs, u#, π1) (#γ, au#, π) (#γa, u#, π) (#γ, bu#, π) (#γb, u#, π) A sequence of transitions, such as the one below, is called a calculation (#, #, ε) (#S, #, 2) (#, aabb#, ε) (#a, abb#, ε) (#aa, bb#, ε) (#aas, bb#, 2) (#aasb, b#, 2) (#as, b#, 21) (#asb, #, 21) (#S, #, 211) 21
22 The parser is non-deterministic: For any configuration (#αβ, au#, π), S β, there exist two possibilities (shift/reduce conflict): (#αβ, au#, π) (#αs, au#, πr) (reduce with S β) (#αβ, au#, π) (# αβa, u#, π) (shift) For any configuration (#γ, u#, π) where γ=α 1 β 1 =α 2 β 2 and A β 1, B β 2 ε P (reduce/reduce conflict) (#α 1 β 1, u#, π) (# α 1 A, u#, πr 1 ) (#α 2 β 2, u#, π) (# α 2 B, u#, πr 2 ) 22
23 A word wεt* is accepted by a bottom-up parser if there exits at least one calculation (#, w#, ε) + (#S, #, π) The described parser is correct if it will accept all the words from the set L(G), and only those words. Theorem The bottom-up parser attached to a grammar G is correct: ( ) wεt*, wεl(g) iff the calculation (#, w#, ε) + (#S, #, π) is correct. 23
24 LR(k) grammars: Left to right scanning of the input, constructing a Rightmost derivation in reverse, using k symbols lookahead Definition A grammar G is LR(k), k 0, if, for any two derivations : S S dr * αau dr αβu = δu S S dr * α A u dr α β u = αβv = δv where k:u = k:v, then α=α, β=β, A=A 24
25 Theorem 1 If the grammar G is LR(k), k 0, then G is not ambiguos. A language is in the class of LR(k) if there exists a LR(k) grammar that can generate it Theorem 2 Any LR(k) language is a type 2 deterministic language. Theorem 3 Any type 2 deterministic language is in the class LR(1). Theorem 4 For any language in LR(k), k 1, there exists a LR(1) grammar that can generate that language, i.e. LR(0) LR(1) = LR(k), k 1. 25
26 Definition Let G = (V, T, S, P) be a type 2 reduced grammar. Let the symbol Σ (T N). An article for the grammar G is a production rule A γ to which the symbol has been added on some position in γ. An article is denoted A α β if γ = αβ. An article with the symbol to the rightmost position is called a complete article. Definition A viable prefix for the grammar G is any prefix of a word αβ if S r * αau r αβu. If β= β 1 β 2 and φ= αβ 1 the article A β 1 β 2 is valid for the viable prefix φ. 26
27 S A, A aaa bab c ε. Articles: S A, S A, A aaa, A a Aa, A aa a, A aaa, A bab, A b Ab, A ba b, A bab, A c, A c, A. Valid articles for viable prefixes: Viable prefix Valid article Derivation ab ε A b Ab A aaa A bab S A A bab A c S A aaa ababa S A aaa ababa abaaaba S A aaa ababa abbabba S A S A bab S A c 27
28 Lemma Let G be a grammar and A β 1 Bβ 2 a valid article for the viable prefix γ. Then, B β ε P, the article B β is valid for γ. Theorem (characterization of LR(0)) The grammar G is LR(0) iff, γ a viable prefix, the following are true: 1. two complete articles valid for γ. 2. if the article A β is valid for γ, B β 1 aβ 2, aεt, valid for γ. 28
29 Theorem Let G = (V, T, S, P) be a type 2 grammar. The set of viable prefixes for the grammar G is a type 3 language. Proof G is G augmented with the S S rule. M = (Q, Σ, δ, q 0, Q), where: Q is the set of articles of G, Σ = V T, q 0 = S S δ:qx(σ {ε}) 2 Q defined below: δ(a α Bβ, ε) = {B α B γ εp}. δ(a α Xβ, X) = { A αx β}, X ε Σ. δ(a α aβ, ε) =, a ε T. δ(a α Xβ, Y) =, X,Y ε Σ cu X Y. We show that: (A α β ε δ ^(q 0, γ ) γ is a viable prefix and A α β is valid for γ. 29
30 S S, S asa bsb c 30
31 Algorithm 1(procedure for closure) Input: G = (V, T, S, P); The set of articles of G; Output: t =closure( t)={qεq pεt, qε δ(p,ε) = δ(t,ε)} 31
32 t = t ; flag = true; while( flag ) { flag = false; for (A α Bβ ε t ) { for (B γ ε P ) if (B γ t ) { t = t {B γ}; flag = true; }//endif }//endforb }//endfora }//endwhile return t ; 32
33 Algorithm 2 - LR(0) automaton Input: G = (N, T, S, P) augmented with the rule S S; Output: M = (T, Σ, g, t 0, T), deterministic automaton equivalent to M. 33
34 t 0 =closure(s S); T={t 0 }; marked(t 0 )=false; while( t ε T &&!marked(t)) { // marked(t) = false for( X ε Σ) {// Σ = N T t = ; for(a α Xβ εt) t = t {B αx β A α Xβ εt}; if( t ){ t = closure( t ); if( t T ) { T = T { t }; marked( t ) = false; }//endif g(t, X) = t ; }//endif }//endfor }//endfor marked( t ) = true; }// endwhile 34
35 S S, S asa bsb c 35
36 Definition: Let G be a grammar and M the LR(0) automaton attached to G. A state of M has a reduce/reduce conflict if it contains two complete and distinct articles A α, B β. A state of M has a shift/reduce conflict if it contains a complete article A α and an incomplete article with a terminal to the right of the symbol B β aγ. A state is consistent if it does not have any conflicts and is inconsistent otherwise. Theorem Let G be a grammar and M its LR(0) automaton. The grammar G is LR(0) iff the automaton M does not contain any inconsistent states. 36
37 S aad bab, A ca c, B d 37
38 The parsing table is the LR(0) automaton, M. Configuration: (σ, u#, π) where σεt 0 T*, uεt*, πεp*. Initial configuration (t 0, w#, ε), Transitions: Shift: (σt, au#, π) (σtt, u#, π) if g(t, a) = t. Reduce: (σtσ t, u#, π) ( σtt, u#, πr) if A β ε t, r = A β, σ t = β şi t = g (t, A). Accept: (t 0 t 1, #, π) is the acceptance configuration if S S ε t1, π is the parsing of the word. Error: a configuration from which no transitions are possible 38
39 char ps[]= w# ; //ps is the input string w i = 0; // position in the input string STACK.push(t0); // the stack is initialized with t0 while(true) { // repeat until accept or error t = STACK.top(); a = ps[i] // a is the current symbol at the input if( g(t, a) ){ //shift STACK.push(g(t, a)); i++; //move forward in the input string } else { if(a X 1 X 2 X m t){ if(a == S ) if(a == # )exit( accept ); else exit( error ); else // reduce for( i = 1; i <= m; i++) STACK.pop(); STACK.push(g(top(STACK), A)); } //endif else exit( error ); }//endelse }//endwhile 39
40 S S S E$ E E+T T (E) E T T a 40
41 S S S E$ E E+T T (E) E T T a Stack Input Action Output 0 a+(a+a)$# shift 05 +(a+a)$# reduce T a 03 +(a+a)$# reduce E T 02 +(a+a)$# shift 027 (a+a)$# shift 0274 a+a)$# shift a)$# reduce T a a)$# reduce E T a)$# shift a)$# shift )$# reduce T a )$# reduce E E+T )$# shift 02748'10' $# reduce T (E) 0279 $# reduce E E+T 02 $# shift 026 # reduce S E$ 01 # accept 41
42 Lemma 1, 2 Let G = (N, T, S, P) be an LR(0), t 0 σ, t 0 τ paths in the LR(0) automaton, labeled with φ and γ respectively and u, v ε T*. It follows that, if in the LR(0) parser the calculation (t 0 σ, uv#, ε) + (t 0 τ, v#, π) holds, then the derivation φ dr π u holds for the grammar G, and reciprocally. Theorem If G is an LR(0) grammar, then for any word w ε T*, the LR(0) parser will reach an acceptance configuration for w, i.e. (t 0 σ, uv#, ε) + (t 0 τ, v#, π) iff φ dr π u. 42
43 Grigoraş Gh., Construcţia compilatoarelor. Algoritmi fundamentali, Editura Universităţii Alexandru Ioan Cuza, Iaşi,
Bottom-up syntactic parsing. LR(k) grammars. LR(0) grammars. Bottom-up parser. Definition Properties
Course 9-10 1 Bottom-up syntactic parsing Bottom-up parser LR(k) grammars Definition Properties LR(0) grammars Characterization theorem for LR(0) LR(0) automaton 2 a 1... a i... a n # X 1 X 1 Control Parsing
More informationBottom-up syntactic parsing. LR(k) grammars. LR(0) grammars. Bottom-up parser. Definition Properties
Course 8 1 Bottom-up syntactic parsing Bottom-up parser LR(k) grammars Definition Properties LR(0) grammars Characterization theorem for LR(0) LR(0) automaton 2 a 1... a i... a n # X 1 X 1 Control Parsing
More informationBottom-up syntactic parsing. LR(k) grammars. LR(0) grammars. Bottom-up parser. Definition Properties
Course 8 1 Bottom-up syntactic parsing Bottom-up parser LR(k) grammars Definition Properties LR(0) grammars Characterization theorem for LR(0) LR(0) automaton 2 a 1... a i... a n # X 1 X 1 Control Parsing
More informationCS 406: Bottom-Up Parsing
CS 406: Bottom-Up Parsing Stefan D. Bruda Winter 2016 BOTTOM-UP PUSH-DOWN AUTOMATA A different way to construct a push-down automaton equivalent to a given grammar = shift-reduce parser: Given G = (N,
More informationLR2: LR(0) Parsing. LR Parsing. CMPT 379: Compilers Instructor: Anoop Sarkar. anoopsarkar.github.io/compilers-class
LR2: LR(0) Parsing LR Parsing CMPT 379: Compilers Instructor: Anoop Sarkar anoopsarkar.github.io/compilers-class Parsing - Roadmap Parser: decision procedure: builds a parse tree Top-down vs. bottom-up
More informationCompiler Design 1. LR Parsing. Goutam Biswas. Lect 7
Compiler Design 1 LR Parsing Compiler Design 2 LR(0) Parsing An LR(0) parser can take shift-reduce decisions entirely on the basis of the states of LR(0) automaton a of the grammar. Consider the following
More informationAdministrivia. Test I during class on 10 March. Bottom-Up Parsing. Lecture An Introductory Example
Administrivia Test I during class on 10 March. Bottom-Up Parsing Lecture 11-12 From slides by G. Necula & R. Bodik) 2/20/08 Prof. Hilfinger CS14 Lecture 11 1 2/20/08 Prof. Hilfinger CS14 Lecture 11 2 Bottom-Up
More informationTHEORY OF COMPILATION
Lecture 04 Syntax analysis: top-down and bottom-up parsing THEORY OF COMPILATION EranYahav 1 You are here Compiler txt Source Lexical Analysis Syntax Analysis Parsing Semantic Analysis Inter. Rep. (IR)
More informationParsing -3. A View During TD Parsing
Parsing -3 Deterministic table-driven parsing techniques Pictorial view of TD and BU parsing BU (shift-reduce) Parsing Handle, viable prefix, items, closures, goto s LR(k): SLR(1), LR(1) Problems with
More informationShift-Reduce parser E + (E + (E) E [a-z] In each stage, we shift a symbol from the input to the stack, or reduce according to one of the rules.
Bottom-up Parsing Bottom-up Parsing Until now we started with the starting nonterminal S and tried to derive the input from it. In a way, this isn t the natural thing to do. It s much more logical to start
More informationBottom-up Analysis. Theorem: Proof: Let a grammar G be reduced and left-recursive, then G is not LL(k) for any k.
Bottom-up Analysis Theorem: Let a grammar G be reduced and left-recursive, then G is not LL(k) for any k. Proof: Let A Aβ α P and A be reachable from S Assumption: G is LL(k) A n A S First k (αβ n γ) First
More informationEXAM. CS331 Compiler Design Spring Please read all instructions, including these, carefully
EXAM Please read all instructions, including these, carefully There are 7 questions on the exam, with multiple parts. You have 3 hours to work on the exam. The exam is open book, open notes. Please write
More informationDefinition: A grammar G = (V, T, P,S) is a context free grammar (cfg) if all productions in P have the form A x where
Recitation 11 Notes Context Free Grammars Definition: A grammar G = (V, T, P,S) is a context free grammar (cfg) if all productions in P have the form A x A V, and x (V T)*. Examples Problem 1. Given the
More informationSyntax Analysis (Part 2)
Syntax Analysis (Part 2) Martin Sulzmann Martin Sulzmann Syntax Analysis (Part 2) 1 / 42 Bottom-Up Parsing Idea Build right-most derivation. Scan input and seek for matching right hand sides. Terminology
More informationLecture 11 Context-Free Languages
Lecture 11 Context-Free Languages COT 4420 Theory of Computation Chapter 5 Context-Free Languages n { a b : n n { ww } 0} R Regular Languages a *b* ( a + b) * Example 1 G = ({S}, {a, b}, S, P) Derivations:
More informationEXAM. CS331 Compiler Design Spring Please read all instructions, including these, carefully
EXAM Please read all instructions, including these, carefully There are 7 questions on the exam, with multiple parts. You have 3 hours to work on the exam. The exam is open book, open notes. Please write
More informationBottom-Up Syntax Analysis
Bottom-Up Syntax Analysis Wilhelm/Maurer: Compiler Design, Chapter 8 Reinhard Wilhelm Universität des Saarlandes wilhelm@cs.uni-sb.de and Mooly Sagiv Tel Aviv University sagiv@math.tau.ac.il Subjects Functionality
More informationChapter 4: Bottom-up Analysis 106 / 338
Syntactic Analysis Chapter 4: Bottom-up Analysis 106 / 338 Bottom-up Analysis Attention: Many grammars are not LL(k)! A reason for that is: Definition Grammar G is called left-recursive, if A + A β for
More informationCompiler Construction
Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: LR(0) Grammars LR(0) Grammars The case k = 0 is
More informationContext free languages
Context free languages Syntatic parsers and parse trees E! E! *! E! (! E! )! E + E! id! id! id! 2 Context Free Grammars The CF grammar production rules have the following structure X α being X N and α
More informationComputer Science 160 Translation of Programming Languages
Computer Science 160 Translation of Programming Languages Instructor: Christopher Kruegel Building a Handle Recognizing Machine: [now, with a look-ahead token, which is LR(1) ] LR(k) items An LR(k) item
More informationHarvard CS 121 and CSCI E-207 Lecture 9: Regular Languages Wrap-Up, Context-Free Grammars
Harvard CS 121 and CSCI E-207 Lecture 9: Regular Languages Wrap-Up, Context-Free Grammars Salil Vadhan October 2, 2012 Reading: Sipser, 2.1 (except Chomsky Normal Form). Algorithmic questions about regular
More informationBottom-Up Syntax Analysis
Bottom-Up Syntax Analysis Wilhelm/Seidl/Hack: Compiler Design Syntactic and Semantic Analysis, Chapter 3 Reinhard Wilhelm Universität des Saarlandes wilhelm@cs.uni-saarland.de and Mooly Sagiv Tel Aviv
More informationTAFL 1 (ECS-403) Unit- III. 3.1 Definition of CFG (Context Free Grammar) and problems. 3.2 Derivation. 3.3 Ambiguity in Grammar
TAFL 1 (ECS-403) Unit- III 3.1 Definition of CFG (Context Free Grammar) and problems 3.2 Derivation 3.3 Ambiguity in Grammar 3.3.1 Inherent Ambiguity 3.3.2 Ambiguous to Unambiguous CFG 3.4 Simplification
More informationChapter 5. Finite Automata
Chapter 5 Finite Automata 5.1 Finite State Automata Capable of recognizing numerous symbol patterns, the class of regular languages Suitable for pattern-recognition type applications, such as the lexical
More informationEXAM. Please read all instructions, including these, carefully NAME : Problem Max points Points 1 10 TOTAL 100
EXAM Please read all instructions, including these, carefully There are 7 questions on the exam, with multiple parts. You have 3 hours to work on the exam. The exam is open book, open notes. Please write
More information60-354, Theory of Computation Fall Asish Mukhopadhyay School of Computer Science University of Windsor
60-354, Theory of Computation Fall 2013 Asish Mukhopadhyay School of Computer Science University of Windsor Pushdown Automata (PDA) PDA = ε-nfa + stack Acceptance ε-nfa enters a final state or Stack is
More informationTheory of Computation - Module 3
Theory of Computation - Module 3 Syllabus Context Free Grammar Simplification of CFG- Normal forms-chomsky Normal form and Greibach Normal formpumping lemma for Context free languages- Applications of
More informationCOSE312: Compilers. Lecture 2 Lexical Analysis (1)
COSE312: Compilers Lecture 2 Lexical Analysis (1) Hakjoo Oh 2017 Spring Hakjoo Oh COSE312 2017 Spring, Lecture 2 March 12, 2017 1 / 15 Lexical Analysis ex) Given a C program float match0 (char *s) /* find
More informationBottom-Up Parsing. Ÿ rm E + F *idÿ rm E +id*idÿ rm T +id*id. Ÿ rm F +id*id Ÿ rm id + id * id
Bottom-Up Parsing Attempts to traverse a parse tree bottom up (post-order traversal) Reduces a sequence of tokens to the start symbol At each reduction step, the RHS of a production is replaced with LHS
More informationUNIT II REGULAR LANGUAGES
1 UNIT II REGULAR LANGUAGES Introduction: A regular expression is a way of describing a regular language. The various operations are closure, union and concatenation. We can also find the equivalent regular
More informationFoundations of Informatics: a Bridging Course
Foundations of Informatics: a Bridging Course Week 3: Formal Languages and Semantics Thomas Noll Lehrstuhl für Informatik 2 RWTH Aachen University noll@cs.rwth-aachen.de http://www.b-it-center.de/wob/en/view/class211_id948.html
More informationLecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS Berkley University 1
Lecture VII Part 2: Syntactic Analysis Bottom-up Parsing: LR Parsing. Prof. Bodik CS 164 -- Berkley University 1 Bottom-Up Parsing Bottom-up parsing is more general than topdown parsing And just as efficient
More informationBottom-Up Syntax Analysis
Bottom-Up Syntax Analysis Wilhelm/Seidl/Hack: Compiler Design Syntactic and Semantic Analysis Reinhard Wilhelm Universität des Saarlandes wilhelm@cs.uni-saarland.de and Mooly Sagiv Tel Aviv University
More informationCSC 4181Compiler Construction. Context-Free Grammars Using grammars in parsers. Parsing Process. Context-Free Grammar
CSC 4181Compiler Construction Context-ree Grammars Using grammars in parsers CG 1 Parsing Process Call the scanner to get tokens Build a parse tree from the stream of tokens A parse tree shows the syntactic
More informationFORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
15-453 FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY REVIEW for MIDTERM 1 THURSDAY Feb 6 Midterm 1 will cover everything we have seen so far The PROBLEMS will be from Sipser, Chapters 1, 2, 3 It will be
More informationAutomata Theory CS F-08 Context-Free Grammars
Automata Theory CS411-2015F-08 Context-Free Grammars David Galles Department of Computer Science University of San Francisco 08-0: Context-Free Grammars Set of Terminals (Σ) Set of Non-Terminals Set of
More informationCompiler Design Spring 2017
Compiler Design Spring 2017 3.4 Bottom-up parsing Dr. Zoltán Majó Compiler Group Java HotSpot Virtual Machine Oracle Corporation 1 Bottom up parsing Goal: Obtain rightmost derivation in reverse w S Reduce
More informationLecture 11 Sections 4.5, 4.7. Wed, Feb 18, 2009
The s s The s Lecture 11 Sections 4.5, 4.7 Hampden-Sydney College Wed, Feb 18, 2009 Outline The s s 1 s 2 3 4 5 6 The LR(0) Parsing s The s s There are two tables that we will construct. The action table
More informationBottom-Up Syntax Analysis
Bottom-Up Syntax Analysis Mooly Sagiv http://www.cs.tau.ac.il/~msagiv/courses/wcc13.html Textbook:Modern Compiler Design Chapter 2.2.5 (modified) 1 Pushdown automata Deterministic fficient Parsers Report
More informationTasks of lexer. CISC 5920: Compiler Construction Chapter 2 Lexical Analysis. Tokens and lexemes. Buffering
Tasks of lexer CISC 5920: Compiler Construction Chapter 2 Lexical Analysis Arthur G. Werschulz Fordham University Department of Computer and Information Sciences Copyright Arthur G. Werschulz, 2017. All
More informationContext-Free Grammars. 2IT70 Finite Automata and Process Theory
Context-Free Grammars 2IT70 Finite Automata and Process Theory Technische Universiteit Eindhoven May 18, 2016 Generating strings language L 1 = {a n b n n > 0} ab L 1 if w L 1 then awb L 1 production rules
More informationBottom up parsing. General idea LR(0) SLR LR(1) LALR To best exploit JavaCUP, should understand the theoretical basis (LR parsing);
Bottom up parsing General idea LR(0) SLR LR(1) LALR To best exploit JavaCUP, should understand the theoretical basis (LR parsing); 1 Top-down vs Bottom-up Bottom-up more powerful than top-down; Can process
More informationHarvard CS 121 and CSCI E-207 Lecture 10: CFLs: PDAs, Closure Properties, and Non-CFLs
Harvard CS 121 and CSCI E-207 Lecture 10: CFLs: PDAs, Closure Properties, and Non-CFLs Harry Lewis October 8, 2013 Reading: Sipser, pp. 119-128. Pushdown Automata (review) Pushdown Automata = Finite automaton
More informationFormal Languages, Grammars and Automata Lecture 5
Formal Languages, Grammars and Automata Lecture 5 Helle Hvid Hansen helle@cs.ru.nl http://www.cs.ru.nl/~helle/ Foundations Group Intelligent Systems Section Institute for Computing and Information Sciences
More informationCompiler Construction Lent Term 2015 Lectures (of 16)
Compiler Construction Lent Term 2015 Lectures 13 --- 16 (of 16) 1. Return to lexical analysis : application of Theory of Regular Languages and Finite Automata 2. Generating Recursive descent parsers 3.
More informationCompiler Construction Lent Term 2015 Lectures (of 16)
Compiler Construction Lent Term 2015 Lectures 13 --- 16 (of 16) 1. Return to lexical analysis : application of Theory of Regular Languages and Finite Automata 2. Generating Recursive descent parsers 3.
More informationSyntax Analysis - Part 1. Syntax Analysis
Syntax Analysis Outline Context-Free Grammars (CFGs) Parsing Top-Down Recursive Descent Table-Driven Bottom-Up LR Parsing Algorithm How to Build LR Tables Parser Generators Grammar Issues for Programming
More information1. For the following sub-problems, consider the following context-free grammar: S AA$ (1) A xa (2) A B (3) B yb (4)
ECE 468 & 573 Problem Set 2: Contet-free Grammars, Parsers 1. For the following sub-problems, consider the following contet-free grammar: S $ (1) (2) (3) (4) λ (5) (a) What are the terminals and non-terminals
More informationContext Free Languages (CFL) Language Recognizer A device that accepts valid strings. The FA are formalized types of language recognizer.
Context Free Languages (CFL) Language Recognizer A device that accepts valid strings. The FA are formalized types of language recognizer. Language Generator: Context free grammars are language generators,
More informationParsing. Context-Free Grammars (CFG) Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 26
Parsing Context-Free Grammars (CFG) Laura Kallmeyer Heinrich-Heine-Universität Düsseldorf Winter 2017/18 1 / 26 Table of contents 1 Context-Free Grammars 2 Simplifying CFGs Removing useless symbols Eliminating
More informationCompilers. Lexical analysis. Yannis Smaragdakis, U. Athens (original slides by Sam
Compilers Lecture 3 Lexical analysis Yannis Smaragdakis, U. Athens (original slides by Sam Guyer@Tufts) Big picture Source code Front End IR Back End Machine code Errors Front end responsibilities Check
More informationContext-Free Grammars (and Languages) Lecture 7
Context-Free Grammars (and Languages) Lecture 7 1 Today Beyond regular expressions: Context-Free Grammars (CFGs) What is a CFG? What is the language associated with a CFG? Creating CFGs. Reasoning about
More informationMA/CSSE 474 Theory of Computation
MA/CSSE 474 Theory of Computation CFL Hierarchy CFL Decision Problems Your Questions? Previous class days' material Reading Assignments HW 12 or 13 problems Anything else I have included some slides online
More informationTalen en Compilers. Johan Jeuring , period 2. October 29, Department of Information and Computing Sciences Utrecht University
Talen en Compilers 2015-2016, period 2 Johan Jeuring Department of Information and Computing Sciences Utrecht University October 29, 2015 12. LL parsing 12-1 This lecture LL parsing Motivation Stack-based
More informationCompiler Construction Lectures 13 16
Compiler Construction Lectures 13 16 Lent Term, 2013 Lecturer: Timothy G. Griffin 1 Generating Lexical Analyzers Source Program Lexical Analyzer tokens Parser Lexical specification Scanner Generator LEX
More informationCONTEXT FREE GRAMMAR AND
CONTEXT FREE GRAMMAR AND PARSING STATIC ANALYSIS - PARSING Source language Scanner (lexical analysis) tokens Parser (syntax analysis) Syntatic structure Semantic Analysis (IC generator) Syntatic/sema ntic
More informationParsing VI LR(1) Parsers
Parsing VI LR(1) Parsers N.B.: This lecture uses a left-recursive version of the SheepNoise grammar. The book uses a rightrecursive version. The derivations (& the tables) are different. Copyright 2005,
More informationChapter 3. Regular grammars
Chapter 3 Regular grammars 59 3.1 Introduction Other view of the concept of language: not the formalization of the notion of effective procedure, but set of words satisfying a given set of rules Origin
More informationContext Free Languages. Automata Theory and Formal Grammars: Lecture 6. Languages That Are Not Regular. Non-Regular Languages
Context Free Languages Automata Theory and Formal Grammars: Lecture 6 Context Free Languages Last Time Decision procedures for FAs Minimum-state DFAs Today The Myhill-Nerode Theorem The Pumping Lemma Context-free
More informationContext-free Languages and Pushdown Automata
Context-free Languages and Pushdown Automata Finite Automata vs CFLs E.g., {a n b n } CFLs Regular From earlier results: Languages every regular language is a CFL but there are CFLs that are not regular
More informationCompiling Techniques
Lecture 3: Introduction to 22 September 2017 Reminder Action Create an account and subscribe to the course on piazza. Coursework Starts this afternoon (14.10-16.00) Coursework description is updated regularly;
More information컴파일러입문 제 3 장 정규언어
컴파일러입문 제 3 장 정규언어 목차 3.1 정규문법과정규언어 3.2 정규표현 3.3 유한오토마타 3.4 정규언어의속성 Regular Language Page 2 정규문법과정규언어 A study of the theory of regular languages is often justified by the fact that they model the lexical
More informationFundamentele Informatica II
Fundamentele Informatica II Answer to selected exercises 5 John C Martin: Introduction to Languages and the Theory of Computation M.M. Bonsangue (and J. Kleijn) Fall 2011 5.1.a (q 0, ab, Z 0 ) (q 1, b,
More informationWhat Is a Language? Grammars, Languages, and Machines. Strings: the Building Blocks of Languages
Do Homework 2. What Is a Language? Grammars, Languages, and Machines L Language Grammar Accepts Machine Strings: the Building Blocks of Languages An alphabet is a finite set of symbols: English alphabet:
More informationSyntax Analysis Part I
1 Syntax Analysis Part I Chapter 4 COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University, 2007-2013 2 Position of a Parser in the Compiler Model Source Program Lexical Analyzer
More informationLR(1) Parsers Part II. Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved.
LR(1) Parsers Part II Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. LR(1) Parsers A table-driven LR(1) parser looks like source code Scanner Table-driven Parser IR grammar Parser
More informationPushdown Automata. Reading: Chapter 6
Pushdown Automata Reading: Chapter 6 1 Pushdown Automata (PDA) Informally: A PDA is an NFA-ε with a infinite stack. Transitions are modified to accommodate stack operations. Questions: What is a stack?
More informationSyntax Analysis Part I
1 Syntax Analysis Part I Chapter 4 COP5621 Compiler Construction Copyright Robert van Engelen, Florida State University, 2007-2013 2 Position of a Parser in the Compiler Model Source Program Lexical Analyzer
More informationCMSC 330: Organization of Programming Languages. Theory of Regular Expressions Finite Automata
: Organization of Programming Languages Theory of Regular Expressions Finite Automata Previous Course Review {s s defined} means the set of string s such that s is chosen or defined as given s A means
More informationLanguages. Languages. An Example Grammar. Grammars. Suppose we have an alphabet V. Then we can write:
Languages A language is a set (usually infinite) of strings, also known as sentences Each string consists of a sequence of symbols taken from some alphabet An alphabet, V, is a finite set of symbols, e.g.
More informationTHEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET
THEORY OF COMPUTATION (AUBER) EXAM CRIB SHEET Regular Languages and FA A language is a set of strings over a finite alphabet Σ. All languages are finite or countably infinite. The set of all languages
More informationChapter 5: Context-Free Languages
Chapter 5: Context-Free Languages Peter Cappello Department of Computer Science University of California, Santa Barbara Santa Barbara, CA 93106 cappello@cs.ucsb.edu Please read the corresponding chapter
More informationSyntactical analysis. Syntactical analysis. Syntactical analysis. Syntactical analysis
Context-free grammars Derivations Parse Trees Left-recursive grammars Top-down parsing non-recursive predictive parsers construction of parse tables Bottom-up parsing shift/reduce parsers LR parsers GLR
More informationPush-down Automata = FA + Stack
Push-down Automata = FA + Stack PDA Definition A push-down automaton M is a tuple M = (Q,, Γ, δ, q0, F) where Q is a finite set of states is the input alphabet (of terminal symbols, terminals) Γ is the
More informationLR(1) Parsers Part III Last Parsing Lecture. Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved.
LR(1) Parsers Part III Last Parsing Lecture Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. LR(1) Parsers A table-driven LR(1) parser looks like source code Scanner Table-driven Parser
More informationCurs 8. LR(k) parsing. S.Motogna - FL&CD
Curs 8 LR(k) parsing Terms Reminder: rhp = right handside of production lhp = left handside of production Prediction see LL(1) Handle = symbols from the head of the working stack that form (in order) a
More informationPage 1. Compiler Lecture Note, (Regular Language) 컴파일러입문 제 3 장 정규언어. Database Lab. KHU
Page 1 컴파일러입문 제 3 장 정규언어 Page 2 목차 I. 정규문법과정규언어 II. 정규표현 III. 유한오토마타 VI. 정규언어의속성 Page 3 정규문법과정규언어 A study of the theory of regular languages is often justified by the fact that they model the lexical analysis
More informationClarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.
CMSC 330: Organization of Programming Languages Last Lecture Languages Sets of strings Operations on languages Finite Automata Regular expressions Constants Operators Precedence CMSC 330 2 Clarifications
More informationEinführung in die Computerlinguistik
Einführung in die Computerlinguistik Context-Free Grammars (CFG) Laura Kallmeyer Heinrich-Heine-Universität Düsseldorf Summer 2016 1 / 22 CFG (1) Example: Grammar G telescope : Productions: S NP VP NP
More information(b) If G=({S}, {a}, {S SS}, S) find the language generated by G. [8+8] 2. Convert the following grammar to Greibach Normal Form G = ({A1, A2, A3},
Code No: 07A50501 R07 Set No. 2 III B.Tech I Semester Examinations,MAY 2011 FORMAL LANGUAGES AND AUTOMATA THEORY Computer Science And Engineering Time: 3 hours Max Marks: 80 Answer any FIVE Questions All
More information1. (a) Explain the procedure to convert Context Free Grammar to Push Down Automata.
Code No: R09220504 R09 Set No. 2 II B.Tech II Semester Examinations,December-January, 2011-2012 FORMAL LANGUAGES AND AUTOMATA THEORY Computer Science And Engineering Time: 3 hours Max Marks: 75 Answer
More information1. For the following sub-problems, consider the following context-free grammar: S AB$ (1) A xax (2) A B (3) B yby (5) B A (6)
ECE 468 & 573 Problem Set 2: Contet-free Grammars, Parsers 1. For the following sub-problems, consider the following contet-free grammar: S AB$ (1) A A (2) A B (3) A λ (4) B B (5) B A (6) B λ (7) (a) What
More informationContext-Free Grammar
Context-Free Grammar CFGs are more powerful than regular expressions. They are more powerful in the sense that whatever can be expressed using regular expressions can be expressed using context-free grammars,
More informationCA Compiler Construction
CA4003 - Compiler Construction Bottom Up Parsing David Sinclair Bottom Up Parsing LL(1) parsers have enjoyed a bit of a revival thanks to JavaCC. LL(k) parsers must predict which production rule to use
More informationTheory of Computation
Fall 2002 (YEN) Theory of Computation Midterm Exam. Name:... I.D.#:... 1. (30 pts) True or false (mark O for true ; X for false ). (Score=Max{0, Right- 1 2 Wrong}.) (1) X... If L 1 is regular and L 2 L
More informationGrammars and Context-free Languages; Chomsky Hierarchy
Regular and Context-free Languages; Chomsky Hierarchy H. Geuvers Institute for Computing and Information Sciences Version: fall 2015 H. Geuvers Version: fall 2015 Huygens College 1 / 23 Outline Regular
More informationSyntax Analysis Part I. Position of a Parser in the Compiler Model. The Parser. Chapter 4
1 Syntax Analysis Part I Chapter 4 COP5621 Compiler Construction Copyright Robert van ngelen, Flora State University, 2007 Position of a Parser in the Compiler Model 2 Source Program Lexical Analyzer Lexical
More information5 Context-Free Languages
CA320: COMPUTABILITY AND COMPLEXITY 1 5 Context-Free Languages 5.1 Context-Free Grammars Context-Free Grammars Context-free languages are specified with a context-free grammar (CFG). Formally, a CFG G
More informationCS415 Compilers Syntax Analysis Bottom-up Parsing
CS415 Compilers Syntax Analysis Bottom-up Parsing These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Review: LR(k) Shift-reduce Parsing Shift reduce
More informationPushdown Automata: Introduction (2)
Pushdown Automata: Introduction Pushdown automaton (PDA) M = (K, Σ, Γ,, s, A) where K is a set of states Σ is an input alphabet Γ is a set of stack symbols s K is the start state A K is a set of accepting
More informationNODIA AND COMPANY. GATE SOLVED PAPER Computer Science Engineering Theory of Computation. Copyright By NODIA & COMPANY
No part of this publication may be reproduced or distributed in any form or any means, electronic, mechanical, photocopying, or otherwise without the prior permission of the author. GATE SOLVED PAPER Computer
More informationCS20a: summary (Oct 24, 2002)
CS20a: summary (Oct 24, 2002) Context-free languages Grammars G = (V, T, P, S) Pushdown automata N-PDA = CFG D-PDA < CFG Today What languages are context-free? Pumping lemma (similar to pumping lemma for
More informationPushdown Automata. We have seen examples of context-free languages that are not regular, and hence can not be recognized by finite automata.
Pushdown Automata We have seen examples of context-free languages that are not regular, and hence can not be recognized by finite automata. Next we consider a more powerful computation model, called a
More informationCMSC 330: Organization of Programming Languages. Pushdown Automata Parsing
CMSC 330: Organization of Programming Languages Pushdown Automata Parsing Chomsky Hierarchy Categorization of various languages and grammars Each is strictly more restrictive than the previous First described
More informationSt.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad
St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad-500 014 Subject: FORMAL LANGUAGES AND AUTOMATA THEORY Class : CSE II PART A (SHORT ANSWER QUESTIONS) UNIT- I 1 Explain transition diagram, transition
More informationCompiler Design. Spring Lexical Analysis. Sample Exercises and Solutions. Prof. Pedro C. Diniz
Compiler Design Spring 2011 Lexical Analysis Sample Exercises and Solutions Prof. Pedro C. Diniz USC / Information Sciences Institute 4676 Admiralty Way, Suite 1001 Marina del Rey, California 90292 pedro@isi.edu
More informationChapter 1. Formal Definition and View. Lecture Formal Pushdown Automata on the 28th April 2009
Chapter 1 Formal and View Lecture on the 28th April 2009 Formal of PA Faculty of Information Technology Brno University of Technology 1.1 Aim of the Lecture 1 Define pushdown automaton in a formal way
More informationTheory of Computation (IV) Yijia Chen Fudan University
Theory of Computation (IV) Yijia Chen Fudan University Review language regular context-free machine DFA/ NFA PDA syntax regular expression context-free grammar Pushdown automata Definition A pushdown automaton
More informationIntro to Theory of Computation
Intro to Theory of Computation LECTURE 7 Last time: Proving a language is not regular Pushdown automata (PDAs) Today: Context-free grammars (CFG) Equivalence of CFGs and PDAs Sofya Raskhodnikova 1/31/2016
More information