1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng xây dựng chương trình dịch bài 3 văn phạm sản sinh

16 7 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài 3. Văn Phạm Sản Sinh
Trường học Trường Đại Học
Thể loại Bài giảng
Định dạng
Số trang 16
Dung lượng 356,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài 3.Văn phạm sản sinh... Lý thuyết ngôn ngữ• Mô hình cho tất cả các ngôn ngữ • Ngôn ngữ là tập các xâu sentence, string trên một bảng chữ nào đó • Ví dụ về xâu • Dãy các bit • Số thực

Trang 1

Bài 3.

Văn phạm sản sinh

Trang 2

Lý thuyết ngôn ngữ

• Mô hình cho tất cả các ngôn ngữ

• Ngôn ngữ là tập các xâu (sentence, string) trên một bảng chữ nào đó

• Ví dụ về xâu

• Dãy các bit

• Số thực

• Chương trình C

• Câu tiếng Việt

Trang 3

Vấn đề biểu diễn ngôn ngữ

• Thực chất là biểu diễn cú pháp của ngôn ngữ

• Biểu diễn phải hữu hạn

• Công cụ sản sinh: văn phạm

• Công cụ đoán nhận: ôtômat

Trang 4

Phân cấp Chomsky

Lớp ngôn ngữ Công cụ

sản sinh

Công cụ đoán nhận

Ghi chú

Đệ quy kể được Văn phạm loại 0

(ngữ cấu)

Máy Turing Các bài toán tổng

quát Cảm ngữ cảnh Văn phạm cảm ngữ

cảnh

Ôtômat tuyến tính giới nội

Ngôn ngữ tự nhiên

Phi ngữ cảnh Văn phạm phi ngữ

cảnh

Ôtômat đẩy xuống Ngôn ngữ lập

trình, phần chính của ngôn ngữ tự nhiên

Chính quy Văn phạm chính

quy Công cụ biểu diễn:

Biểu thức chính

Ôtômat hữu hạn Từ vựng của ngôn

ngữ tự nhiên, ngôn ngữ lập trình

Trang 5

Văn phạm xuất phát từ ngôn ngữ tự nhiên

< bổ ngữ>::= <danh từ> <tính từ>

<động từ> ::= bắt

<danh từ>::= mèo | chuột

<tính từ>::= nhỏ

<câu>::=<chủ ngữ> <vị ngữ>

<chủ ngữ>::= <danh ngữ>

<danh ngữ>::= <danh từ> <tính từ>

<vị ngữ>::= <động từ> <bổ ngữ>

Trang 6

Văn phạm sản sinh các số thực

<Số>::= - <Số thập phân> | <số thập phân>

<Số thập phân>::=<Dãy chữ số> |

<Dãy chữ số> . <Dãy chữ số>

<Dãy chữ số>::=<Chữ số> | <Chữ số><Dãy chữ số>

<Chữ số>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Trang 7

Làm thế nào để sản sinh ra các xâu ?

Văn phạm phi ngữ cảnh có thể dùng để sản sinh ra các xâu thuộc ngôn ngữ như sau:

X = Ký hiệu đầu

While còn ký hiệu không kết thúc Y trong X do

Áp dụng một trong các sản xuất của,văn phạm chẳng

hạn Y -> w

Khi X chỉ chứa ký hiệu kết thúc, nó là xâu được sản sinh bởi văn phạm.

Trang 8

Ví dụ

S -> -A |A

A -> B.B | B

B -> BC | C

C -> 0 | 1 | 2 | .| 9

Trang 9

Quá trình sản sinh xâu -3.14

Quá trình thay thế

S

-A

-B.B

-B.BC

-C.BC

-C.CC

-3.CC

-3.1C

-3.14

Sản xuất được sử dụng

S  -A

A  B.B

B  BC

B  C

B  C

C  3

C  1

C  4

Trang 10

Suy dẫn (Derivations)

• Mỗi lần thực hiện việc thay thế là một bước suy dẫn.

• Nếu mỗi dạng câu có nhiều ký hiệu không

kết thúc để thay thế có thể thay thế bất cứ ký hiệu không kết thúc nào

Trang 11

Suy dẫn trái và suy dẫn phải

• Nếu giải thuật phân tích cú pháp chọn ký hiệu không kết thúc cực trái hay cực phải để thay thế, kết quả của

nó là suy dẫn trái hoặc suy dẫn phải

Ví dụ suy dẫn trái:

S -A-B.B -C.B-3.B-3.BC -3.CC

 -3.1C-3.14

Ví dụ suy dẫn phải:

S -A-B.B -B.BC-B.B4-B.C4 -B.14

Trang 12

Cây suy dẫn (Cây phân tích cú pháp)

Cây suy dẫn có những đặc điểm sau

1) Mỗi nút của cây có nhãn là ký hiệu kết

thúc, ký hiệu không kết thúc hoặc  (xâu

rỗng)

2) Nhãn của nút gốc là S (ký hiệu đầu)

3) Nút trong có nhãn là ký hiệu không kết

thúc(nút lá có nhãn là ký hiệu kết thúc hoặc

 )

4) Nút A có các nút con từ trái qua phải là

X1, X2, , Xk thì có một sản xuất dạng A ->

X1 X2 Xk

5)Nút lá có thể có nhãn  chỉ khi tồn tại sản

xuất A ->  và nút cha của nút lá chỉ có một

nút con duy nhất

Ví dụ: Cây phân tích cú pháp của văn phạm

G: S ->SS |(S)| w=(()())

Trang 13

Văn phạm nhập nhằng

Văn phạm

E -> E + E

E -> E * E

E -> ( E )

E -> TK_IDENT

Cho phép đưa ra hai suy dẫn khác nhau cho

xâu TK_IDENT + TK_IDENT * TK_IDENT

(chẳng hạn x + y * z)

Trang 14

Khử nhập nhằng (disambiguation)

E -> E + T

E -> T

T -> T * F

T -> F

F -> ( E )

F -> TK_IDENT

E: Expresion, T: Term, F: Factor

(Bằng cách thêm các ký hiệu không kết thúc và các sản xuất để đảm bảo thứ tự ưu tiên)

Trang 15

Đệ quy

• Một sản xuất là đệ qui nếu X =>* ω1X ω2

• Có thể dùng để biểu diễn các quá trình lặp hay cấu trúc lồng nhau

Đệ quy trái X => b | Xa

X => X a => X a a => X a a a =>b a a a a a

Đệ quy phải X => b | a X

X => a X => a a X => a a a X => a a a a a b

Đệ quy giữa X => b | ( X)

X =>(X) =>((X)) =>(((X))) =>((( (b) )))

Trang 16

Khử đệ quy trái

E -> E + T | T

T -> T * F | F

F -> ( E ) | TK_IDENT

Khử đệ quy trái bằng cách thêm ký hiệu không kết thúc và sản xuất mới

E -> T E'

E' -> + T E' | ε

T -> F T'

T' -> * F T' | ε

F -> ( E ) | TK_IDENT

Ngày đăng: 10/10/2023, 18:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm