自己动手写编译器之TINY编译器词法分析

本文介绍了TINY编译器的词法分析过程,包括TINY语言的特点,如无过程、无声明,只有两个控制语句等。通过DFA描述词法扫描程序,并提供词法规则。通过示例展示了如何编译运行词法分析程序,并预告接下来将讨论语法分析。
摘要由CSDN通过智能技术生成

  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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值