文本编译器设计论文.docx

上传人:b****6 文档编号:7767509 上传时间:2023-01-26 格式:DOCX 页数:24 大小:194.37KB
下载 相关 举报
文本编译器设计论文.docx_第1页
第1页 / 共24页
文本编译器设计论文.docx_第2页
第2页 / 共24页
文本编译器设计论文.docx_第3页
第3页 / 共24页
文本编译器设计论文.docx_第4页
第4页 / 共24页
文本编译器设计论文.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

文本编译器设计论文.docx

《文本编译器设计论文.docx》由会员分享,可在线阅读,更多相关《文本编译器设计论文.docx(24页珍藏版)》请在冰豆网上搜索。

文本编译器设计论文.docx

文本编译器设计论文

**********软件系统设计说明书

文本编译器

学生学号:

********

学生姓名:

***

专业班级:

计算**

指导教师:

职称:

讲师

起止日期:

2010.10.20~2010.10.31

 

******

软件系统设计任务书

专业:

计算机设计时间:

题目:

文本编译器

一、目的要求:

软件系统设计是计算机科学与技术专业实践教学的一个重要环节,其目的是巩固和综合应用所学的软件设计理论知识;培养学生设计应用软件、文献查阅、报告撰写等基本技能;培养分析、设计和解决实际问题的能力以及团队协作的精神,加强创新素质教育。

要求:

采用面向对象的软件开发方法或者结构化生命周期方法,遵循系统开发的主要步骤,进行需求分析、概要设计、详细设计、代码编写、系统调试、文档编写。

最后演示系统,提交设计说明书。

二、进度安排:

设计总共周。

具体安排如下:

选题,查资料,系统分析,代码编写;

软件系统调试修改,撰写说明书,答辩。

三、设计地点:

 

四、成绩考核:

指导教师:

年月日

目录

软件系统设计任务书I

第1章绪论1

1.1开发背景1

1.2国内外现状1

1.3目的和意义1

第2章相关技术3

2.1Java简介3

2.2JDK技术简介6

2.3MyEclipse技术简介7

第3章系统分析8

3.1可行性分析8

3.1.1技术可行性8

3.1.2经济可行性8

3.1.3操作可行性8

3.2需求分析8

3.2.1环境需求分析8

3.2.2功能需求分析9

第4章系统详细设计10

4.1类或包的加载10

4.2主类的设计10

4.3文件操作功能的实现11

第5章系统运行14

5.1运行用例14

5.2文件用例14

5.3编辑用例15

5.4帮助用例15

5.5打开用例16

5.6保存用例16

5.7关于用例17

结论18

致谢19

参考文献20

第1章绪论

1.1开发背景

随着计算机的普及与发展,人们的工作与生活中心逐渐转移到了计算机上。

计算机的出现给人类社会带来了第三次工业革命,计算机和计算机网络已经深入到了各行各业,各个领域,随着Internet的不断扩大和发展,电脑网络“把每一个国家、每一个城市甚至每一个家庭连接到一起”,形成了一条“信息高速路”,就像高速公路大大提高了车辆行驶的速度一样。

21世纪是个信息化的时代,现代计算机技术的发展,为各行各业的发展创造了一个全新的时代背景——人们的生活、工作等已经越来越离不开计算机科学的运用,而Internet的应用加速了这种趋势,人们越来越需要在互联网上交流各种信息和讨论各种问题,而作为人们工作和生活的必须品——文本编译器应运而生。

文本编译器几乎渗透到了我们生活的方方面面。

因此开发一个文本编译器则变得很有必要,而且作为新一代的大学生,并且作为一个计算机专业的学生,学习掌握文本编译器的编程过程和Java的相关知识很有必要,在这个过程中即跟随了科技发展的前沿,又丰富了我们的学习生活。

1.2国内外现状

自从世界上第一台计算机发展出来开始,国外的计算机技术一直领先于国内。

即使是文本编译器这种简易的工具也反应出了这种差距。

在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。

文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。

第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。

它包含了一些非常短的命令(为了减少打字量)。

