基于AnyviewC的CoreABC代码生成器设计

来源 :广东工业大学 | 被引量 : 3次 | 上传用户:hisandy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在教学实验中直接使用CoreABC指令集系统进行代码编程,对于初步接触数字电路的学生而言是有一定难度的,从而造成难以完成实验目标以及理解CoreABC微控制系统。如果用标准C语言程序代替CoreABC指令程序,则可降低程序编写的难度,从而相应的提高了教学及开发效率。CoreABC代码生成器是在AnyviewC内嵌的C语言编译器的基础上,结合CoreABC指令集系统进行设计实现,目标是将标准C语言代码程序转换为CoreABC指令序列代码,使用户编写易懂的C语言程序,直接得到目标指令序列。代码生成器的设计与实现包括两大部分:生成器前端和后端。前端通常处理词法分析、语法分析和语法制导翻译,最终得到前端处理结果集,后端则通过处理前端结果集中的每一个元素,最终得到目标指令序列代码。本课题的关键部分在于生成器前端设计与实现的正确性,该部分主要体现在对AnyviewC内嵌C语言编译器的扩展与修改,包括C语言库函数的扩展、词法分析扩展、语法分析以及制导翻译扩展设计等,还牵涉到CoreABC寄存器以及内存地址的设计。CoreABC中与硬件操作相关的,C语言无法直接实现同等功能,针对这些特殊指令,需借助扩展为库函数的方式实现相同功能;语法分析和制导翻译过程足本课题设计的关键部分,针对C语言的每一个操作符、控制流结构、函数调用等都要重新设计实现,最终使其中间代码转换为能够得到CoreABC指令序列的前端结果集。CoreABC代码生成器的后端部分是在前端处理结果的基础上进行的,依据设计的CoreABC指令集对应的机器码以及指令所需操作数的个数等,处理前段结果集,得到最终的CoreABC目标指令序列。本文阐述了CoreABC代码生成器的设计与实现,重点体现在设计部分,通过分析与研究标准C语言和CoreABC指令系统,设计代码生成器的前端和后端两大部分,实现并进行相关实验验证分析。最后通过一些例子进行试验验证该设计方案的可行性,并通过相关分析得出其具有一定的可推广性。
其他文献
在通信系统中,流密码是保证通信安全最重要的一种手段,大量应用于军事、政治和电子商务中。其安全性得到研究学者的大量关注,特别是衡量密钥流安全性强度的度量。   线性复杂
伴随着互联网产业的迅猛发展,大数据的存储和处理问题受到越来越多的关注。云计算、云存储也就成了网络新时代的一个重要概念。非关系型数据库便是云存储的解决方案。HBase是A
随着移动互联网的快速发展,Android系统占据了移动平台的大部分市场份额,同时Android应用发布数量也呈爆发式增长。伴随而来的是Android恶意应用数量的激增,恶意扣费、隐私窃取
组播技术是为了克服传统单播网络中大量数据在同一时间被重复传输所带来的网络资源浪费问题,但是由于组播的特殊性,目前商用中的组播计费机制依旧沿用单播的计费机制,并未完全发
随着云计算的人量应用,各大云平台将存储、计算资源集合在一起,按需为各种应用系统提供高性价比的服务。为了确保云环境中的资源得到充分利用,必须使用负载均衡技术。现有的负载
随着网络技术的不断发展,特别是我国信息化建设的不断普及,电子政务的应用日益广泛。电子政务是政府部门应用现代信息通信技术,将管理和服务两项职能通过网络技术进行集成,向
随着互联网的发展,社交网络发展迅速,尤其是移动社交网络随着用户数目的增加而备受人们关注。然而,当前的移动社交网络中还存在着一些不足。现在的移动社交网络只是支持好友之间
支持向量机(SVM)具有理论基础完备、所需训练样本数目少、泛化能力强等优点,已经在文本分类、人脸图像识别、手写数字识别、语音识别、生物信息学等模式识别领域中获得广泛应
网络图中的motif是一种连通的导出子图,并且满足在原图中出现的次数比它在随机图中出现的次数多很多。这种性质可以解释成这种子图在原图中扮演了比在任意的随机图中更加重要
随着多媒体技术的迅速发展以及互联网的普及,数字图像广泛应用于日常生活和工作中,与此同时图像编辑处理工具Photoshop、ACDSee等的迅速发展,使得编辑图像内容变得越来越简单。