Professional Documents
Culture Documents
PROGRAMMING LANGUAGES
GRAMMAR
2
GRAMMAR
<sentence> <noun-phrase><verb-phrase>
<noun-phrase> <article><adjective><noun>
<noun-phrase> <article><noun>
<verb-phrase> <verb><adverb> | <verb>
<article> a | the
<adjective> large | hungry
<noun> rabbit | mathematician
<verb> eat | hops
<adverb> quickly | wildly 3
GRAMMAR
Let = { a, b }, N = { A, B, S } , S = { S }
P = S ABa ,
A BB ,
B ab ,
AB b
9
CLASSIFICATION OF GRAMMAR
= { a,b,c } , N ={ S,B,C }
P= S aSbc
S aBC
aB ab
bC bc
cb bc
= { a,b } , N ={ S,A}
P = S bSbb
SA
A aA
A
= { a,b,c } , N ={ S,A }
P= S → aS
S → bA
A→
A → cA
P : A B |
B 0A1
Leftmost derivation
A => B
=> 0A1
=> 0B1
=> 00A11
=> 00B11
=> 000A111
=> 000111
19
Some Pascal production rules
<expression> <simple expression>
<simple expression> <term> | <sign><term> | <simple
expression><adding operator><term>
<adding operator> + | -
<multiplying operator> * | / | div | mod
<term> <factor> |
<term><multiplying operator><factor>
<factor> <identifier> | <unsigned constant> |
(<expression>) 20
<unsigned constant> <unsigned number>
<unsigned number> <unsigned integer> |
<unsigned real>
<unsigned integer>
<digit><unsigned integer> | <digit >