Cho văn phạm ang cường gồm các luật sinh E’->E; E-> E+T ; E-> T; T- >T*F; T-> F; F-> € ; F-> id. Tập mục I0 (tập mục thứ nhất của văn phạm) là:
Trả lời:
Đáp án đúng: D
Tập mục I0 trong văn phạm LL(1) (hay LR(0), SLR(1), LALR(1), LR(1)) là tập hợp các mục (item) ban đầu của văn phạm mở rộng. Văn phạm mở rộng được tạo bằng cách thêm một luật sinh mới E' -> E, trong đó E là ký hiệu bắt đầu của văn phạm gốc. Tập I0 được xây dựng bằng cách:
1. Thêm luật sinh E' -> .E vào I0.
2. Tính bao đóng (closure) cho I0. Bao đóng của một tập hợp các mục bao gồm việc thêm tất cả các luật sinh có ký hiệu không kết thúc (non-terminal) đứng sau dấu chấm (.) vào tập hợp, cho đến khi không thể thêm được nữa.
Dựa vào văn phạm đã cho:
1. Khởi tạo: E' -> .E
2. Tính Closure(E' -> .E):
* E -> .E + T
* E -> .T
* T -> .T * F
* T -> .F
* F -> .€
* F -> .id
Vậy, tập mục I0 là: E' -> .E; E -> .E + T; E -> .T; T -> .T * F; T -> .F; F -> .€ ; F -> .id





