5
A
回答
3
「抽象語法樹」規則(這是奇怪的術語)可能會被解釋爲在解析過程中形成抽象語法的結構的那些規則。這些通常被寫,在非終結噸語法規則,如在通過解析T的子公司短語如果
T = '(' A ';' B ')' ;
產生抽象語法樹的構造是一個語法規則,對於T的AST構造可能是
T(A,B)
意味着構建一個T節點,其子節點是爲A和B子分析構建的AST。
語義規則是程序必須符合的約束條件,超越單純的語法。所以可以構造一個抽象語法樹(來自「規則」);這樣做只會證明程序在語法上是正確的。但是,抽象語法可以說的事情,只是無意義的語義,例如,
"declare s as function; ... s=7; ..."
一般要檢查這個問題的唯一辦法就是走在抽象語法樹,在當地收集的事實(例如,「s是一個功能「是從聲明語句中提取出來的一個事實;」分配一個整數「是從作業中收集的)並傳播這些事實,直到它們相遇並顯示爲(不)相容。
0
要回答第二個問題,下面是一篇將語法和語法樹的概念聯繫在一起的文章,並檢查了一些解析算法。
http://www.cs.purdue.edu/homes/xyzhang/spring11/notes/ast.pdf
從文章:
The resulting grammar is called the concrete grammar.
The corresponding derivation tree is called the parse tree.
甲具體語法樹或解析樹是表示根據一些形式文法的一個字符串的語法結構的樹。
這裏是從語法解析樹的例子推導的鏈接:
http://www.cs.rochester.edu/~nelson/courses/csc_173/grammars/parsetrees.html
這也凸顯了處理模棱兩可的語法問題。
相關問題
- 1. URL語法規則
- 2. yacc語法規則的語義
- 3. CodeEffects規則中嵌套的「If-else」語句規則
- 4. 句法斷言規則
- 5. 語法高亮規則和定義
- 6. Jess:用「not」語法定義規則
- 7. FHIR資源規則; FHIR規則管理和規則定義
- 8. C++ typedef語法規則
- 9. Treetop忽略語法規則
- 10. 驗證規則語法
- 11. 業務規則Xtext語法
- 12. 評論的語法規則
- 13. 運用語法規則
- 14. 奇怪ANTLR語法規則
- 15. 工具從語法規則
- 16. 語法規則分析
- 17. 定義規則
- 18. 定義規則
- 19. Laravel 5 - 內FormRequest條件語句規則
- 20. SCSS:如果語句在CSS規則
- 21. 將SQL語句轉換爲Drools規則
- 22. 關於事件規則的SQL語句
- 23. SWRL規則使用OR語句
- 24. PHP IF語句碰撞多個規則
- 25. asRules(樹)R保存規則
- 26. Antlr樹重寫規則
- 27. CSS規則對象
- 28. Jess規則定義
- 29. URL轉義規則
- 30. C#:英語語法規則引擎?