TỪ VỰNG và PHÂN TÍCH cú PHÁP

12 645 0
TỪ VỰNG và PHÂN TÍCH cú PHÁ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

Chương 4 :TỪ VỰNG VÀ PHÂN TÍCH CÚ PHÁP Nội dung : • Giới thiệu • Phân tích từ vựng • Phân tích cú pháp • Phân tích cú pháp từ trên xuống • Phân tích cú pháp từ dưới lên I. Giới thiệu :  Kỹ thuật phân tích từ vựng, ngữ nghĩa, cú pháp thuộc về mảng đầu tiên của trình biên dịch  Mọi sự phân tích cú pháp đều dựa vào CFG hoặc BNF  Bộ phân tích cú pháp được chia làm 2 phần : o Phần mức thấp gọi là bộ phân tích từ vựng(Scaner) là một automatch hữu hạn dựa vào văn phạm chính qui o Phần mức cao cao gọi là bộ phân tích cú pháp là một automatch đẩy xuống dựa vào ngôn ngữ phi ngữ cảnh hoặc BNF  Lý do chia bộ phân tích cú pháp thành 2 phần : o Đơn giản – phân tích từ vựng đơn giản hơn =>việc xây dựng bộ phân tích từ vựng đon giản hơn o Hiệu quả :việc phân chia thành 2 khối giúp tối ưu hóa o Tính khả chuyển :bộ phân tích từ vựng không khả chuyễn nhưng bô phân tích cú pháp có thể khả chuyễn(đẩu ra của bộ phân tích từ vựng là các token có thể đưa vào các máy phân tích cú pháp khác nhau ) II. Phân tích từ vựng  Phân tích từ vựng là so sách với các mẫu(thường được mô tả bởi biểu thức chính quy) o Ví dụ  Tên biến có dạng (a| |Z)(0| |9|a |z)*  Số nguyện có dạng :0+(1| |9)(0| |9)*  Xác định chuỗi con có thuộc một nhóm(Lexemes) o Ví dụ a1 :thuộc tên biến,98 thuộc số nguyên  Với các chuổi con thuộc mẩu giống nhau sẽ được vào một token(phân loại) Chương trình nguồn Scanner(PTTV) Parser(PTCP)  Bộ phân tích từ vựng giống như 1 hàm sẽ được gọi bởi bộ phân tích cú pháp khi cần token kế tiếp  Quá trình phân tích từ vựng: o Bỏ qua các ghi chú, các tab, xuống dòng, và khoảng trống o Lưu lại các thông tin về tập tin,dòng, cột để thông báo lỗi o Phát hiện và báo cáo các lỗi từ vựng trong token cho người sử dụng III. Ba cách xây dựng bộ phân tích từ vựng(Scanner) o Dùng phần mềm pháp sinh tự động(đầu vào là một văn phạm chính quy) o Xây dựng sơ đồ trạng thái DFA o Xây dựng bảng thực thi dòng, cột  Luật tìm lexeme dài nhất o Scanner chỉ trả về token khi đọc đến ký tự kết thúc token( thường là khoàng trắng) o Trong một số trường hợp Scanner phải đọc nhiều hơn một ký tự để nhận biết đã kết thúc token o Ví dụ :trong pascal khi ta đọc được số 3 và sau đó là dấu .  Ta tiếp tục sử lý với huy vọng là số 3.1  Hay dừng với 3 5  Trong một số trường hợp ta phải đọc cả chuổi nhập mới xác định được ý nghĩa của chuổi o Ví dụ trong Fortran  DO 5 I = 1,25 //VÒNG lăp  DO 5 I = 1.25 //biến=1.25  Ta phải lưu lại tất cả các thông tin nếu không sẽ gặp các khó khăn về sau IV. Thiết kế sơ đồ truyền  Xây dựng bộ phân tích từ vựng để nhận dạng tên trong chương trình như tên biến,chương trình con, từ dành riêng, chuổi số nguyên  Một đường truyền đơn giản là từ một trạng thái ở bước I sẽ có đường truyền đến tất cả các trạng thái ở bước i+1 =>sơ đồ rất lớn  Phải tích hợp các trạng thái để đơn gian sơ đồ truyền o Các ký tự hoa, thường :lớp ký tự o Các số nguyên :lớp số o Từ dành riêng : nhận dạng chung với lớp ký tự  Từ trạng thái đầu chỉ có hai đường truyền đến lớp ký tự và lớp số  Các hàm con được dùng để xử lý token o getChar :lấy ký tự kế tiếp trong dữ liệu nhập đưa vào biến toàn cục nextChar o addChar :lấy ký tự từ biến nextChar đưa vào biến toàn cục là lexeme đề tạo thành token o lookup :xác định từ trong lexeme là từ dành riêng [...]... vào đầu ngăn xếp 9 Ưu điểm LR parsers  Làm việc với hầu hết mọi văn phạm, dùng để mô tả các ngôn ngữ lập trình  Có thể phát hiện lỗi nhanh chóng  Các văn phạm được nhận dạng bởi LR thì bao gồm cả những văn phạm được nhận dạng bởi LL 10 Cấu trúc bộ phân tích LR  Cấu hình LR Parser :  Dùng một Stack để lưu trữ ký hiệu trạng thái Si và ký hiệu văn phạm Xi S0X1S1…XmSm . 4 :TỪ VỰNG VÀ PHÂN TÍCH CÚ PHÁP Nội dung : • Giới thiệu • Phân tích từ vựng • Phân tích cú pháp • Phân tích cú pháp từ trên xuống • Phân tích cú pháp từ dưới lên I. Giới thiệu :  Kỹ thuật phân. :bộ phân tích từ vựng không khả chuyễn nhưng bô phân tích cú pháp có thể khả chuyễn(đẩu ra của bộ phân tích từ vựng là các token có thể đưa vào các máy phân tích cú pháp khác nhau ) II. Phân tích. trình  Có hai kỹ thuật phân tích o Top-down :xây dựng cây phân tích cú pháp bắt đầu từ gốc o Bottom up :xây dựng cây phân tích cú pháp bắt đầu từ lá  Bô phân tích cú pháp thường nhìn trước một

Ngày đăng: 26/01/2015, 10:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan