JavaScript is required

Ðịnh nghĩa FOLLOW(A): (với A là một ký hiệu chưa kết thúc) là tập hợp

A.

Các ký hiệu kết thúc a mà nó xuất hiện ngay sau A (bên phía phải của A) trong một dạng câu nào đó.

B.

Các ký hiệu kết thúc a mà nó xuất hiện ngay trước A (bên phía trái của A) trong một dạng câu nào đó.

C.

Nếu X là kí hiệu kết thúc thì FOLLOW(X) là {X}

D.

Nếu X là kí hiệu kết chưa thúc thì {X} thuộc vào FOLLOW(X)

Trả lời:

Đáp án đúng: A


FOLLOW(A) là tập hợp các ký hiệu kết thúc có thể xuất hiện ngay sau ký hiệu không kết thúc A trong một dạng câu nào đó. Điều này bao gồm cả trường hợp A là ký hiệu cuối cùng trong một sản phẩm. Trong trường hợp đó, $ (ký hiệu kết thúc chuỗi) sẽ thuộc FOLLOW(A) nếu A là ký hiệu bắt đầu của ngữ pháp. Phương án A: "Các ký hiệu kết thúc a mà nó xuất hiện ngay sau A (bên phía phải của A) trong một dạng câu nào đó." - Đây là định nghĩa chính xác của FOLLOW(A). Phương án B: "Các ký hiệu kết thúc a mà nó xuất hiện ngay trước A (bên phía trái của A) trong một dạng câu nào đó." - Đây là định nghĩa của FIRST, không phải FOLLOW. Phương án C: "Nếu X là kí hiệu kết thúc thì FOLLOW(X) là {X}" - Điều này không đúng. FOLLOW chỉ được định nghĩa cho các ký hiệu không kết thúc. Phương án D: "Nếu X là kí hiệu kết chưa thúc thì {X} thuộc vào FOLLOW(X)" - Điều này cũng không đúng. FOLLOW(X) chứa các ký hiệu KẾT THÚC có thể theo sau X, chứ không phải X chính nó.

Câu hỏi liên quan