Cây cú pháp trừu tượng
Giao diện
Trong ngành khoa học máy tính, cây cú pháp trừu tượng (AST, abstract syntax tree) là một cây có giới hạn, có nhãn và có định hướng. Đây là cấu trúc cây mà các nút gốc của cây được gán nhãn bằng các toán tử và các nút là của cây là các toán hạng.[1] Tuy vậy, các lá cũng có khi là các giá trị NULL hoặc là các biến hoặc các hàng. Trong các công đoạn của chương trình dịch, cây AST này được dùng trong bộ phân tích cú pháp như là một trung gian giữa cây phân tích cú pháp (concrete syntax tree) và cấu trúc dữ liệu. Cây cú pháp trừu tượng khác với cây phân tích cú pháp là ở chỗ nó không chỉ quan tâm đến cú pháp mà còn quan tâm đến ngữ nghĩa của chương trình.
Ví dụ
[sửa | sửa mã nguồn]- while b ≠ 0
- if a > b
- a:= a − b
- else
- b:= b − a
- if a > b
- return a
Tham khảo
[sửa | sửa mã nguồn]- ^ A.A.Puntambekar (2009). Compiler Design. Technical Publications Pune. Page 5-5.
Liên kết ngoài
[sửa | sửa mã nguồn]- AST View: an Eclipse plugin to visualize a Java abstract syntax tree
- Good information about the Eclipse AST and Java Code Manipulation
- CAST representation
- eli project: Abstract Syntax Tree Unparsing
- Jones, Joel. “Abstract Syntax Tree Implementation Idioms” (PDF). Chú thích journal cần
|journal=
(trợ giúp) (overview of AST implementation in various language families) - Baxter, Ira D. “Clone Detection Using Abstract Syntax Trees” (PDF). et al. Chú thích journal cần
|journal=
(trợ giúp) - Fluri, Beat; Würsch, Michael; Pinzger, Martin; Gall, Harald C. “Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction” (PDF). Bản gốc (PDF) lưu trữ ngày 30 tháng 5 năm 2009. Truy cập ngày 30 tháng 10 năm 2013. Chú thích journal cần
|journal=
(trợ giúp) - Würsch, Michael. Improving Abstract Syntax Tree based Source Code Change Detection (Luận văn). Lưu trữ 2007-12-16 tại Wayback Machine
- Lucas, Jason. “Thoughts on the Visual C++ Abstract Syntax Tree (AST)”.
- “Abstract Syntax Tree Metamodel Standard” (PDF).