抽象语义图

为了表示一个需要输入参数的函数的实现,所接收的参数在源代码中被赋予了一个任意的、独特的名字,这样它就可以被引用了。这个概念实体的抽象表示,一个函数参数实例,可能会在函数签名中提到,也会在实现代码体中提到一次或多次。由于函数作为一个整体既是它的头或签名信息的父体,也是它的实现主体的父体,AST将不能使用同一个节点来共同识别参数实体的多种用途或出现。这个问题通过ASG的DAG性质得到了解决。对于任何给定的代码元来说,有一个单一的、独特的节点标识的关键优势是,根据定义,每个元素的属性都是xxx存储的。这简化了重构操作,因为对于任何给定的属性实例化,都有一个确切的存在关系。如果开发者决定改变一个属性值,比如任何代码元素的名称(本例中的函数参数),ASG在本质上正好在一个地方暴露了这个值,因此,任何这样的属性变化都是隐式的、琐碎的、立即传播到全局的。

0

点评

点赞

相关文章