Parsing

1 / 17

Parsing - PowerPoint PPT Presentation

Parsing. Recognition of strings in a language. Graph of a Grammar. Represents leftmost derivations of a CFG. A path from node S to a node w is a leftmost derivation. S. aS. bB. a. baB. bbC. aaS. abB. bbS. …. Properties of Graph of a Grammar.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'Parsing' - kasi

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

Parsing

Recognition of strings in a language

L7Parse

Graph of a Grammar
• Represents leftmost derivations of a CFG.
• A path from node S to a node w is a leftmost derivation.

L7Parse

S

aS

bB

a

baB

bbC

aaS

abB

bbS

L7Parse

Properties of Graph of a Grammar
• Every node has a finite number of children.
• The number of leaves is infinite if the language is infinite.
• Typical case.
• There can be infinite long paths (derivations).
• Loops in depth-first traversals.

L7Parse

(Illustrates ambiguity in the grammar.)

Directed

Acyclic

Graph

S

aS

Sb

ab

Sbb

aaS

aab

aSb

abb

L7Parse

Parser

A program that determines if a string

by constructing a derivation. Equivalently,

it searches the graph of G.

• Top-down parsers
• Constructs the derivation tree from root to leaves.
• Leftmost derivation.
• Bottom-up parsers
• Constructs the derivation tree from leaves to root.
• Rightmost derivation in reverse.

L7Parse

S

S

S

S

S

S

S

S

S

a

a

b

S

Derivation

Trees

Leftmost

derivation

L7Parse

S

S

S

S

S

S

S

S

S

b

a

b

Rightmost

derivation

S

Derivation

Trees

S

S

S

S

Rightmost

Derivation

in Reverse

S

S

a

b

L7Parse

Search the graph of a grammar breadth-first

Uses: Queue

(+) Always terminates with shortest derivation

(-) Inefficient in general.

Search the graph of a grammar depth-first

Uses: Stack

(-) Can get into infinite loops

(e.g., left recursion)

(+) Efficient in general.

L7Parse

Determining when
• Number of terminals in sentential form

>length of w

• Prefix of sentential form preceding the leftmost non-terminal not a prefix of w.
• No rules applicable to sentential form.

L7Parse

Queue-up left

sentential forms

level by level

Parse

successful

S

A

T

A+T

b

(A)

A+T+T

T+T

(A)+T

T+T+T

(T)

(A+T)

A+T+T+T

(T)+T

(b)

((A))

(b)+T

(b)+b

L7Parse

Depth-first top-down parser

Use stack to

pursue entire

path from left

Parse

fails

S

A

T

A+T

b

(A)

A+T+T

T+T

Backtrack

On failure

(T)

(A+T)

T+T+T

A+T+T+T

(b)

((A))

L7Parse

Summary
• In BFTD version, all left derivations investigated in parallel.
• In DFTD version, one specific derivation is pursued to completion.
• Done, if succeeds.
• Otherwise, backtrack and investigate another path.

(Incomplete strategy)

L7Parse

T+b

A+b

A+T

Bottom-up parsing

(b)+b

Parse

successful

(T)+b

(b)+T

(A)+b

(T)+T

(T)+T

Not

allowed

(b)+A

(S)+b

(A)+T

A

S

L7Parse

Practical Parsers
• Language/Grammar designed to enable deterministic (directed and backtrack-free) searches.
• Uses lookahead tokens and/or exploits the context in the sentential form constructed so far.

“Look before you leap.” vs “Procrastination principle.”

• Top-down parsers : LL(k) languages