Cho văn phạm với các luật sinh sau: E->TE; E’->+T E’; E’->epsilon; T->FT'; T'- >*FT’; T’->epsilon; F->(E); F->id; FIRST(T’) =?
Đáp án đúng: D
Để tìm FIRST(T'), ta xét các luật sinh của T':
- T' -> *FT'
- T' -> epsilon
Theo định nghĩa, FIRST(T') là tập hợp các terminal có thể xuất hiện đầu tiên trong chuỗi dẫn xuất từ T'. Vì T' có thể sinh ra *FT', nên '*' thuộc FIRST(T'). Vì T' có thể sinh ra epsilon (ε), nên epsilon cũng thuộc FIRST(T').
Vậy, FIRST(T') = {*, epsilon}.
Câu hỏi liên quan
1. Quy tắc 1: Đặt dấu $ (kết thúc chuỗi) vào FOLLOW(S), trong đó S là ký hiệu bắt đầu.
Trong trường hợp này, E là ký hiệu bắt đầu, vậy $ thuộc FOLLOW(E).
2. Quy tắc 2: Nếu có một luật sinh dạng A -> αBβ, thì mọi ký hiệu đầu cuối trong FIRST(β) (ngoại trừ ε) được thêm vào FOLLOW(B).
3. Quy tắc 3: Nếu có một luật sinh dạng A -> αB, hoặc một luật sinh dạng A -> αBβ, trong đó FIRST(β) chứa ε (tức là β có thể dẫn đến chuỗi rỗng), thì mọi ký hiệu trong FOLLOW(A) được thêm vào FOLLOW(B).
Áp dụng vào văn phạm đã cho:
* E -> TE'
* Theo quy tắc 3, FOLLOW(E) chứa FOLLOW(E').
* E' -> +T E' | ε
* Vì E' -> ε, theo quy tắc 3, FOLLOW(E') chứa FOLLOW(E).
* Vậy FOLLOW(E) và FOLLOW(E') chứa cùng các phần tử.
* F -> (E)
* Theo quy tắc 2, khi xét luật sinh F -> (E), thì ')' thuộc FOLLOW(E).
Kết hợp các yếu tố trên, FOLLOW(E) = {), $}.
Ngôn ngữ máy tính (Machine language) là ngôn ngữ bậc thấp nhất, sử dụng mã nhị phân (0 và 1) để biểu diễn các lệnh và dữ liệu. Mã giả (pseudocode) là một cách mô tả thuật toán hoặc chương trình bằng ngôn ngữ tự nhiên hoặc một dạng ký hiệu gần gũi với ngôn ngữ lập trình, nhưng không nhất thiết phải tuân theo cú pháp chặt chẽ của một ngôn ngữ cụ thể nào. Trong quá trình phát triển phần mềm, mã máy thường được "dịch" hoặc biểu diễn lại một cách trừu tượng hơn bằng mã giả để dễ hiểu, thiết kế và trao đổi ý tưởng trước khi triển khai bằng một ngôn ngữ lập trình cụ thể. Vì vậy, ngôn ngữ máy tính không "dịch" thành mã giả bằng ngôn ngữ Assembly, Pascal hay FORTRAN. Các ngôn ngữ Assembly, Pascal, FORTRAN là các ngôn ngữ lập trình bậc cao hơn, có thể được biên dịch hoặc thông dịch thành mã máy, chứ không phải ngược lại.
Trị từ vựng (lexeme) là một khái niệm trong ngôn ngữ lập trình, dùng để chỉ một chuỗi các ký tự tạo thành một đơn vị từ vựng có nghĩa. Các đơn vị này bao gồm:
- Định danh (Identifiers): Là tên do lập trình viên đặt cho các biến, hàm, lớp, ...
- Hằng số (Constants): Là các giá trị không đổi trong quá trình thực thi chương trình, ví dụ: 10, 3.14, "Hello".
- Từ khóa (Keywords): Là các từ đặc biệt đã được định nghĩa sẵn trong ngôn ngữ lập trình, ví dụ: if, else, while, for, int, float, ...
Vì vậy, trị từ vựng bao gồm cả ba loại trên.
1. Phân tích từ vựng (Lexical Analysis): Quá trình này chia mã nguồn thành các đơn vị nhỏ hơn gọi là token. Mỗi token đại diện cho một từ khóa, định danh, toán tử, hằng số, hoặc dấu phân cách.
2. Phân tích cú pháp (Syntax Analysis): Giai đoạn này kiểm tra xem chuỗi token có tuân theo ngữ pháp của ngôn ngữ lập trình hay không. Nó xây dựng một cây cú pháp (syntax tree) để biểu diễn cấu trúc của chương trình.
3. Sinh mã (Code Generation): Giai đoạn cuối cùng tạo ra mã đích từ cây cú pháp. Mã đích có thể là mã máy, mã assembly, hoặc mã trung gian (intermediate code) như bytecode.
Các phương án khác không mô tả đúng các giai đoạn trong quá trình dịch chương trình:
* A. Phân tích thiết kế, lập trình, và kiểm thử: Đây là các giai đoạn trong quy trình phát triển phần mềm, không phải là các giai đoạn bên trong một chương trình dịch.
* B. Xây dựng chương trình và viết tài liệu: Đây là các hoạt động liên quan đến phát triển phần mềm nói chung, chứ không phải các giai đoạn cụ thể của trình biên dịch.
* D. Đào tạo và hướng dẫn sử dụng phần mềm: Đây là các hoạt động hỗ trợ người dùng, không liên quan đến quá trình dịch chương trình.
* `>` (lớn hơn)
* `<` (nhỏ hơn)
* `>=` (lớn hơn hoặc bằng)
* `<=` (nhỏ hơn hoặc bằng)
* `!=` (không bằng)
* `==` (bằng)
Như vậy, đáp án đúng là D.

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.