JavaScript is required

Cho văn phạm gồm 3 luật sinh: (1) S->aSbS; (2) S->aS; (3) S->c. Phân tích xâu vào “aacbc” bằng thuật toán Top-down. Chọn lần lượt các sản xuất (1) (1) (1) (2) (3) (1) (2) (3) để phân tích thì tại thời điểm này của quá trình phân tích thì đầu đọc trên xâu vào đang trỏ tới kí tự thứ bao nhiêu?

A.

3

B.

4

C.

5

D.

6

Trả lời:

Đáp án đúng: D


Ta thực hiện phân tích xâu "aacbc" theo thuật toán Top-down với các luật sinh được chọn như sau: 1. **S -> aSbS**: Xâu hiện tại: `aSbS`. Đọc `a`. 2. **S -> aSbS**: Xâu hiện tại: `aaSbSbS`. Đọc `a`. 3. **S -> aSbS**: Xâu hiện tại: `aaaSbSbSbS`. Đọc `a`. 4. **S -> aS**: Xâu hiện tại: `aaaaSbSbSbS`. 5. **S -> c**: Xâu hiện tại: `aaaacSbSbSbS`. Đọc `c`. Như vậy, sau khi áp dụng 5 luật sinh theo thứ tự trên, ta đã đọc các ký tự `a`, `a`, `a`, `c`. Do đó, đầu đọc đang trỏ tới ký tự thứ 5 của xâu vào (ký tự `b`). Các bước tiếp theo: 6. **S -> aSbS**: Xâu hiện tại: `aaaac aSbSbSbS` 7. **S -> aS**: Xâu hiện tại `aaaac aaSbSbSbS` 8. **S -> c**: Xâu hiện tại: `aaaac aacSbSbSbS`. Đọc `c`. Vậy đáp án đúng là C. 5

Câu hỏi liên quan