Kĩ thuật lập trình - Bài 8. Văn phạm LL (k)

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

nguyên dươngk,alàmộtxâu baogồmký

hiệukếtthúcvàkhôngkếtthúc hiệukếtthúcvàkhôngkếtthúc

FIRSTk(α)làtậpcácxâu xgồmkkýhiệukết

thúc trái nhấtcủacácxâusuy dẫntừα(Kểcả

trường hợpxkhôngcóđủkký hiệunhưngα

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

pdf4 trang | Chia sẻ: Mr Hưng | Lượt xem: 1316 | Lượt tải: 0download
Nội dung tài liệu Kĩ thuật lập trình - Bài 8. Văn phạm LL (k), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
21/1/2010 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) FIRSTk(α) Đị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) 21/1/2010 2 FIRSTk(α) Định nghĩa : Cho văn phạm G = (Σ, Δ, P, S), số nguyên dương k , α ∈ 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)) FOLLOWk(α) 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(α) FOLLOWk(α) = {x ∈ Σ* | S ⇒* βαδ và x∈ FIRSTk(δ)} Đặ biệt khi A Δ* S * βA thìc , α = ∈ , ⇒ 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 S => xAα => xβ1α => xZ1 S => xAα => xβ2α => xZ2 Nếu FIRSTk(Z1) = FIRSTk(Z2) thì β1 = β2 21/1/2010 3 Ví dụ Văn phạm G với các sản xuất : S → aAS | b 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 ≠ aj vớ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 → α1 | α2 | . . . . | αn , 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ì 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ơ đồ 21/1/2010 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) ype en , n eger, c ar,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, +, -, *,/,) ,,>=,=,!=

Các file đính kèm theo tài liệu này:

  • pdfunit8_compatibility_mode__8651.pdf
Tài liệu liên quan