cop 3402 system software
Post on 05-Feb-2016
46 Views
Preview:
DESCRIPTION
TRANSCRIPT
COP 3402 System Software
Recitation Notes21st September 2007
Limits Of Regular Expressions
• Regular expressions are very useful for recognizing patterns
• However, there are some patterns they cannot handle.
• An Example is strings of the form anbn
Context Free Languages
• Since regular expressions cannot handle some important patterns, we need a more powerful method of describing patterns.
• Context Free Languages are one such mechanism
• Proposed by Noam Chomsky in the 1950s.
BNF
• BNF is a way to express Context free languages.
• First used in ALGOL 58. • BNF stands for Backus-Naur Form• Named after two members of the ALGOL
design team.
BNF Example for PL/0
• Next slide contains a BNF description that can verify the correctness of any PL/0 program.
• Conventions:– Variables/Tokens are written between “<“ and
”>”.– The “→” symbol can be read as “is defined as”.– “ε “ is the empty string.
BNF Grammer for PL/0
Sample PL/0 Programme• const m = 7, n = 85; • var i,x,y,z,q,r; • procedure mult; • var a, b; • begin • a := x; b := y; z := 0; • while b > 0 do • begin • if odd x then z := z+a; • a := 2*a; • b := b/2; • end • end;• begin• x := m;• y := n;• call mult;• end.
Syntax Graphs
Visual Way to represent BNF Grammars
Syntax Graphs Cont’d
Extended BNF
• Conventions– Optional Constructions are enclosed in square
braces ‘[‘ and ‘]’.– Constructs enclosed in curly braces ‘{‘ and ‘}’ are
repeated zero or more times.
• Example on next slide
EBNF Example for PL/0
Another Example
• Try to write a BNF Grammar that validates strings of the type anbn.
• Hint: anbn can be rewritten as aan-1bn-1b.
Solution
• <string> → a<string>b | ε• Will ensure that – string always has the same number of a’s and b’s– The a’s always come before the b’s in the string.
• As to keeping track of the ‘n’, we don’t care in this example because the number of a’s and b’s will always be matched.s
top related