为了避免在嵌套的条件语句if-else
1个回答
展开全部
为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。 A.缩排位置相同if B.其前面最近的ifC.其后面最近的if D.同一行上的if
答案:B
二义性文法认为是一种语言语法的不完善说明,而且也应避免它。幸运的是,二义性文法在后面将介绍到的标准分析算法的测试中总是失败的,而且也开发出了标准技术体系来解决在程序设计语言中遇到的典型二义性。
有两个解决二义性的基本方法。其一是:设置一个规则,该规则可在每个二义性情况下指出哪一个分析树(或语法树)是正确的。这样的规则称作消除二义性规则。这样的规则的用处在于:它无需修改文法(可能会很复杂)就可消除二义性;
另一种方法是将文法改变成一个强制正确分析树的构造的格式,这样就可以解决二义性了。当然在这两种办法中,都必须确定在二义性情况下哪一个树是正确的。这就再一次涉及到语法制导翻译原则了。我们所需的分析(或语法)树应能够正确地反映将来应用到构造的意义,以便将其翻译成目标代码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询