JavaScript is required

Cho văn phạm tăng cường gồm các luật sinh E’->E; E-> E+T ; E-> T; T- >T*F; T-> F; F-> (E) ; F-> id. Tập mục I0 là tập mục thứ nhất của văn phạm, Goto (I0, id) =?

A.

{F -> id.}

B.

{E’-> E .; E->E .+T}

C.

{T -> F.}

D.

{E->T.; T->T.*F}

Trả lời:

Đáp án đúng: A


Để tìm Goto(I0, id), ta cần thực hiện các bước sau:

1. Xác định I0: I0 là closure của mục E' -> .E. Trong trường hợp này, I0 bao gồm các mục sau:

- E' -> .E

- E -> .E + T

- E -> .T

- T -> .T * F

- T -> .F

- F -> .(E)

- F -> .id

2. Tính Goto(I0, id): Goto(I0, id) là closure của tập các mục mà từ I0, ta "đi" được bằng cách đọc 'id'. Trong I0, mục duy nhất có thể "đi" bằng 'id' là F -> .id. Sau khi "đi" qua 'id', ta được F -> id.

3. Tính closure của F -> id.: Closure(F -> id.) chỉ bao gồm chính mục đó, vì không có ký hiệu không kết thúc nào sau dấu chấm.

Vậy, Goto(I0, id) = {F -> id.}.

Câu hỏi liên quan