标签:ati 语义 必须 cti empty 任务 语言 float psi
首先建立一个将中缀算术表达式转换成后缀表达式的语法制导翻译器,然后我们扩展这个翻译器,将某些程序片段转换为如图所示三地址代码
{ int i; int j; float[100] a; float v; float x; while(true){ do i = i + 1; while(a[i] < v); do j = j + 1; while(a[j] > v); if(i >= j) break; x = a[i]; a[i] = a[j]; a[j] = x; } }
编译器在分析阶段把一个源程序划分成各个组成部分
例题2.2中 9 - 5 + 2 的推导可以用下图的树来演示
根结点的子结点的标号从左向右分别为list、+和digit, list→list + digit
一个文法可能具有多棵语法分析树能够生成同一个给定的终结符号串,这样的文法称为具有二义性(ambiguous)
最终得到的文法:
标签:ati 语义 必须 cti empty 任务 语言 float psi
原文地址:https://www.cnblogs.com/YC-L/p/12122089.html