发布网友 发布时间:2022-05-06 10:34
共3个回答
热心网友 时间:2022-06-29 19:06
语法制导翻译简称SDT,基于属性文法的处理过程,对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。
基本思想是,根据翻译的需要设置文法符号的属性,以描述语法结构的语义。例如,一个变量的属性有类型,层次,存储地址等。表达式的属性有类型,值等。属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,完成语义分析和翻译的任务。
元编译器
早期元编译器在其描述中使用了语法驱动翻译和语法制导翻译这两个术语。在其输出代码中具有元编程的语言特性,参见元编译器、META II以及TREE-META。
语法中的每个符号可以有一个属性,即一个将被关联到符号的值。常见的属性可能包含变量类型、表达式的值,等等。 给出一个符号X和一个属性t,符号的属性可以通过X.t来引用。
以上内容参考 百度百科-语法制导翻译
热心网友 时间:2022-06-29 19:07
基于属性文法的处理过程,对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。
翻译的任务:首先是语义分析和正确性检查,若正确,则翻译成中间代码或目标代码。
使用的方法称作语法制导翻译。基本思想是,根据翻译的需要设置文法符号的属性,以描述语法结构的语义。例如,一个变量的属性有类型,层次,存储地址等。表达式的属性有类型,值等。属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,完成语义分析和翻译的任务。
语法树的构造
语法树是分析树的压缩形式。在语法树中,运算符和关键字不再是叶节点,而是作为内部节点的父节点。
用以下函数建立带有二元运算符的表达式语法树节点,每个函数都返回一个指向新建节点的指针:
1、mknode(op,left,right)。它建立一个标记为op的运算符节点,其两个域left和right是指向其左右运算对象的指针。
2、mkleaf(id,entry)。它建立标记为id的标识符节点,其域entry是指向该标识符在符号表中的相应表项的指针。
3、mkleaf(num,val)。它建立标记为num的数节点,域val保存该数的值。
以上内容参考:百度百科-语法制导翻译
热心网友 时间:2022-06-29 19:07
语法制导翻译,简称SDD。基于属性文法的处理过程,对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。