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

Nhập môn Chương trình dịch - Bài tập ppt

Nhập môn Chương trình dịch - Bài tập ppt

... tiến chương trình phân tích từ vựng - Thêm vào từ tố cho câu lệnh for, switch … case - Thông báo lỗi từ vựng: vị trí xảy lỗi - Hồi phục lỗi: bỏ qua lỗi dịch tiếp để bắt hết lỗi từ vựng IV Nộp tập ... in từ tố hình - Viết lớp Lexer có thành viên tên file luồng nhập (C++ istream Java InputStream) hàm thành viên next_token() có kiểu trả Token - Hàm next_token() đọc...

Ngày tải lên: 24/07/2014, 08:21

6 1,9K 20
Nhập môn Chương trình dịch - Bài 15 docx

Nhập môn Chương trình dịch - Bài 15 docx

... nút SEQ làm gốc IR SEQ s1 s2 … sn • Một hàm biểu diễn dạng SEQ(s1, s2, … sn) • Có thể dịch thành mã mãy cách dịch s1, s2, …, sn nối mã lại với Dạng IR phẳng • Ý tưởng: viết lại IR lược bớt cấu ... s2’,…, sn’); OP(e1’, e2’) • Luật thể ý đồ người lập trình chưa? Cú pháp điều khiển: OP • Nếu si’ làm thay đổi e1 làm thay đổi ý đồ người lập trình • Cần lưu lại giá trị e1 trước tính si’ J[...

Ngày tải lên: 24/07/2014, 08:21

25 279 1
Nhập môn Chương trình dịch - Bài 14 pps

Nhập môn Chương trình dịch - Bài 14 pps

... lệnh dựa vào mã nút • Cú pháp điều khiển – Mô tả xác chương trình dịch cần làm – Có thể cài đặt dễ dàng – Có thể chứng minh tính chương trình dịch Sinh mã lệnh if SEQ if (e) s CJUMP [e] NAME(t) ... return? • Ý tưởng: thêm vào biến RV (return value) nhãn cuối hàm • Hàm dịch sang mã sau SEQ(S[s], LABEL(epilogue)) • Lệnh return e dịch sang mã sau S[return e] = SEQ(MOVE(TEMP(RV),...

Ngày tải lên: 24/07/2014, 08:21

16 323 0
Nhập môn Chương trình dịch - Bài 13 pps

Nhập môn Chương trình dịch - Bài 13 pps

... chuyển sang loại mã máy khác Cây cú pháp (>40 nút) Mã trung gian (13 nút) Pentium (>200 lệnh) Ngôn ngữ trung gian • Một dạng thể chương trình nằm cú pháp điều khiển mã máy • Sử dụng – Lệnh nhảy – Thanh ... Chỉ có nút biểu thức ESEQ có nút lệnh nằm • Có thể duyệt IR để chạy chương trình Sinh IR (mã trung gian) • Kỹ thuật: phương pháp dịch sử dụng cú pháp điều khiển (giống kiểm tra k...

Ngày tải lên: 24/07/2014, 08:21

26 313 1
Nhập môn Chương trình dịch - Bài 12 pps

Nhập môn Chương trình dịch - Bài 12 pps

... fact(x-1); } A2 ├ x : int A2 ├ : int A2 ├ x == : bool A2 ├ : int A1 = {fact: int  int} A2 = {fact: int  int, x : int} A2 ├ fact : int  int A2 ├ x : int A2 ├ x : int A2 ├ : int A2 ├ x - : int ... A2 ├ fact : int  int A2 ├ x : int A2 ├ x : int A2 ├ : int A2 ├ x - : int A2 ├ fact(x-1) : int A2 ├ x*fact(x-1) : int Luật ngữ nghĩa: lệnh return A├E:T A ├ return E : unit • Kiểm tra kiểu l...

Ngày tải lên: 24/07/2014, 08:21

11 320 0
Nhập môn Chương trình dịch - Bài 11 ppt

Nhập môn Chương trình dịch - Bài 11 ppt

... cách đánh giá kiểu • Luật ngữ nghĩa viết cho nút sản xuất văn phạm • Đánh giá kiểu (kiểm tra kiểu) trình lần ngược cú pháp dựa vào luật Ví dụ A ├ E1 : int E1 A ├ E2 : int (+) : int E2 + A ├ E1 + ... chứng minh (nhiều luật có kết luận) Luật ngữ nghĩa: lệnh While • Với lệnh kiểu, ta đưa vào kiểu giả - unit (unit = có kiểu đúng) A ├ E : bool A├S:T (while) A ├ while (E) S : unit Luật ngữ ng...

Ngày tải lên: 24/07/2014, 08:21

15 362 0
Nhập môn Chương trình dịch - Bài 10 pptx

Nhập môn Chương trình dịch - Bài 10 pptx

... typedef, class Hệ thống kiểu (1) • Mỗi ngôn ngữ lập trình có hệ thống kiểu riêng • Mỗi kiểu giới hạn liệu • VD: int = [-2 31, 231], char = [-1 28, 127] • Các kiểu liệu phức hợp tạo từ kiểu đơn ... char, … • Kiểu phức hợp: int [100 ], struct {int a, char b} • Biểu thức kiểu: T kiểu T[ ] kiểu với T Hệ thống kiểu (2): định nghĩa kiểu • Một số ngôn ngữ cho phép người lập trình tự định ngh...

Ngày tải lên: 24/07/2014, 08:21

11 333 1
Nhập môn Chương trình dịch - Bài 9 pot

Nhập môn Chương trình dịch - Bài 9 pot

... • Nộp tập lập trình số 1: tuần sau Phân tích ngữ nghĩa • Tìm tất lỗi lại chương trình nguồn – Khai báo biến – Kiểm tra kiểu (kiểu tĩnh) • Thiết lập thông tin cần thiết cho bước dịch sau – Kiểu ... bước dịch = duyệt cú pháp • Các bước dịch khác hoạt động giống việc kiểm tra kiểu – – – – Thay số Sinh mã trung gian Tối ưu mã Sinh mã máy • Các bước dịch duyệt cú pháp → tính đa hình...

Ngày tải lên: 24/07/2014, 08:21

18 280 0
Nhập môn Chương trình dịch - Bài 8 ppt

Nhập môn Chương trình dịch - Bài 8 ppt

... } } Chương trình chương trình dịch (2) Compiler.compile() cú pháp Parser.parse() từ tố Lexer.getToken() ký tự InputStream.read() Cây cú pháp Là kết phân tích cú pháp Là dạng thể chương trình ... chương trinh sinh phân tích cú pháp sử dụng phương pháp LALR(1) Thứ tự ưu tiên kết hợp cho phép viết cú pháp ngôn ngữ dễ dàng Văn phạm ngôn ngữ gần với cách viết thông thường Chươ...

Ngày tải lên: 24/07/2014, 08:21

17 286 1
Nhập môn Chương trình dịch - Bài 7 pptx

Nhập môn Chương trình dịch - Bài 7 pptx

... PDA (2) (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 sn)  Hoạt động: với a kí hiệu vào – Gạt a, chuyển tới trạng thái s với s = (sn, a) = gạt s (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 sn a s) – Thu gọn X ... 6, 7, Cài đặt DFA qua PDA (1)  PDA: push-down automata – ôtômát đẩy xuống  Khởi tạo ngăn xếp: push trạng thái (bắt đầu)  Tại thời điểm, ngăn xếp có dạng (s1 x1 s2 x2 … sn-r xn-r … sn-1 xn-1 .....

Ngày tải lên: 24/07/2014, 08:21

21 273 0
Nhập môn Chương trình dịch - Bài 6 pot

Nhập môn Chương trình dịch - Bài 6 pot

... (bottom-up parsing)  Kỹ thuật phân tích mạnh  Văn phạm lớp LR có khả mô tả mạnh văn phạm lớp LL, mô tả văn phạm đệ quy trái (có hầu hết ngôn ngữ lập trình)  Dễ dàng mô tả ngôn ngữ lập trình ... mở rộng - EBNF Cho phép sử dụng số cú pháp biểu thức quy: *, +, ? S  ES’ S’  +S |  (1+2+(3+4))+5 + S  E(+E)* EBNF: không rõ thứ tự kết hợp phép “+” + + + Phân tích đệ quy xuống - EB...

Ngày tải lên: 24/07/2014, 08:21

22 236 0
Nhập môn Chương trình dịch - Bài 5 doc

Nhập môn Chương trình dịch - Bài 5 doc

... (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 Phân ... đọc / Chưa đọc ( ( 1 2 ( ( (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3+4)) +5 (1+2+(3...

Ngày tải lên: 24/07/2014, 08:21

37 318 1
Nhập môn Chương trình dịch - Bài 4 ppsx

Nhập môn Chương trình dịch - Bài 4 ppsx

... real = = = = [ 0-9 ] digit+ -? posint int (ε | ( posint)) Vế trái REs phát triển đến kí hiệu vào real = -? [ 0-9 ]+(ε | ( [ 0-9 ]+)) Ví dụ (1) SE+S|E E  số | (S) Xâu (1 + + (3 + 4) ) + SE+S kí hiệu ... (1+2+(3 +4) )+S  (1+2+(3 +4) )+E  (1+2+(3 +4) )+5  Suy dẫn phải S  E+S  E+E  E+5  (S)+5  (E+S)+5  (E+E+S)+5  (E+E+E)+5  (E+E+(S))+5  (E+E+(E+S))+5  (E+E+(E+E))+5...

Ngày tải lên: 24/07/2014, 08:21

27 300 0
CHƯƠNG TRÌNH DỊCH   bài 3 văn PHẠM sản SINH

CHƯƠNG TRÌNH DỊCH bài 3 văn PHẠM sản SINH

... hiệu không kết thúc sản xuất để đảm bảo thứ tự ưu tiên) Văn phạm nhập nhằng 21/1/2010 Đệ quy „ „ Khử đệ quy trái Một sản xuất đệ qui X =>* ω1X ω2 Có thể dùng để biểu diễn trình lặp hay cấu trúc ... thúc cực trái hay cực phải để thayy thế,, kết q lad suy y dẫn trái suy dẫn phải Văn phạm nhập nhằng Khử nhập nhằng Văn phạm E -> E + E E -> E * E E -> ( E ) E -> ident E -> E + T...

Ngày tải lên: 11/11/2015, 22:58

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

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

... Văn phạm LL( 1) đơn giản LL( 1) Văn phạm G = (Σ, Δ, P, S) LL( 1) đơn giản sản xuất văn phạm có dạng A → a1α1 | a2α2 | anα, ∈ Σ 1≤ i ≤ n Trong ≠ aj với i ≠ j Điều kiện nhận biết văn phạm LL( 1) ... hiệu không kết thúc, S suy dẫn bA FOLLOW1(A) ={ε} Văn phạm LL( k) FOLLOWk(α) FOLLOWk(α) = {x ∈ Σ* | S ⇒* βαδ x∈ FIRSTk(δ)} Đặc biệt , α =A Đặ A ∈ Δ* , S FOLLOW1(A) ={ε} k ký...

Ngày tải lên: 11/11/2015, 22:59

4 775 6
w