Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 3.3.4- 4.1.

Slides:



Advertisements
Similar presentations
Formal Languages: main findings so far A problem can be formalised as a formal language A formal language can be defined in various ways, e.g.: the language.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Chapter 5 Pushdown Automata
C O N T E X T - F R E E LANGUAGES ( use a grammar to describe a language) 1.
Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
Pushdown Automata Chapter 12. Recognizing Context-Free Languages We need a device similar to an FSM except that it needs more power. The insight: Precisely.
Pushdown Automata Consists of –Pushdown stack (can have terminals and nonterminals) –Finite state automaton control Can do one of three actions (based.
Pushdown Automata Part II: PDAs and CFG Chapter 12.
CS 310 – Fall 2006 Pacific University CS310 Pushdown Automata Sections: 2.2 page 109 October 9, 2006.
1 Normal Forms for Context-free Grammars. 2 Chomsky Normal Form All productions have form: variable and terminal.
CS5371 Theory of Computation Lecture 8: Automata Theory VI (PDA, PDA = CFG)
A shorted version from: Anastasia Berdnikova & Denis Miretskiy.
PZ03A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ03A - Pushdown automata Programming Language Design.
Grammars, Languages and Finite-state automata Languages are described by grammars We need an algorithm that takes as input grammar sentence And gives a.
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 8 Mälardalen University 2010.
Pushdown Automata.
Pushdown Automata CS 130: Theory of Computation HMU textbook, Chap 6.
Pushdown Automata (PDAs)
Parsing Introduction Syntactic Analysis I. Parsing Introduction 2 The Role of the Parser The Syntactic Analyzer, or Parser, is the heart of the front.
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005.
Pushdown Automata Chapters Generators vs. Recognizers For Regular Languages: –regular expressions are generators –FAs are recognizers For Context-free.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
PZ03A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ03A - Pushdown automata Programming Language Design.
Foundations of (Theoretical) Computer Science Chapter 2 Lecture Notes (Section 2.2: Pushdown Automata) Prof. Karen Daniels, Fall 2010 with acknowledgement.
98 Nondeterministic Automata vs Deterministic Automata We learned that NFA is a convenient model for showing the relationships among regular grammars,
Grammar Set of variables Set of terminal symbols Start variable Set of Production rules.
Formal grammars A formal grammar is a system for defining the syntax of a language by specifying sequences of symbols or sentences that are considered.
Pushdown Automata Chapter 12. Recognizing Context-Free Languages Two notions of recognition: (1) Say yes or no, just like with FSMs (2) Say yes or no,
1 Chapter Pushdown Automata. 2 Section 12.2 Pushdown Automata A pushdown automaton (PDA) is a finite automaton with a stack that has stack operations.
CMSC 330: Organization of Programming Languages Pushdown Automata Parsing.
Week 14 - Friday.  What did we talk about last time?  Simplifying FSAs  Quotient automata.
CS 154 Formal Languages and Computability March 22 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
CS6800 Advance Theory of Computation Spring 2016 Nasser Alsaedi
Lecture 11  2004 SDU Lecture7 Pushdown Automaton.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesAlgebraic.
6. Pushdown Automata CIS Automata and Formal Languages – Pei Wang.
Formal Languages, Automata and Models of Computation
Pushdown Automata.
CSE 105 theory of computation
Table-driven parsing Parsing performed by a finite state machine.
Linear Bounded Automata LBAs
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Natural Language Processing - Formal Language -
CSE 105 theory of computation
Pushdown Automata PDAs
Pushdown Automata PDAs
Pushdown Automata PDAs
PDAs Accept Context-Free Languages
Pushdown Automata PDAs
Chapter 7 PUSHDOWN AUTOMATA.
Bottom-Up Syntax Analysis
PZ03A - Pushdown automata
NPDAs Accept Context-Free Languages
CSE322 The Chomsky Hierarchy
A HIERARCHY OF FORMAL LANGUAGES AND AUTOMATA
Jaya Krishna, M.Tech, Assistant Professor
Compiler Design 7. Top-Down Table-Driven Parsing
Chapter 2 Context-Free Language - 01
CSE 105 theory of computation
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Principles of Computing – UFCFA3-30-1
Pushdown automata The Chinese University of Hong Kong Fall 2011
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
CSE 105 theory of computation
The Chomsky Hierarchy Costas Busch - LSU.
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
Normal Forms for Context-free Grammars
Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section
CSE 105 theory of computation
Presentation transcript:

Pushdown automata Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 3.3.4- 4.1

Chomsky Hierarchy aX -> ab BA -> AB Regular Grammar (Type 3)  Finite State Machine Context-free Grammar (Type 2)  Push down automata Context-sensitive grammar (Type 1)  bounded Turing machine aX -> ab BA -> AB Unrestricted grammar (Type 0)  Turing machine

Undecidability Turing machine (1936) Church’s thesis  Any computable function can be computed by a Turing machine Undecidable  A program that has no general algorithm for its solution Halting problem, Busy Beaver problem, …

Pushdown Automaton A pushdown automaton (PDA) is an abstract model machine similar to the FSA It has a finite set of states. However, in addition, it has a pushdown stack. Moves of the PDA are as follows: 1. An input symbol is read and the top symbol on the stack is read. 2. Based on both inputs, the machine enters a new state and writes zero or more symbols onto the pushdown stack. 3. Acceptance of a string occurs if the stack is ever empty. (Alternatively, acceptance can be if the PDA is in a final state. Both models can be shown to be equivalent.)

Power of PDAs PDAs are more powerful than FSAs. anbn, which cannot be recognized by an FSA, can easily be recognized by the PDA. Stack all a symbols and, for each b, pop an a off the stack. If the end of input is reached at the same time that the stack becomes empty, the string is accepted. It is less clear that the languages accepted by PDAs are equivalent to the context-free languages.

PDAs to produce derivation strings Given some BNF (context free grammar). Produce the leftmost derivation of a string using a PDA: 1. If the top of the stack is a terminal symbol, compare it to the next input symbol; pop it off the stack if the same. It is an error if the symbols do not match. 2. If the top of the stack is a nonterminal symbol X, replace X on the stack with some string , where  is the right hand side of some production X . This PDA now simulates the leftmost derivation for some context-free grammar. This construction actually develops a nondeterministic PDA that is equivalent to the corresponding BNF grammar. (i.e., step 2 may have multiple options.)

NDPDAs are different from DPDAs What is the relationship between deterministic PDAs and nondeterministic PDAs? They are different. Consider the set of palindromes, strings reading the same forward and backward, generated by the grammar S  0S0 | 1S1 | 2 We can recognize such strings by a deterministic PDA: 1. Stack all 0s and 1s as read. 2. Enter a new state upon reading a 2. 3. Compare each new input to the top of stack, and pop stack. However, consider the following set of palindromes: S  0S0 | 1S1 | 0 | 1 In this case, we never know where the middle of the string is. To recognize these palindromes, the automaton must guess where the middle of the string is (i.e., is nondeterministic).

PDA example Given the palindrome 011010110, the PDA needs to guess where the middle symbol is: Stack: Guess Middle: Match remainder: 0 11010110 0 1 1010110 01 1 010110 011 0 10110 0110 1 0110 01101 0 110 011010 1 10 0110101 1 0 01101011 0 Only the fifth option, where the machine guesses that 0110 is the first half, terminates successfully. If some sequence of guesses leads to a complete parse of the input string, then the string is valid according to the grammar.

Language-machine equivalence Already shown: Regular languages = FSA = NDFSA Context free languages = NDPDA. It can be shown that NDPDA not the same as DPDA For context sensitive languages, we have Linear Bounded Automata (LBA) For unrestricted languages we have Turing machines (TM) Unrestricted languages = TM = NDTM Context sensitive languages = NDLBA. It is still unknown if NDLBA=DLBA

Grammar-machine equivalence

General parsing algorithms Knuth in 1965 showed that the deterministic PDAs were equivalent to a class of grammars called LR(k) [Left-to-right parsing with k symbol lookahead] Create a PDA that would decide whether to stack the next symbol or pop a symbol off the stack by looking k symbols ahead. This is a deterministic process. For k=1 process is efficient. Tools built to process LR(k) grammars (YACC - Yet Another Compiler Compiler) LR(k), SLR(k) [Simple LR(k)], and LALR(k) [Lookahead LR(k)] are all techniques used today to build efficient parsers.