Loading in 2 Seconds...

CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 8 Mälardalen University

Loading in 2 Seconds...

- By
**wyome** - Follow User

- 120 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 8 Mälardalen University' - wyome

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Context-Free Languages

ContentContext-Free LanguagesPush-Down Automata, PDANPDA: Non-Deterministic PDAFormal Definitions for NPDAs NPDAs Accept Context-Free LanguagesConverting NPDA to Context-Free Grammar

Based on C Busch, RPI, Models of Computation

automaton

Context-Free Languages

Context-Free

Grammars

Pushdown

Automata

(CF grammars are

defined as generalized Regular Grammars)

is string of variables and terminals

Definition: Context-Free GrammarsGrammar

Variables

Terminal

symbols

Start

variables

Productions of the form:

A PDA can write symbols on stack and read them later on.

POP reading symbol PUSH writing symbol

All access to the stack is only on the top!

(Stack top is written leftmost in the string, e.g. yxz)

A stack is valuable as it can hold an unlimitedamount of information (but it is not random access!).

The stack allows pushdown automata to recognize some non-regular languages.

stack

top

Replace

(An alternative is to either start and finish with empty stack or with a stack bottom symbol such as $)

- All the input is consumed
- The last state is a final state
- Stack is in the initial condition
- (either: empty (when we started with empty stack),
- or: bottom symbol reached, depending on convention)

is the language accepted by the NPDA:

Another NPDA example

NPDAM

new state

current state

current stack top

new stack top

current input symbol

An unspecified transition function is to the null set and represents a dead configuration for the NPDA.

states

States

Input

alphabet

Stack

start

symbol

Transition

function

Stack

alphabet

Formal DefinitionNon-Deterministic Pushdown Automaton NPDA

For convenience we write

NPDAM

NPDAM

Context-Free

Languages

(Grammars)

Languages

Accepted by

NPDAs

Convert any context-free grammarGto a NPDA Mwith L(G) = L(M)

Context-Free

Languages

(Grammars)

Languages

Accepted by

NPDAs

Convert any NPDA M to a context-free grammarGwith L(M) = L(G)

What is the equivalent NPDA?

A leftmost derivation:

The grammar simulates the machine

A derivation in Grammar

variables

terminals

Input processed

Stack contents

in NPDA M

Some Simplifications

- First we modify the NPDA so that
- It has a single final state qf and
- It empties the stack when it accepts the input.

Original NPDA

Empty Stack

Second we modify the NPDA transitions.

All transitions will have form:

or

which means that each move

increases/decreases stack by a single symbol.

Thosesimplificationsdo not affect generality of our argument.

- It can be shown that for any NPDA there exists an equivalent one having the above two properties
- i.e.
- the equivalent NPDA with a single final state which empties its stack when it accepts the input, and which for each move increases/decreases stack by a single symbol.

we add production:

From NPDA to CFG, in short:

- When we write a grammar, we can use any variable names we choose. As in programming languages, we like to use "meaningful" variable names.
- Translating an NPDA into a CFG, we will use variable names that encode information about both the state of the NPDA and the stack contents. Variable names will have the form [qiAqj], where qi and qj are states and A is a variable.
- The "meaning" of the variable [qiAqj] is that the NPDA can go from state qi with Ax on the stack to state qj with x on the stack. Each transition of the form (qi, a, A) = (qj,l) results in a single grammar rule.

From NPDA to CFG

- Each transition of the form (qi, a, A) = (qj, BC) results in a multitude of grammar rules, one for each pair of states qx and qy in the NPDA.
- This algorithm results in a lot of useless (unreachable) productions, but the useful productions define the context-free grammar recognized by the NPDA.

http://www.seas.upenn.edu/~cit596/notes/dave/npda-cfg6.htmlhttp://www.cs.duke.edu/csed/jflap/tutorial/pda/cfg/index.html using JFLAP

Languages

(Grammars)

Languages

Accepted by

NPDAs

We have the procedure to convert

any NPDA Mto a context-free

grammar G with L(M) = L(G)

which means:

We have already shown that for any context-free language

there is an NPDA

that accepts the same language. That is:

Languages

Accepted by

NPDAs

Context-FreeLanguages(Grammars)

Grammar production:

By construction of Grammar:

if and only if

in the NPDA going from qito qj

the stack doesn’t change below

and A is removed from stack

Language consisting solely of a’s or an equal number of a´s and b´s.

Concerning examination in the course:

Exercises are voluntary

Labs are voluntary

Midterms are voluntary

Lectures are voluntary…

All of them are recommended!

JFLAP demo

http://www.cs.duke.edu/csed/jflap/movies

Download Presentation

Connecting to Server..