实现最简单汉字编程
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
摘 要
??? 编译器是将一种将计算机语言翻译为另一种计算机语言的程序。编译器将源程序(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年代早期,大量的项目都关注于编译器其他部分的生成自动化这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。
1.2? 课题来源与意义
??? 编译器是程序设计的基础,人们对于编译器的研究从没间断过,优秀的编译器能提高代码执行速度等,一门优秀的语言就有一个优秀的编译器。
编译器设计最近的发展包括:首先,编译器包括了更为复杂的算法的应用程序,它用于推断和/或简化程序中的信息;这又与更为复杂的程序设计语言(可允许此类分析)的发展结合在一起。其中典型的有用于函数语言编译的H
i n d l e y - M i l n e r类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境( interactive
development environment,I D E)的一部分,它包括了编辑器、链接程序、调试程序以及项目管理程序。这样的I D E的标准并没有多少,但是已沿着这一方向对标准的窗口环境进行开发了。尽管近年来对此进行了大量的研究,但遗憾的是编译器设计在近2
0年中都没有多大的改变,
中国人一直希望有自己的计算机语言,直至今天,我们已经迈出了很大的一步。 O语言就是中国自主的计算机语言,它立足于计算机语言的基础,从计算机汇编语言开始实现,为最终实现中文计算机高级语言扫清了道路。然而这仅仅是编译器研究的开始,我们还有很多工作去做,需要我们每个中国人的任务。
1.3? 课题任务要求
?? 构造一个完整而且完美的编译器要涉及很多的知识,并且工作量也非常之大,需要一个大的团队合作与分工,因此,本课题的研究内容只是从中文关键字识别的一个小部分去研究,作为一个范例,引入更多的研究工作。
?? 本课题主要研究基于能够识别中文关键字的类似C语言的编译器的研究,任务是首先定义部分中文关键字,然后规定一定的语法格式,然后够找相应的状态机来识别词法,应用LR分析方法来够找action和goto表,然后编写代码来进行分析。要求是能够正确分离词法,处理语法分析的问题,然后根据源码的语义来对代码进行分析,仿照dos界面的输入规则,对代码进行分析输入和输出。
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Times New Roman","serif";
mso-font-kerning:1.0pt;}
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Times New Roman","serif";
mso-font-kerning:1.0pt;}