第五章 第1节 语法制导翻译概述

2020-03-23  本文已影响0人  化二缺

什么是语法制导翻译

image.png

语法制导翻译的基本思想

如何表示语义信息?
为CFG中的文法符号设置语义属性,用来表示语法成分对应的语义信息

如何计算语义属性?
文法符号的语义属性值是用与文法符号所在产生式(语法规则)相关联的
语义规则来计算的
对于给定的输入串x ,构建 x 的语法分析树,并利用与产生式(语法规则)相关联的语义规则来计算分析树中各结点对应的语义属性值

两个概念

将语义规则同语法规则联系起来要涉及两个概念
语法制导定义
语法制导翻译方案

语法制导定义

SDD是对CFG的推广
将每个文法符号和一个语义属性集合相关联
将每个产生式和一组语义规则相关联,这些规则用于计算该产生式中各文法符号的属性

如果X 是一个文法符号,a是X的一个属性,则用X.a来表示属性a在没某个标号为X的分析树节点上值

image.png

语法制导翻译方案(SDT)

SDT 是在产生式右部嵌入了程序片段的CFG ,这个程序片段称为语义动作。按照惯例,语义动作放在花括号内


image.png

SDD与SDT

SDD
是关于语言翻译的高层次规格说明
隐蔽了许多具体实现细节,使用户不必显示的说明翻译发生的顺序

SDT
可以看做是对SDD的一种补充,是SDD的具体实施方案
显示的指明了语义规则的计算顺序,以便说明某些实现细节

上一篇下一篇

猜你喜欢

热点阅读