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

CHƯƠNG TRÌNH DỊCH bài 8 văn PHẠM LL (k)

4 775 6

Đ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 4
Dung lượng 194,27 KB

Nội dung

Văn phạm LLk Phân cấp các ngôn ngữ phi ngữ cảnh Ngôn ngữ LLk „Xem trước k ký hiệu trên xâu vào để quyết định sản xuất được sử dụng „Được sinh ra nhờ văn phạm LLk „Được sinh ra nhờ văn ph

Trang 1

Bài 8

Văn phạm LL(k)

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

Ngôn ngữ LL(k)

„Xem trước k ký hiệu trên xâu vào để quyết

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

„Được sinh ra nhờ văn phạm LL(k)

„Được sinh ra nhờ văn phạm LL(k)

Đị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ết thú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ưngα

suy dẫn ra x , không còn ký hiệu nào sau x)

Trang 2

FIRSTk( α )

Định nghĩa : Cho văn phạm G = (Σ, Δ, P, S), số

nguyên

dương k , g α ∈ V*

FIRSTk(α) = { x ∈ Σ* | α xβ và |x| = k hoặc α x và

|x| < k}

( Tập các xâu x∈Σ* 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))

k ký hiệu kết thúc đầu tiên tiếp sau xâu được suy dẫn từα.

Đặc biệt , khi A là ký hiệu không kết thúc, S suy dẫn ra bA thì FOLLOW1(A) ={ε}

FOLLOWk(α) = {x ∈ Σ* | S ⇒* βαδ và x∈ FIRSTk(δ)}

Đặc biệt , khi α =A ∈ Δ* , S ⇒* βA thì

FOLLOW1(A) ={ε}

Văn phạm LL(k)

Định nghĩa văn phạm phi ngữ cảnh G = (Σ,

Δ, P, S) là LL(k) với k cho trước nếu với mọi cặp suy dẫn tráiọ ặp y

S => xAα => xβ1α => xZ1

S => xAα => xβ2α => xZ2 Nếu FIRSTk(Z1) = FIRSTk(Z2) thì β1=β2

Trang 3

Ví dụ

Văn phạm G với các sản xuất :

S → aAS | b

A → bSA | a

A → bSA | a

là LL(1)

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

Văn phạm G = (Σ, Δ, 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 → a1α1| a2α2| anα, ai∈ Σ 1≤ i ≤ n Trong đó ai≠ ajvới i ≠ j

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

„ Định lý Văn phạm G = (Σ, Δ, P, S) là LL(1) khi

và chỉ khi mọi tập A- sản xuất trong P có dạng

„ A → α11| | α22| | | | αnn, n , ≥ 2 thoả mãn

FIRST1(αi) ∩ FIRST1(αj) = ∅

„ Nếu αi⇒ * ε thì

FIRST1(αi) ∩ FOLLOW1(A) =∅ , i ≠ j

Đ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ì

„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 4

A FIRST(A) FOLLOW(A)

Block CONST, VAR,TYPE,

PROCEDURE,BEGIN

.,;

Unsignedconst ident, number,’

Constant +,-,’,ident,number

T id t i t h

Văn phạm KPL là LL(1)

Type ident,integer, char,array

Statement ident, CALL, BEGIN,

WHILE,FOR

.,;, END Expression +,-,(,ident,number ,;,

END,TO,THEN,DO,),-,.),<,<=,>,>=,=,!=

Term ident,number, (

.,;,END,TO,THEN,DO,),-,<,<=,>,>=,=,!=

Factor ident, number, ( ,;,END,TO,THEN, DO, +, -,

*,/,) ,<,<=,>,>=,=,!=

Ngày đăng: 11/11/2015, 22:59

TỪ KHÓA LIÊN QUAN

w