设计并实现Tinyc语言扫描翻译器的扫描程序

回复贴子可以查看本题解题辅導资料

游客,如果您要查看本帖隐藏内容请

  TINY是《编译原理与实践》一书中介紹的教学编程语言扫描翻译器该语言扫描翻译器缺少真正程序设计语言扫描翻译器的主要特征,但足以例证编译器的主要特征了本文將介绍该编译器的实现过程,完整的实现代码l中供编译原理初学者参考。

quitSimulation done.接下来几篇文件讲一步步介绍该编译器和虚拟机的实现

1、TINY语訁扫描翻译器无过程,无声明所有的变量都是整形。
2、它只有两个控制语句:if语句和repeat语句if语句有一个可选的else部分且必须由关键字end结束。
4、"{"和"}"中的语句为注释但注释不能嵌套
程序清单1是该语言扫描翻译器的一个求阶乘的编程示例。

end开发环境和工具:

本文的开发环境为Ubuntu, 使鼡lex进行词法分析yacc进行语法分析,gcc来作为编译器

规则部分定义了DFA的转换,辅助函数定义了getToken方法该函数调用yylex()来获取匹配到的标识符,然後复制对应的字符串最后打印识别到的字符串和标识符。

词法扫描部分包含以下C文件 左边为头文件,右边为代码文件
sample.tny为tiny语言扫描翻译器编写的求阶乘函数本文及后续文章都以该文件作为测试文件。
globas.h头文件包含了数据类型的定义和编译器使用的全局变量main.c为编译器的主程序,分配和初始化全程变量

所有的标识付都被识别,对应的值也打印了

我要回帖

更多关于 语言扫描翻译器 的文章

 

随机推荐