Cây cú pháp trừu tượng

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ụ

Cây cú pháp trừu tượng với đoạn mã của Giải thuật Euclid:
while b ≠ 0
if a > b
a:= a − b
else
b:= b − a
return a

Tham khảo

  1. ^ A.A.Puntambekar (2009). Compiler Design. Technical Publications Pune. Page 5-5.

Liên kết ngoài

  • 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).
Hình tượng sơ khai Bài viết liên quan đến khoa học máy tính này vẫn còn sơ khai. Bạn có thể giúp Wikipedia mở rộng nội dung để bài được hoàn chỉnh hơn.
  • x
  • t
  • s