设计并实现计算机器类c,本科毕业论文题目一个类C解析器的设计与实现.doc

普通本科毕业论文题目:一个类C解析器的设计与实现

摘要编译程序是现代计算机系统的基本组成部分,从功能上看,一个编译程序是一个语言翻译程序,它把一种语言称作源语言书写的程序翻译成另一种语言称作目标语言书写的等价的程序.

本系统的目标是应用在大学阶段学习的理论知识,进行一个简单的类C解析器的设计与实现并尽可能地做一定的改进.本文介绍了语法分析器、中间语言、语义翻译器三部分的实现过程,其中语法分析器中的仿YACC程序并没有直接生成分析程序,而是生成LALR分析表,这样做的好处是任何语言都可以用这张分析表,为了提高仿YACC程序的速度,采用了造核算法和SPONSOR算法.在语义翻译器中解决了在C语言编译器中全局变量名不能与自定义函数名重名和指针变量指向多维数组不能正常访问的问题.

【关键词】 C语言表达式;LALR分析表;解释器

The Design and implementation of similar C language

Ou yang tian

Abstract:

Compiling program is one basic part of the modern computer system. From the functional perspective, a compiling program is a language translation program which can translate a program written by a language called source language into another equivalent program written by a language called objective language.

The objective of this system is the design and implementation of a simple expression compiler of the C language and does some improvements of functions as far as possible by using theory knowledge learned during the college. This paper mainly introduces the implemental process of grammar analyzer, intermediate language and semantic translator, and the YACC program of the grammar analyzer does not generate the analytical program directly but LALR analytical table. In this way, every language can use this table. In order to enhance the speed of the YACC, we use the accounting method and algorithm SPONSOR. In the part of semantic translator, we have resolved the problem that the name of global variables and user defining variables can't be the same and pointer variables which point to multi-dimensional array do not access normally in the compiler of the C language.

Keywords:

C language expression; LALR analysis table; Interpreter

目录1引言 1

1.1 开发模型 1

1.2 实现方案 2

2 语法分析器 3

2.1 LALR表生成工具 4

2.1.1 C语言文法 5

2.1.2 仿YACC程序 8

2.2 语法分析 13

3 中间语言 16

4 语义翻译器 17

4.1 数据结构 18

4.1.1 符号表 18

4.1.2 系统栈 18

4.2 表达式翻译 18

4.2.1 隐式类型转换 19

4.2.2 强制类型转换 20

4.3 控制结构、函数与指针的实现 21

4.3.1 循环语句与判断语句翻译 21

4.3.2 自定义函数翻译 21

4.3.3 系统函数的封装 22

4.3.4 指针实现 22

5 总结 23

参考文献 24

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
河南科技学院本科毕业论文设计)开题报告 题目名称:基于socket的传输系统的设计实现 学生姓名 余飞龙 专业 计算机科学与技术 学号 0912210212 指导教师姓名  所学专业 计算机软件与理论  职称 教授 助教  完成期限 2013年3月19日至2012年3月25日 一、选题的目的意义   随着网络通信技术的发展与用户需求日益多样化,现代网络正处在变革与发展之中,本课题的主要目的开发出一个简单实用、并具有移植性、适合传输大型文件的文件传输系统。基于点对点的文件传输系统能够让家庭网络以及各个企业等局域网对内部资料有一个快捷,准确,安全的共享。特别是对如今较大系统研发的模块分工合作得到了绝对保密性,从而使各项工作有计划、更科学的进行及顺利完成,使企业的办事效率得到显著提高。文件传输系统主要功能是自动获取局域网内用户的主机名,IP地址以及工作组名字,最终以C/S模式通过TCP/IP协议实现点到点文件传输功能。本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又引导我们进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要的意义。     二、国内外研究现状   目前,国内外企业对文件传输系实践上都还不够完善。文件传输系统由于比较复杂,可变因素较多,安全性低,因此发展还不成熟。但是随着科学技术的发展,各为中心的资源共享系统也即将进入高速发展期。在国内,随着企业资源管理的规范化和规模的不断扩大,企业的计算机资源管理将不仅仅停留在依靠硬件或者Internet网络获取,而且将会向着安全的内部网络化资源管理方式迈进。 二、主要研究内容   论文主要针对对象是大型文件,设计出一种方便使用的、高性能的、并满足其基本通信需求的点对点文件传输系统。客户端与服务端可以在多种硬件平台上运行,具有较好好的兼容性能。目前我们将通过在TCP/IP协议之上建立一个功能简单的文件传输系统, 日后程序功能将可以继续扩展, 逐步发展成一个功能比较完整的大型文件传输系统,例如客户端连接发展成多对多连接,服务增加为客户深一步服务(如发布一些消息)的功能等。     三、毕业论文设计)的研究方法或技术路线   本设计在Windows XP操作系统下,以中文版MyEclipse for Spring为开发工具,以C/S为系统功能结构,基于点对点的TCP/IP协议理论,通过Socket套节字连接客户端与服务实现文件及文件夹传输。彻底避免了文件交换过程与外部网络的接触,实现快速的文件资源共享。并能够确保内部文件的机密性,能够在很大程度上有效地提高工作效率。     四、主要参考文献与资料 Douglas E. Comer. TCP/IP 网络互连[M].北京:人民邮电出版社,2002. Subrahmanyam Allamaraju. Java Server Programming: Principles and Technologies[M].北京: 机械工业出版社, 2010, 1-23. Bruce Eckel. JAVA编程思想[M].北京:机械工程出版社, 2003.12-16.吕凤翥,马皓. Java语言程序设计[J].北京: 清华大学出版社.2008.403-409. 肖新峰,宋强,王立新. TCP/IP协议与网络管理[J]. 背景: 清华大学出版社,2009. 朱和平.即时通信研究综述[J]. 现代计算机,2006,(12). 刘培鹤,牛晓蕾,杜鹏,何文才,张媛媛.企业即时通信系统安全性分析与设计[J].网络安全技术与应用,2007,(2) 张效祥.计算机科学技术百科全书.北京:清华大学出版社,1998. 冯博,应群,面向对象的Java网络编程[M].北京:清华大学出版社, 2011.20-33. 蒋东兴.Windows Sockets 网络程序设计大全[M].北京:清华大学出版社,2009. 郭广军,胡玉平,戴经国. 基于Java多线程的并行计算技术研究及应用[J]. 华中师范大学学报(自然科学版) , 2005,(02) 赵智. JAVA语言多线程机制及其应用[J]. 南宁师范高等专科学校学报 , 2007,(03) . 王志和,王新辉. 基于Java的多线程实现技术[J]. 湖南人文科技学院学报 , 2005,(05) . 阳小兰. Java语言中多线程技术的研究与实现[J]. 软件导刊 , 2007,(13) . ] 戚尚菊. Java语言中本地方法的设计实现[J]福建电脑 , 2004,(05) . 指导教师审批意见                            签名: 年 月 日

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值