21/1/2010
1
Bài 4
BNF v
à
sơ
đồ
p
h
áp
1
BNF
sơ
đồ
pháp
Công thc siêu ng Backus và các biến th
Siêu ng(metalanguage ):Ngôn ngs
dng các lnh để tngôn ngkhác
BNF
(Backus
Naur
Form)
dng
2
BNF
(Backus
Naur
Form)
dng
pháp để tcác ngôn nglptrình
BNF đượcsdng rng rãi để tvăn
phmca các ngôn nglp trình, tplnh
các giao thctruyn thông.
Các biến th ca công thc siêu
ng Backus
pháp BNF mttpcáclut,vếtrái
camilutlàmtcu trúc pháp.
Tên cacutrúccúphápđượcgilàký
hiu
không
kết
thúc
3
hiu
không
kết
thúc
.
Các hiu không kết thúc thường được
bao trong cp <>.
Cáckýhiukết thúc thường được phân
cách bng cp nháy đơnhoc nháy kép
Công thc siêu ng Backus và
các biến th
Mikýhiu không kết thúc đượcđịnh
nghĩabng mt hay nhiulut.
Các lutcódng
4
N::=s
(N hiu không kếtthúc,slàmtxâu
gm 0 hay nhiukýhiukết thúc không
kết thúc. Các lut chung vếtrái được
phân cách bng | )
21/1/2010
2
Ví d v BNF
<S>::=’-’<Sthp phân>|<sthp phân>
<Sthp phân>::=<Dãy chs>|<Dãy
chs>’.’<Dãy chs>
5
<Dãy chs>::=<Chs>|<Chs><Dãy
chs>
<Chs>::=’0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’
EBNF
EBNF (Extended BNF ) đượcpháttrint
pháp BNF. EBNF pháp tương tBNF
nhưng đượcđơnginhoábng cách sdng
mt
s
hiu
đặc
bit
:
6
mt
s
hiu
đặc
bit
:
[] phn này tuchn(có hoc không)
{} phnnàycóthlplimtslntuýhoc
không xuthinlnnào(Nếulplimhaynln
, dùng n hay m chstrên hocdưới)
Không cn dùng ‘’ cho hiukết thúc
So sánh BNF và EBNF
Ví d
Trong EBNF
<Lnh
if>
::
=
IF
<Biu
thc>
THEN
<Lnh>
7
<Lnh
if>
::
=
IF
<Biu
thc>
THEN
<Lnh>
[ELSE <Lnh>]
Trong BNF
<Lnh if>::= ‘IF’ <Biuthc> ‘THEN’
<Lnh>| ‘IF’ <Biuthc> THEN <Lnh>
‘ELSE’ <Lnh>
Sơ đồ cú pháp
công cụđ t pháp ca ngôn
nglptrìnhdướidng đồ th
8
Misơđ pháp mtđồ thịđnh
hướng vilivàovàliraxácđịnh.
Misơđ pháp mt tên duy nht
21/1/2010
3
Ví d mt sơ đồ cú pháp
9
Sơ đồ cú pháp ca KPL (Tng th CT)
1 0
Sơ đồ cú pháp ca KPL (Khi)
1 1
Sơ đồ cú pháp ca KPL
(tham s, hng không du)
1 2
21/1/2010
4
Sơ đồ cú pháp ca KPL (Khai
báo)
1 3
Sơ đồ cú pháp ca KPL
(lnh)
1 4
Sơ đồ cú pháp ca KPL (bi
u
thc)
1 5
Sơ đồ cú pháp ca KPL
(tha s,điu kin)
1 6
21/1/2010
5
Sơ đồ cú pháp ca KPL(tên, s)
1 7