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 8 văn phạm ll(k)

21 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 8. Văn Phạm Ll(k)
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 21
Dung lượng 498,67 KB

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

Nội dung

FIRSTk a Định nghĩa : Cho văn phạm G phi ngữ cảnh, số nguyên dương k , a là một xâu bao gồm ký hiệu kếtthúc và không kết thúc FIRSTk là tập các xâu x gồm k ký hiệu kết thúc trái nhất củ

Trang 1

Bài 8

Văn phạm LL(k)

Trang 2

Phân cấp các ngôn ngữ phi ngữ cảnh

Trang 4

FIRSTk( a )

Định nghĩa : Cho văn phạm G phi ngữ cảnh, số

nguyên dương k , a là một xâu bao gồm ký hiệu kếtthúc và không kết thúc

FIRSTk() là tập các xâu x gồm k ký hiệu kết thúc trái nhất của các xâu suy dẫn từ(Kể cả trường hợp x không có đủ k ký hiệu nhưngsuy dẫn ra x , không còn ký hiệu nào sau x)

Trang 5

( Tập các xâu x ÎS* có k ký hiệu trái nhất suy dẫn từ

( Kể cả trường hợp x không có đủ k ký hiệu nhưng x , không còn ký hiệu nào sau x))

Trang 7

FOLLOW k (a)

FOLLOWk(a) = {x Î S* | S Þ* bad và xÎ FIRSTk(d)}

Đặc biệt , khi a =A Î D* , S Þ* bA thì FOLLOW1(A)

={$}

Trang 8

Văn phạm LL(k)

Định nghĩa văn phạm phi ngữ cảnh

G = (S, D, P, S) là LL(k) với k cho trước nếu vớimọi cặp suy dẫn trái

S =>* xAa => xb1a =>* xZ1

S =>* xAa => xb2a =>* xZ2Nếu FIRSTk(Z1) = FIRSTk(Z2) thì b1 = b2

Trang 10

Văn phạm LL(1) đơn giản

Văn phạm G = (S, D, P, S) là LL(1) đơn giản nếu mọi sản xuất của văn phạm có dạng

A ® a1a1 | a2a2 | anan, ai Î S 1£ i £ n

Trong đó ai ¹ aj với i ¹ j

Trang 11

Điều kiện nhận biết văn phạm LL(1)

Trang 12

Điều kiện LL(1) trên sơ đồ cú pháp

• Ở mỗi lối rẽ, các nhánh phải bắt đầu bằng các ký hiệu khác nhau

• Nếu biểu đồ có chứa một đường rỗng thì mọi ký

hiệu đứng sau ký hiệu được biểu diễn bởi biểu đồ phải khác các ký hiệu đứng đầu các nhánh của sơ đồ

Trang 13

Kiểm tra điều kiện LL(1) trên văn

Trang 15

Một số sản xuất vi phạm đk LL(1)

56) AssignSt ::= Variable SB_ASSIGN Expession VP1

57) AssignSt ::= FunctionIdent SB_ASSIGN Expression VP2

FIRST(VP1) = {TK_IDENT} = FIRST(VP2)

FIRST(VP3) = {TK_NUMBER,TK_CHAR, TK_IDENT}

Trang 16

Một số sơ đồ KPL thỏa điều kiện LL(1)

Trang 17

Statement thỏa điều kiện LL(1)?

Trang 18

Biến đổi sơ đồ cú pháp

• Nhánh assignst bắt đầu bằng IDENTIFIER

• Nhánh rỗng ® FOLLOW(statement) ={; , ELSE, END} ® LL(1)

Trang 19

Sơ đồ cú pháp của assignst

• Thỏa điều kiện LL(2)

Trang 20

Sơ đồ cú pháp của factor

• Khó kiểm tra điều kiện LL(1) khi unsignedconstant, variable và functionidentifier đều có thể là một định danh

• Cần chuyển đổi về dạng tường minh hơn Việc phân biệt định danh đóng vai trò gì (hằng, biến, hàm) do bộ phân tích ngữ

nghĩa đảm nhiệm

Trang 21

Factor không thỏa điều kiện LL(1) ® LL(2)

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

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