gpt4 book ai didi

c - 语义规则/抽象语法树规则

转载 作者:太空狗 更新时间:2023-10-29 15:04:38 25 4
gpt4 key购买 nike

首先,语义规则和抽象语法树规则是一样的吗?

现在,如果我有语言规范,并且有 CFG,那么我该如何构建抽象语法树规则。任何来源表示赞赏。谢谢。

最佳答案

“抽象语法树”规则(这是一个奇怪的术语)可能被解释为那些在解析过程中塑造抽象语法结构的规则。这些通常以非终结符 T 的语法规则编写,作为通过解析 T 的从属短语生成的抽象语法树的构造函数。如果

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

是语法规则,T 的 AST 构造函数可能是

   T(A,B)

暗示构建一个 T 节点,其子节点是为 A 和 B 子解析构建的 AST。

语义规则是程序必须满足的合法性约束,而不仅仅是语法。因此可以构造一个抽象语法树(来自“规则”);这样做只能证明该程序在语法上是正确的。但是抽象语法可以说一些在语义上根本没有意义的事情,例如,

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

一般检查这一点的唯一方法是遍历抽象语法树,在本地收集事实(例如,“s 是一个函数”是从 declare 语句中提取的事实;收集“s is assigned an integer”从作业中)并传播这些事实,直到它们相遇并被证明是(不)兼容的。

关于c - 语义规则/抽象语法树规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9573879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com