TINY是《编译原理与实践》一书中介绍的教学编程语言,该语言缺少真正程序设计语言的主要特征,但足以例证编译器的主要特征了。本文将介绍该编译器的实现过程,完整的实现代码loucomp_linux中,供编译原理初学者参考。
小试牛刀:
下载源码后,进入loucomp_linux, 在命令行输入
$make
便生成tiny程序,然后输入
$tiny sample.tny
tiny 将sample.tny中的TINY源码生成tm指令。tm指令是TM虚拟机的汇编代码,TM虚拟机的源码在tm.c中,输入如下指令进行编译:
$gcc tm.c -o tm
有了tm,便可执行上面生成的sample.tm指令:
$tm sample.tm
该命令装入对了tm汇编,接着就可以交互的运行TM模拟程序了。
sample.tny是用TINY编写的求阶乘代码,按以下命令就可得到7的阶乘了
$tm sample.tm
TM simulation (enter h for help)...
Enter command: go
Enter value for IN instruction: 7
OUT instruction prints: 5040