数据结构类C语言的研究与实现

来源 :安徽大学 | 被引量 : 0次 | 上传用户:wobuwanlebuxingma
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本课题针对于“数据结构”的教学现状,规范了类C语言的定义,并在此基础上设计实现了将类C语言源算法翻译成可执行的C语言目标程序的编译器——LC/C编译器。定义的类C语言,其实是一个C语言的子集,但是拥有自身的词法和语法规则。定义的类C语言,包括了一个高级语言所必须的如函数、指针、数组和数据类型等基本部分。定义类C语言的目标是语言功能简单、结构清晰,能够方便的应用到“数据结构”课程的教学中。在LC/C编译器的设计中,包括了词法分析、语法分析、语义分析、中间代码生成以及目标代码生成等编译器设计所必要的部分。  本文实现的是一个教学语言及其编译系统。现在几乎每本“数据结构”课程的教材都采用了类C语言作为描述语言,但是现在的类C语言并没有一种统一的定义。同时,到目前为止,还没有一种编译器可以直接编译类C语言写出的算法或程序。本文中的解决方法是将类C源算法通过LC/C编译系统,编译得到可在VC++平台上执行的C语言源程序,通过运行C语言源程序得到类C源算法的实验结果。本文的主要工作是定义了一种规范的类C语言,并设计实现LC/C编译器。  本文的主要内容分为两个部分:第一部分是对类C语言进行定义,另一部分是LC/C编译器的设计与实现。在类C语言的定义中,选取了一个C语言的核心子集,并对其做了若干的扩充,以增强类C语言的描述功能。针对于LC/C编译器的设计,编译器的实现目标是准确率高,易于用于我们的“数据结构”课程的教学中。同时,由于编译器还拥有较大的扩充空间,为了方便进一步的扩充,编译器代码程序规模比较适度,没有非常复杂的算法,编译器的各个环节清晰,并在程序的关键部分加入了必要的注释。  本文详细阐述了编译器的组织形式以及设计方法,并将编译器分为三遍扫描来完成。第一遍扫描时对我们的类C算法进行词法分析,将词法分析得到的输出作为语法和语义检查的输入。第二遍扫描是语法、语义扫描。语法、语义扫描完成后,将处理输出的符号作为代码生成部分的输入。第三遍扫描首先是扫描输入,将单词符号用四元组的形式表示出来,形成中间代码,由代码生成函数进行处理,输入到各个代码区,最后将代码区的代码汇总,得到目标代码——C语言代码,同时完成整个编译过程。  设计出来的LC/C编译器具有通用性好,准确率高,简单易学,使用方便等优点,可以广泛的应用于我们的“数据结构”课程的教学中,有助于学生的学习效率的提高。
其他文献
随着网络技术的发展和万维网上信息资源的激增,万维网成为人们获取知识的主要来源,信息检索越来越受到人们的关注。传统的信息检索技术一般集中在关键字匹配方面,它不能对万
随着Web规模日益扩大,网络已经成为一个巨大的信息资源库。网络中包含了各种类型的对象信息,其中很大一部分信息被“深藏”于各类在线数据库中,用户只能通过向接口提交查询来
Web应用的出现与盛行已将软件产业悄然带入规模化、复杂化的时代,提高其检测方法的自动化程度是当务之急。因此,我们采用基于模型的测试方法,以Web应用模型作为测试用例的来源。
近年来,电网中大量的传感以及检测设备产生规模巨大的数据,其中包括电气设备图像以及摄像机与无人机拍摄的视频。因此急需一个自动分类器对变压器、输变线路、铁塔等其他电气设
信息安全的核心是密码技术,其数学分析代价通常能够决定密码算法的安全性。然而当密码技术应用在实际领域中时,通常使用密码芯片来实现密码算法,所以密码系统的安全性不仅仅与密
计算机视觉的基本问题是利用2D投影图像来重构3D物体的可视部分,其研究成果可直接应用于机器人、医学、精密工业测量、遥感、虚拟现实等众多领域,无论在军事及民用领域都具有
组合仿真是根据特定的仿真需求重用已有仿真组件的技术,在节约仿真系统开发时间,提高系统开发效率,降低系统开发复杂度方面作用明显。目前,研究学者已经提出一些组合仿真相关的理
近年来,随着P2P应用的不断扩展,P2P网络技术成为业界关注的一个热点。国内各高校都在积极研究如何将P2P网络技术应用到网络教育上,即充分应用P2P网络的分布性、交互性、扩展性、
虚拟仪器(Virtual Instruments, VI)充分利用现有计算机资源,配以独特设计的软硬件,实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能。“软件即仪器”的思想实现
秘密共享是应用密码学领域的研究热点,它改变了传统的单人加密/解密、签名和认证模式,能够分散责任,防止权威欺骗,提高系统的安全性,对重要信息的安全保存、传输及合法利用具