单词符号二元式。一般程序语言的单词符号包括关键字、运算符、常数、标识符和界符。语法分析器将这些单词符号作为输入,对它进行语法分析。语法分析分为两种方法:自上而下分析法和自下而上分析法。针对不同程序语言的语法规则可以采取不同的分析方法,当然两种方法也可以同时使用。语法分析器把语法单元作为输入供语义分析器使用。一般的语义分析器主要采用的是语法制导方法,即在语法分析的同时进行语法分析,并产生一定的语义动作,来生成中间代码。上面三个过程可以与硬件无关,而接下来的优化器和目标代码生成器是针对某一种处理器而言的。代码优化是将语义分析生成的中间代码进行优化,产生执行效率更高的代码。目标代码生成器最终生成可以在某种机器上运行的机器语言或者汇编语言。在整个编译过程中还包括对表格的操作和对错误的处理,这些也都是非常重要的环节。
11源、目标语言简介
使用C语言做简单语法分析器,C语言是一门高级计算机编程语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言
f精选
12实现平台与运行平台简介
在wi
32环境下进行编译,Wi
32是指MicrosoftWi
dows操作系统的32位环境,是目前使用最多的操作系统。
实验环境:需要TC、VC60等开发工具作为本次试验的环境。
13其它
通过实现一个可以把类似c语言的源代码转变为中间代码的编译器,更好地理解编译的过程,锻炼我们组的编程能力。
2简单词法分析器的设计与实现21基础理论说明
词法分析负责对源程序的字符串进行扫描和分解,根据构词法将字符流CharacterStream转化成单词流Toke
Stream。
22需求分析
词法分析器产生下述小语言的单词序列这个小语言的所有的单词符号,以及它们的种别编码和内部值1如下表:
单词符号DIMIFDOSTOPEND
种别编码12345
助记符DIMIFDOSTOPEND
内码值
f标识符
6
常数(整)
7
8
9
10
11
,
12
(
13
)
14
精选
IDINTASSIGNPLUSSTARPOWERCOMMALPARRPAR
内部字符串标准二进形式
23概要设计
首先,所有的关键字(如IFWHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的:
IF(5)x其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编码)预先安排在一张表格中(r