|
编译器
是将一种将计算机语言翻译为另一种计算机语言的程序。编译器将源程序(source language) 编写的程序作为输入,翻译产生用目标语言(target language)编写的等价程序。源程序一般为高级语言(high-level language),如Pascal C++等,而目标语言则是汇编语言或目标机器的目标代码(object code),有时也称作机器代码(machine code). 编译系统是任何计算机系统中不可缺少的重要部分。拥有中文编译器是每个中国人的梦想。本系统开发一个支持中文关键字的编译器,它支持简单的数据类型,例如:整型(int),浮点型(float);还支持转移语句如:如果(if),否则(else)等中文关键字。
关键字
:
中文编译器、
C
语言、词法、语法、语义
1.1
引言
在本世纪4 0年代,由于冯·诺伊曼在存储-程序计算机方面的先锋作用,编写一串代码或程序已成必要,这样计算机就可以执行所需的计算。开始时,这些程序都是用机器语言(machine language)编写的。机器语言就是表示机器实际操作的数字代码,例如:C7 06 0000 0002表示在IBM PC上使用的Intel 8x86处理器将数字2移至地址0 0 0 0(1 6进制)的指令。当然,编写这样的代码是十分费时和乏味的,这种代码形式很快就被汇编语言( assembly language)代替了。在汇编语言中,都是以符号形式给出指令和存储地址的。例如,汇编语言指令MOV X, 2就与前面的机器指令等价(假设符号存储地址X是0 0 0 0)。汇编语言大大提高了编程的速度和准确度,人们至今仍在使用着它,在编码需要极快的速度和极高的简洁程度时尤为如此。但是,汇编语言也有许多缺点:编写起来也不容易,阅读和理解很难;而且汇编语言的编写严格依赖于特定的机器,所以为一台计算机编写的代码在应用于另一台计算机时必须完全重写。
在1 9 5 4年至1 9 5 7年期间,I B M的John Backus带领的一个研究小组对F O RT R A N语言及其编译器的开发,使得上面的担忧不必要了几乎与此同时,人们也在开发着第一个编译器, Noam Chomsky开始了他的自然语言结构的研究。他的发现最终使得编译器结构异常简单,甚至还带有了一些自动化。C h o m s k y的研究导致了根据语言文法( g r a m m a r,指定其结构的规则)的难易程度以及识别它们所需的算法来为语言分类。
在
7 0
年代后期和
8 0
年代早期,大量的项目都关注于编译器其他部分的生成自动化这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。
|