Cách tạo nguyên tắc phân tích từ trên xuống - Nguyên tắc phân tích đệ quy
.Mục lục
- Giới thiệu về top-down parsers
- Phân loại top-down parsers
- Cú pháp recursive descent parsers
- Ví dụ về recursive descent parsers
- Quá trình phân tích của recursive descent parsers
- Mô phỏng việc phân tích một chuỗi đầu vào
- Sự dùng hàm và sự phản ánh của cú pháp trong recursive descent parsers
- Quy tắc ánh xạ từ grammar đến recursive descent parsers
- Các hàm match và getcare trong recursive descent parsers
- Cách thức lặp lại và hoàn thành quá trình phân tích
- Lợi và hại của recursive descent parsers
.Bài viết
.Giới thiệu về top-down parsers
Trong buổi học trước, chúng ta đã được giới thiệu về các trình phân tích (parsers) và trong buổi học này, chúng ta sẽ bắt đầu hành trình học về các trình phân tích top-down, bắt đầu bằng trình phân tích đệ quy từ xa. Trong quá trình này, chúng ta sẽ trình bày về trình phân tích top-down, sau đó chúng ta sẽ tìm hiểu về trình phân tích đệ quy từ xa với sự trợ giúp của một ví dụ.
.Phân loại top-down parsers
Các trình phân tích top-down có thể được phân loại thành Hai loại khác nhau: trình phân tích top-down có Backtrack và trình phân tích top-down không backtrack. Trong khóa học này, chúng ta sẽ tập trung chủ yếu vào trình phân tích top-down không backtrack. Trình phân tích top-down với backtrack cho phép sử dụng các ngữ pháp tự do xác định không xác định. Tuy nhiên, chúng ta không quan tâm đến loại này và thay vào đó quan tâm đến trình phân tích top-down không backtrack. Để xây dựng các trình phân tích top-down, ngữ pháp tự do xác định không xác định không nên có sự trùng lặp bên trái và bất kỳ sự không xác định nào khác. Trong chương trình này, chúng ta đã loại bỏ sự trùng lặp bên trái và phân tích không xác định từ ngữ pháp tự do xác định không xác định.
.Cú pháp recursive descent parsers
Cú pháp của trình phân tích đệ quy từ xa là một trình phân tích top-down được xây dựng từ một tập hợp các quy trình đệ quy tương hỗ hoặc tương đương không đệ quy, trong đó mỗi quy trình triển khai một trong các biến không kết thúc của ngữ pháp. Do đó, cấu trúc của chương trình kết quả phản ánh rất chính xác cấu trúc của ngữ pháp mà nó nhận dạng.
Sự định nghĩa trên sẽ được rõ hơn với ví dụ dưới đây.
.Ví dụ về recursive descent parsers
Giả sử ngữ pháp sau có các quy tắc như sau:
e := IE'
E' := +IE' | ε
Chúng ta sẽ tạo một trình phân tích đệ quy từ xa cho ngữ pháp này và chúng ta sẽ quan sát cách nó hoạt động để nhận dạng một chuỗi đầu vào.
Thêm FAQ Please.