其中一个命令能够把文件的指定部分通过打字机打印出来。

编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。

随后,内容字符串又被扩展成正则表达式。

如果想看到文件的变化,你需要把它打印出来。

相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。

如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。

当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。

如今文本编译器已经成为了每一个电脑工作者所必不可少的工具,在国外文本编译器这种简单的工具几乎人人都会用,大部分人都可以自主开发编写自己的文本编译器,然而在国内大部分人还只停留在简单的应用上面。

从这些小程序开始锻炼自己的能力为以后国家计算机技术的发展贡献出自己的一份力量。

1.3目的和意义

《Java程序设计》课程设计是实践性教学环节之一,是《Java程序设计》课程的辅助教学课程。

该课程设计要求学生综合运用在《Java程序设计》课程中学到的知识与实际编程相结合,独立完成一项较为完整、并具有一定实际功能的课程设计任务,同时加深学生对Java编程技术的理解和掌握,培养实际的应用程序开发能力。

在课程设计过程中,使学生养成良好的程序设计风格并掌握Java应用程序的设计开发过程和编程方法、测试方法。

本次设计的意义在于充分利用所学知识,通过老师的指导和查阅相关文献书籍等方式,通过独立自主的能力来实现本次研究的成功。

并且使自身养成良好的程序设计风格,掌握初步的Java程序设计开发过程和编程方法、测试方法。

相信,在老师的指导和自身的努力下,本次研究将会取得圆满成功。

 

第2章相关技术

2.1Java简介

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。

Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。

它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。

由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。

就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。

Java编程语言的风格十分接近C、C++语言。

Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。

它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。

不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。

但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。

与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。

全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。

“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。

这与微软公司所倡导的注重精英和封闭式的模式完全不同。

Sun公司对Java编程语言的解释是:

Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java平台是基于Java语言的平台。

这样的平台非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。

Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。

具体来说,它具有如下特性:

  

简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。

  

下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。

  

(1)面向对象  

面向对象其实是现实世界模型的自然延伸。

现实世界中任何实体都可以看作是对象。

对象之间通过消息相互作用。

另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。

如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。

用公式表示,过程式编程语言为:

程序=算法+数据;面向对象编程语言为:

程序=对象+消息。

  

所有面向对象编程语言都支持三个概念:

封装、多态性和继承,Java也不例外。

现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。

所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。

可以说,对象是支持封装的手段,是封装的基本单位。

Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。

而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。

  

多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。

举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。

不管存储的是何种数据,堆栈的算法实现是一样的。

针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。

运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。

  继承是指一个对象直接使用另一对象的属性和方法。

事实上,我们遇到的很多实体都有继承的含义。

例如,若把汽车看成一个实体,它可以分成多个子实体,如:

卡车、公共汽车等。

这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。

Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。

与另外一些面向对象编程语言不同,Java只支持单一继承。

  

(2)平台无关性  

Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。

平台无关有两种:

源代码级和目标代码级。

C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。

  

Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。

JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。

但JVM通常是在软件上而不是在硬件上实现。

(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。

  

另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。

)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。

Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。

任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。

另外,Java采用的是基于IEEE标准的数据类型。

通过JVM保证数据类型的一致性,也确保了Java的平台无关性。

  

Java的平台无关性具有深远意义。

首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。

其次Java的平台无关性正好迎合了“网络计算机”思想。

如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。

目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。

(3)分布式  

分布式包括数据分布和操作分布。

数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。

  

Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。

对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。

对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。

  

Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。

  

(4)可靠性和安全性  

Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。

Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。

首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。

  

由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。

如果没有安全保证,用户从网络下载程序执行就非常危险。

Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。

当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。

最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。

  

上述几种机制结合起来,使得Java成为安全的编程语言。

  

(5)多线程  

线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。

  

C和C++采用单线程体系结构,而Java却提供了多线程支持。

  

Java在两方面支持多线程。

一方面,Java环境本身就是多线程的。

若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。

Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。

Java的线程还包括一组同步原语。

这些原语负责对线程实行并发控制。

利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。

必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。

例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

2.2JDK技术简介

JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。

