1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Bài giảng Chương trình dịch: Bài 8 - Trương Xuân Nam

10 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 378,63 KB

Nội dung

Bài 8: Phân tích văn phạm bằng thuật4. toán top-down..[r]

(1)

CHƯƠNG TRÌNH DỊCH

Bài 8: Phân tích văn phạm thuật

(2)

Nội dung

1. Ý tưởng & thuật toán

2. Ví dụ minh họa

3. Cài đặt top-down đơn giản

 Cấu trúc luật văn phạm

 Cấu trúc suy diễn trực tiếp

 Máy phân tích: hàm hỗ trợ

 Máy phân tích: hàm

 Thử nghiệm

4. Đánh giá top-down

(3)

Ý tưởng & thuật toán

(4)

Top-down: ý tưởng

 Cho văn phạm G với luật sinh:

S → E + S | E

E → | | | | | ( S )

 Xâu vào: W = (1 + + (3 + 4)) +

 Tìm suy dẫn từ S thành W.

S  E + S  ( S ) + S  ( E + S ) + S  ( + S ) + S  ( + E + S ) + S  ( + + S ) + S

 ( + + E ) + S  ( + + ( S ) ) + S

 ( + + ( E + S ) ) + S  ( + + ( + S ) ) + S

(5)

Top-down: ý tưởng

 Xét trình suy dẫn S  W1  W2  …  W

 Wi ln chứa non-terminal

 Xét X non-terminal trái Wi:

 W không chứa non-terminal nên X phải “biến mất”

 Cách làm “biến mất” X sử dụng luật văn phạm mà vế trái X

 Nhận xét: trước sau X “biến mất” một luật văn phạm có dạng X → α

(6)

Top-down: ý tưởng

 Dị tìm q trình suy dẫn S  W1  …  W:

 Với Wi, tìm non-terminal X

 Tìm luật X → α, áp dụng luật biến đổi Wi thành Wi+1

 Dừng Wi+1 = W (tìm phương án suy dẫn)

 Thử tiếp với Wi+1 quay lui không phù hợp

 Đặc điểm Top-down:

 Nếu Wi có chứa nhiều non-terminal cần thử với non-terminal trái

(7)

Top-down: thuật toán

1. A = S

2. Với chuỗi A đạt trình suy dẫn:

 Nếu A = W:

• Kết luận: q trình tìm kiếm thành cơng

• Lưu lại q trình biến đổi từ đầu để A

• Kết thúc trình tìm kiếm

 Nếu A ≠ W: tìm kí hiệu trung gian trái X

 Khơng tìm X dừng, trở lại hàm gọi

 Duyệt tất luật sinh dạng X → α

• Áp dụng luật A (ở vị trí X), ta A’

(8)

Ví dụ minh họa

(9)

Top-down: ví dụ

Phân tích W = aacbc với tập luật S → aSbS | aS | c

1. Xét A = aSbS

2. Tìm kí hiệu S thứ A non-terminal

(10)

Top-down: ví dụ

1. Xét A = aaSbSbS

2. Tìm kí hiệu S thứ A non-terminal

1 Thử áp dụng luật S → aSbS A’ = aaaSbSbSbS Thử áp dụng luật S → aS A’ = aaaSbSbS

Ngày đăng: 01/04/2021, 11:29

w