2012-03-05 18 views
5

Trước hết, là các quy tắc ngữ nghĩa và cú pháp trừu tượng Tree Rules giống nhau không?Rules Semantic/Abstract Syntax Tree Rules

Bây giờ, nếu tôi có một thông số kỹ thuật ngôn ngữ, và tôi có CFG, sau đó làm thế nào để tôi đi về xây dựng cú pháp trừu tượng quy Tree. Bất kỳ nguồn nào được đánh giá cao. Cảm ơn.

Trả lời

3

"cú pháp trừu tượng Tree" Quy tắc (đây là thuật ngữ lạ) có thể được hiểu là những quy tắc nhằm chỉnh đốn lại việc xây dựng các cú pháp trừu tượng như tiền thu được phân tích cú pháp. Đây là những thường được viết, trong một quy tắc ngữ pháp cho một T không thuộc đầu cuối, như nhà xây dựng trên cây cú pháp trừu tượng sản xuất bằng cách phân tích các cụm từ chi nhánh của T. Nếu

T = '(' A ';' B ')' ; 

là một quy tắc ngữ pháp, một nhà xây dựng AST cho T có thể là

T(A,B) 

ngụ ý việc xây dựng nút T với trẻ em là AST được tạo cho các thanh con A và B.

Rules Semantic là trở ngại rằng chương trình phải đáp ứng được quy phạm pháp luật, ngoài cú pháp đơn thuần. Vì vậy, người ta có thể xây dựng một cây cú pháp trừu tượng (từ "quy tắc"); làm như vậy chỉ thể hiện chương trình là đúng cú pháp. Nhưng cú pháp trừu tượng có thể nói những điều đó chỉ đơn giản là vô nghĩa ngữ nghĩa, ví dụ,

"declare s as function; ... s=7; ..." 

Cách duy nhất để kiểm tra điều này nói chung là đi bộ qua cây cú pháp trừu tượng, thu thập sự kiện tại địa phương (ví dụ, "s là một chức năng "là một thực tế chiết xuất từ ​​báo cáo kết quả kê khai; 's được gán một số nguyên' được thu thập từ việc chuyển nhượng) và tuyên truyền những sự kiện cho đến khi họ gặp gỡ và được chứng minh là có (in) tương thích.

0

Để trả lời câu hỏi thứ hai của bạn, đây là một bài viết mà gắn cùng các khái niệm về ngữ pháp và một cây cú pháp, và kiểm tra một số thuật toán phân tích cú pháp.

http://www.cs.purdue.edu/homes/xyzhang/spring11/notes/ast.pdf

Từ bài viết:

The resulting grammar is called the concrete grammar. 
The corresponding derivation tree is called the parse tree. 

Một cây cú pháp bê tông hoặc phân tích cây là một cây đại diện cho cấu trúc cú pháp của một chuỗi theo một số ngữ pháp chính thức.

Dưới đây là một liên kết đến một ví dụ nguồn gốc của một cây phân tích cú pháp từ một ngữ pháp:

http://www.cs.rochester.edu/~nelson/courses/csc_173/grammars/parsetrees.html

mà cũng nêu bật những vấn đề đối phó với văn phạm mơ hồ.