自从Java推出以来,JDK已经成为使用最广泛的JavaSDK(Softwaredevelopmentkit)。

JDK是整个Java的核心,包括了Jav运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。

不论什么Java应用服务器实质都是内置了某个版本的JDK。

最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。

其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。

而专门运行在x86平台的JrocKet在服务端运行效率也要比SunJDK好很多。

但不管怎么说,我们还是需要先把SunJDK掌握好。

从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。

从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。

JDK包含的基本组件包括:

javac–编译器,将源程序转成字节码

jar–打包工具,将相关的类文件打包成一个文件

javadoc–文档生成器,从源码注释中提取文档

jdb–debugger,查错工具

JDK中还包括完整的JRE(JavaRuntimeEnvironment,Java运行环境),也被称为privateruntime。

包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。

JDK中还包括各种例子程序,用以展示JavaAPI中的各部分。

从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。

JDK的另一个显著特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。

但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。

JDK一般有三种版本:

SE(J2SE),standardedition,标准版,是我们通常用的一个版本

EE(J2EE),enterpsiseedtion,企业版,使用这种JDK开发J2EE应用程序,

ME(J2ME),microedtion,主要用于移动设备、嵌入式设备上的java应用程序

Java开发工具(JDK)是许多Java专家最初使用的开发环境。

尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。

  JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。

其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。

JavaAPI包括一些重要的语言结构以及基本图形,网络和文件I/O。

一般来说,JavaAPI的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。

  作为JDK实用程序,工具库中有七种主要程序。

Javac:

Java编译器,将Java源代码转换成字节码。

  Java:

Java解释器,直接从类文件执行Java应用程序字节代码。

  appletviewer:

小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

  Javadoc:

根据Java源码及说明语句生成HTML文档。

  Jdb:

Java调试器,可以逐行执行程序,设置断点和检查变量。

  Javah:

产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

  Javap:

Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

2.3MyEclipse技术简介

MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。

它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。

MyEclipse是基于Eclipse开发的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。

据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进行Java、JavaEE开发,80%以上的全球财富100强企业均是MyEclipse的用户。

MyEclipse提供了对UML、Ajax、Web、WebServices、J2EE、JSP、XML、Struts、JSF、JavaPersistence、EJB、扩展数据库以及各种应用服务器的集成支持。

MyEclipse也全面支持各种主流的第三方框架,让你能够快速高效地进行开发工作。

此外,MyEclipse还全面支持各种基于Eclipse平台的插件,允许你自由定制或扩展个性化功能。

MyEclipse全面支持Eclipse开源平台的所有功能特性,如果你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包括熟悉的Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse更加快速、简单。

在结构上,MyEclipse的特征可以被分为7类:

(1)JavaEE模型

(2)WEB开发工具

(3)EJB开发工具

(4)应用程序服务器的连接器

(5)JavaEE项目部署服务

(6)数据库服务

(7)MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。

MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。

MyEclipse6.0以后版本安装时不需安装Eclipse。

第3章系统分析

3.1可行性分析

可行性分析是通过对项目的主要内容和配置条件,从技术,经济,操作等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务,经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。

可行性分析应具有预见性,公正性,可靠性,科学性的特点。

文本编译器基本设计思路是把系统按照实现模块进行分解,利用Java进行编程。

3.1.1技术可行性

该系统使用Java语言编写,MyEclipse开发。

由于Java语言使用灵活,功能强大,目前市场上相当多的程序和软件都是使用Java语言和MyEclipse来编写开发的,Java语言和MyEclipse技术已经相当成熟,这充分说明了该系统在技术方面的可行性。

3.1.2经济可行性

该系统使用的开发工具完全免费,在其开发过程中几乎不需要任何经费,而且以其简单和功能齐全的特点,预计该系统必将受到广大使用者的欢迎,这充分说明了该系统在经济方面的可行性。

3.1.3操作可行性

该系统设计的界面简单明了,使用者完全可以根据界面上按钮的信息完成所需的操作,功能全面,操作简单。

这充分说明了该系统在操作方面的可行性。

3.2需求分析

在科学技术飞速发展的今天,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1