Cho văn phạm S → A hoặc S-> BCD; A → BBA hoặc A->EB; B → bEc hoặc B->BC hoặc B->BDc ; C → c ; D → a hoặc D-> BDb; E → a hoặc E->bE , First(E)=?
Đáp án đúng: C
Để tìm First(E), ta cần xem xét các sản phẩm (productions) của E:
- E → a
- E → bE
Từ sản phẩm E → a, ta có 'a' thuộc First(E).
Từ sản phẩm E → bE, ta có 'b' thuộc First(E).
Vậy, First(E) = {a, b}.
Câu hỏi liên quan
Để tìm Follow(E), ta cần xem xét các vị trí mà E xuất hiện ở vế phải của các luật sinh và những ký tự có thể theo sau E.
- Từ luật A → EB, ta thấy B theo sau E. Do đó, Follow(E) sẽ chứa First(B).
- First(B) = {b} (vì B → bEc, B ->BC, B->BDc).
- Tiếp theo, xét luật B → bEc. Sau c không có gì, nên cần xem xét Follow(B).
- Từ luật A → BBA, ta có B theo sau B.
- Từ luật S -> BCD, ta thấy CD theo sau B, do đó First(CD) = {c} thuộc Follow(B).
- Từ luật B -> BC, ta có C theo sau B, do đó First(C) = {c} thuộc Follow(B).
- Từ luật B -> BDc, ta có D theo sau B, do đó First(D) = {a} thuộc Follow(B).
- Từ luật B → bEc, ta có c theo sau E, do đó c thuộc Follow(E)
- A là ký tự đầu nên Dollar thuộc Follow(A), Do A -> EB nên Dollar thuộc Follow(E).
Vậy Follow(E) = {b,c,dollar}. Tuy nhiên, không có đáp án nào hoàn toàn khớp. Đáp án gần đúng nhất là A { a,b,c, dollar } nhưng có thêm 'a'. Kiểm tra lại các bước trên, 'a' có thể theo sau E không? Xem xét luật D ->BDb; Ta thấy First(D) = {a} và từ B ->BDc thì c thuộc Follow(D); Vậy không có luật nào cho thấy 'a' thuộc follow(E). Vậy câu này không có đáp án chính xác nhất.
Để tìm closure(I) của tập hợp I = {E' -> .E}, ta thực hiện các bước sau:
- Khởi tạo: Thêm tất cả các sản xuất có E ở bên phải dấu -> vào closure(I). Điều này bao gồm E -> .E + T và E -> .T.
- Tiếp tục thêm: Vì E -> .T đã được thêm vào, ta thêm tất cả các sản xuất có T ở bên phải dấu -> vào closure(I). Điều này bao gồm T -> .T * F và T -> .F.
- Tiếp tục thêm: Vì T -> .F đã được thêm vào, ta thêm tất cả các sản xuất có F ở bên phải dấu -> vào closure(I). Điều này bao gồm F -> .€ và F -> .id.
- Kết thúc: Không còn sản xuất nào có thể thêm vào closure(I) nữa.
Vậy, closure(I) bao gồm các sản xuất sau: E' -> .E; E -> .E + T; E -> .T; T -> .T * F; T -> .F; F -> .€ ; F -> .id.
Để tìm FOLLOW(T'), ta thực hiện theo các bước sau:
Vì T' xuất hiện ở vế phải của luật T -> FT', nên ta xét FIRST(phần còn lại của luật sau T'). Ở đây, phần còn lại là rỗng (epsilon), do đó ta xét FOLLOW(T).
T xuất hiện ở vế phải của luật E -> TE', nên ta xét FIRST(E'). FIRST(E') = { + , epsilon}. Do đó, + thuộc FOLLOW(T).
Vì E' -> epsilon, nên FOLLOW(E) thuộc FOLLOW(T). Để tìm FOLLOW(E), ta thấy E xuất hiện trong luật F -> (E), do đó ')' thuộc FOLLOW(E). Vì vậy, ')' thuộc FOLLOW(T).
Do T -> FT', suy ra FOLLOW(T) chứa FOLLOW(T').
Xét luật E' -> +TE'. Khi đó FOLLOW(E') thuộc FOLLOW(T').
Vì E là ký hiệu bắt đầu, nên $ thuộc FOLLOW(E). Do đó $ thuộc FOLLOW(T) và FOLLOW(T').
Vậy, FOLLOW(T') = { +, ), $ }.
Ngôn ngữ lập trình bao gồm các thành phần cơ bản sau:
- Bảng chữ cái: Tập hợp các ký tự được phép sử dụng trong ngôn ngữ.
- Cú pháp: Các quy tắc để kết hợp các ký tự thành các câu lệnh có ý nghĩa.
- Ngữ nghĩa: Ý nghĩa của các câu lệnh hợp lệ trong ngôn ngữ.
- Chương trình dịch: (chương trình biên dịch/ thông dịch) được dùng để chuyển đổi mã nguồn viết bằng ngôn ngữ lập trình sang ngôn ngữ máy tính có thể hiểu và thực thi.
Do đó, đáp án B là đầy đủ và chính xác nhất.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.