Các chữ cái in nghiêng sẽ được dùng cho các mục đích khác khi nghiên cứu chỉ tiết vẻ van phạm trong Chương 4 Thí dụ chúng ta sẽ dùng X, Ÿ, Z để nĩi về một ký hiệu cĩ thể là thế từ hoặc chưa tân Tuy

Một phần của tài liệu Trình biên dịch nguuyên lý kỹ thuật và công cụ (Trang 34 - 35)

. 98 TỔNG QUAN VỀ BIÊN DỊCH

Các chữ cái in nghiêng sẽ được dùng cho các mục đích khác khi nghiên cứu chỉ tiết vẻ van phạm trong Chương 4 Thí dụ chúng ta sẽ dùng X, Ÿ, Z để nĩi về một ký hiệu cĩ thể là thế từ hoặc chưa tân Tuy

Chương 4. Thí dụ chúng ta sẽ dùng X, Ÿ, Z để nĩi về một ký hiệu cĩ thể là thế từ hoặc chưa tân. Tuy

32. MỘT TRÌNH BIÊN DỊCH MỘT LƯỢT ĐƠN GIẢN

Các vế phải của ba luật sinh với chưa tận /is¿ ở vế trái cĩ thể nhĩm lại: list —> Hit + dịgt | list - digit | dịgt

"Theo qui ước, các thẻ từ của văn phạm là các ký hiệu

+—0123456789

Các chưa tận là các tên in nghiêng iis¿ và digit, với list là ký hiệu khởi đầu bởi vì luật sinh của nĩ được trình bày trước tiên. L]

Chúng ta nĩi một luật sinh iè cư một chưa tận nếu chưa tận xuất hiện ở vế trái của luật sinh đĩ. Chuỗi thẻ từ là một chuỗi gồm zero hoặc nhiễu thẻ từ. Chuỗi chứa zero thẻ từ, ký hiệu là e, được gọi là chuối rỗng (empty string).

Một văn phạm đẩn xuất (derive)? các chuỗi (hoặc phái sinh các chuỗi), bắt đầu là ký hiệu khởi đầu và thay thế lập đi lập lại một chưa tận bằng vế phải của một luật sinh của chưa tận đĩ. Các chuỗi thẻ từ cĩ thể được dẫn xuất từ ký biệu khởi đầu tạo thành ngơn ngữ (language) được định nghĩa bởi văn phạm đĩ.

Thí dụ 2.3. Ngơn ngữ được định nghĩa bởi văn phạm của Thí dụ 2.1 bao gồm các danh sách ký số được phân cách bởi các dấu cộng hoặc trừ

Mười luật sinh cho chưa tận đigit cho phép nĩ đại diện cho một trong số các thể từ ©,1,..., 9. Từ luật sinh (2.4), bản thân một ký số là một danh sách. Các luật sinh (2.2) và (2.3) biểu diễn sự kiện là nếu chúng ta lấy một danh sách bất kỳ và cho vào sau nĩ một dấu cộng hoặc dấu trừ rồi sau đĩ là một ký số khác, chúng ta sẽ được một danh sách mới.

Rõ ràng các luật sinh (2.2) đến (2.5) đều cần cho việc định nghĩa ngơn ngữ đang được chúng ta xem xét. Chẳng hạn chúng ta cĩ thể suy ra rằng 9-5+2 là một i/s¿ như sau.

a) 9 là một //sf theo luật sinh (3.4) bởi vì 9 là một digtf

b) 9-5 là một is theo luật sinh (2.3) bởi vì 9 là một #e£ và 5 là một digi. c) 9-5+2 là một /s thao luật sinh (2.2) vì 9-5 là một ¿sứ và 2 là một digt.

Suy luận này được minh họa qua cây của Hình 2.2. Mỗi nút trong cây được gắn nhân bằng một ký hiệu văn phạm. Một nút nội và các cun của nĩ tương ứng với một luật sinh; nút nội tương ứng với vế trái của luật sinh, các con tương ứng với vế phải.

Một phần của tài liệu Trình biên dịch nguuyên lý kỹ thuật và công cụ (Trang 34 - 35)