Slide Chương trình dịch (UNIT4) - GV Nguyễn Thị Thu Hương

LI
lienhejb
0 downloads
5
0

Document content

Page 1

21/1/2010 Công thức siêu ngữ Backus và các biến thể Bài 4 „ Siêu ngữ (metalanguage ):Ngôn ngữ sử dụng các lệnh để mô tả ngôn ngữ khác BNF vBNF vàà ssơơ đồđồ cúcú pphápháp BNFBNF (Backus(Backus NaurNaur Form)Form) làlà ddạạngng siêusiêu cúcú „„ pháp để mô tả các ngôn ngữ lập trình „ BNF được sử dụng rộng rãi để mô tả văn phạm của các ngôn ngữ lập trình, tập lệnh và các giao thức truyền thông. 1 2 Các biến thể của công thức siêu Công thức siêu ngữ Backus và ngữ Backus các biến thể „ Ký pháp BNF là một tập các luật ,vế trái „ Mỗi ký hiệu không kết thúc được định của mỗi luật là một cấu trúc cú pháp. nghĩa bằng một hay nhiều luật. „ Tên của cấu trúc cú pháp được gọi là ký „ Các luật có dạng hihiệệuu khôngkhông kkếếtt thúcthúc. N::=s „ Các ký hiệu không kết thúc thường được (N là ký hiệu không kết thúc, s là một xâu bao trong cặp <>. gồm 0 hay nhiều ký hiệu kết thúc và không „ Các ký hiệu kết thúc thường được phân kết thúc. Các luật có chung vế trái được cách bằng cặp nháy đơn hoặc nháy kép phân cách bằng | ) 3 4 goupee.com fb.com/groups/goupee 1

Page 2

21/1/2010 Ví dụ về BNF EBNF <Số>::=’-’<Số thập phân>|<số thập phân> „ EBNF (Extended BNF ) được phát triển từ ký <Số thập phân>::=<Dãy chữ số>|<Dãy pháp BNF. EBNF có ký pháp tương tự BNF nhưng được đơn giản hoá bằng cách sử dụng chữ số>’.’<Dãy chữ số> mmộộtt ssốố kýký hihiệệuu đặđặcc bibiệệtt :: <Dãy chữ số>::=<Chữ số>|<Chữ số><Dãy [] phần này là tuỳ chọn(có hoặc không) chữ số> {} phần này có thể lặp lại một số lần tuỳ ý hoặc <Chữ số>::=’0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’ không xuất hiện lần nào (Nếu lặp lại m hay n lần , dùng n hay m là chỉ số trên hoặc dưới) Không cần dùng ‘’ cho ký hiệu kết thúc 5 6 So sánh BNF và EBNF Sơ đồ cú pháp Ví dụ Trong EBNF „ Là công cụ để mô tả cú pháp của ngôn „ ngữ lập trình dưới dạng đồ thị <L<Lệệnhnh if>if>::::== IFIF <Bi<Biểểuu ththứức>c> THENTHEN <L<Lệệnh>nh> [ELSE <Lệnh>] „ Mỗi sơ đồ cú pháp là một đồ thị định hướng với lối vào và lối ra xác định. „ Trong BNF „ Mỗi sơ đồ cú pháp có một tên duy nhất <Lệnh if>::= ‘IF’ <Biểu thức> ‘THEN’ <Lệnh>| ‘IF’ <Biểu thức> THEN <Lệnh> ‘ELSE’ <Lệnh> 7 8 goupee.com fb.com/groups/goupee 2

Page 3

21/1/2010 Ví dụ một sơ đồ cú pháp Sơ đồ cú pháp của KPL (Tổng thể CT) 9 10 Sơ đồ cú pháp của KPL Sơ đồ cú pháp của KPL (Khối) (tham số, hằng không dấu) 11 12 goupee.com fb.com/groups/goupee 3

Page 4

21/1/2010 Sơ đồ cú pháp của KPL (Khai Sơ đồ cú pháp của KPL báo) (lệnh) 13 14 Sơ đồ cú pháp của KPL (biểu Sơ đồ cú pháp của KPL thức) (thừa số,điều kiện) 15 16 goupee.com fb.com/groups/goupee 4

Showing the first 4 pages. Download the document to see it all.

Comments (0)

Sign in to join the discussion

No comments yet. Be the first!