Bài giảng Xây dựng chương trình dịch - Bài 4: BNF và sơ đồ cú pháp cung cấp cho sinh viên các kiến thức: Công thức siêu ngữ Backus và các biến thể, so sánh BNF và EBNF, định nghĩa sơ đồ cú pháp, sơ đồ cú pháp của KPL. Đây là một tài liệu tham khảo hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
21/1/2010 Công thức siêu ngữ Backus biến thể Siêu ngữ (metalanguage ):Ngôn ngữ sử dụng lệnh để mô tả ngôn ngữ khác BNF (Backus Naur Form) dạng siêu cú pháp để mô tả ngôn ngữ lập trình BNF sử dụng rộng rãi để mô tả văn phạm ngôn ngữ lập trình, tập lệnh giao thức truyền thơng Bài BNF sơ đồ cú pháp Công thức siêu ngữ Backus biến thể Các biến thể công thức siêu ngữ Backus Ký pháp BNF tập luật ,vế trái luật cấu trúc cú pháp Tên cấu trúc cú pháp gọi ký hiệu không kết thúc thúc Các ký hiệu không kết thúc thường bao cặp Các ký hiệu kết thúc thường phân cách cặp nháy đơn nháy kép Mỗi ký hiệu không kết thúc định nghĩa hay nhiều luật Các luật có dạng N::=s (N ký hiệu khơng kết thúc, s xâu gồm hay nhiều ký hiệu kết thúc không kết thúc Các luật có chung vế trái phân cách | ) 21/1/2010 Ví dụ BNF EBNF ::=’-’| ::=|’.’ ::=| ::=’0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’ EBNF (Extended BNF ) phát triển từ ký pháp BNF EBNF có ký pháp tương tự BNF đơn giản hoá cách sử dụng số ký hiệu đặc biệt : [] phần tuỳ chọn(có khơng) {} phần lặp lại số lần tuỳ ý không xuất lần (Nếu lặp lại m hay n lần , dùng n hay m số dưới) Không cần dùng ‘’ cho ký hiệu kết thúc So sánh BNF EBNF Sơ đồ cú pháp Ví dụ Trong EBNF ::= IF THEN [ELSE ] Trong BNF ::= ‘IF’ ‘THEN’ | ‘IF’ THEN ‘ELSE’ Là công cụ để mô tả cú pháp ngơn ngữ lập trình dạng đồ thị Mỗi sơ đồ cú pháp đồ thị định hướng với lối vào lối xác định Mỗi sơ đồ cú pháp có tên 21/1/2010 Ví dụ sơ đồ cú pháp Sơ đồ cú pháp KPL (Tổng thể CT) 10 Sơ đồ cú pháp KPL (tham số, không dấu) Sơ đồ cú pháp KPL (Khối) 11 12 21/1/2010 Sơ đồ cú pháp KPL (lệnh) Sơ đồ cú pháp KPL (Khai báo) 13 Sơ đồ cú pháp KPL (biểu thức) 15 14 Sơ đồ cú pháp KPL (thừa số,điều kiện) 16 21/1/2010 Sơ đồ cú pháp KPL(tên, số) 17 ... THEN ‘ELSE’ Là công cụ để mô tả cú pháp ngôn ngữ lập trình dạng đồ thị Mỗi sơ đồ cú pháp đồ thị định hướng với lối vào lối xác định Mỗi sơ đồ cú pháp có tên 21/1/2010... BNF EBNF ::=? ?-? ??| ::=|’.’ ::=| ::=’0’|’1’|’2’|’3’|? ?4? ??|’5’|’6’|’7’|’8’|’9’... 21/1/2010 Sơ đồ cú pháp KPL (lệnh) Sơ đồ cú pháp KPL (Khai báo) 13 Sơ đồ cú pháp KPL (biểu thức) 15 14 Sơ đồ cú pháp KPL (thừa số,điều kiện) 16 21/1/2010 Sơ đồ cú pháp KPL(tên, số) 17