- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小型跨平台类C语言的设计与实现
本文由jiechurensheng贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
2009年5月 第3期
南京晓庄学院学报
JOURNAL OF NANJING XIAOZHUANG UNIVERSITY
May.2009 No.3
小型跨平台类C语言的设计与实现
曲
波
(南京晓庄学院信息技术学院,江苏南京210017)
摘要:文章阐述了小型跨平台类C语言CC的设计与实现.CC语言类似于C语言的子集,语 法与C语言十分接近;目标代码采用RICS类型指令系统结构,使用栈式虚拟机解释执行;具有常 用的多种数据类型,具备跨平台功能,适于做编译系统课程的教学语言.CC语言稍加扩充后,可成 为实用的工程语言,适用于嵌入式系统和跨平台系统应用. 关键词:编译原理教学语言;类C语言;跨平台程序设计语言;RISC指令系统;栈式虚拟机
中图分类号.TP3ll 文献标识码:A 文章编号:1009—7902(2009)03—0078—04
0
引言
本过程,从而使学生对编译程序的实现建立起整体的 概念.cC语言的中间代码为自定义虚拟机的汇编代 码,然后由编译程序据此生成机器代码,由虚拟机解 释执行.机器语言采用RISC类型指令结构,极大简化 了编译程序和虚拟机结构的复杂性.虚拟机系统可在 不同操作系统平台下实现,从而可实现CC语言的平 台无关性,使CC语言成为跨平台语言. 笔者用c语言设计了CC语言编译程序及相应 虚拟机解释程序,使该语言不再是纸上谈兵,而成为 真正的教学语言.在该语言编译程序中,体现出编译 原理课程的基本内容,适于学生学习;在实现中不单 纯追求运行效率而使用过于复杂的算法;为便于学生 理解和进一步扩充,程序规模适度(近3000行);为便 于学生学习,在程序的关键部分加入注释. CC语言的数据类型包含字符型和整型,与PL/0 的无类型语言有了本质上的不同.同时,CC语言还有 指针类型,数组类型,具备了真正工程语言所需的基 本功能.在CC语言的基础上稍加改进,如增加浮点 型,增加函数库等,就可方便地将CC语言升级为真 正的跨平台工程语言,尤其适用于嵌入式系统开发.
1
编译原理课程是计算机专业重要的专业课程, 由于历史的原因,目前流行的教学语言是PL/O.该 语言相当于PASCAL语言的子集,使用与PASCAL 语言相似的语法.在当年的PASCAL时代,用 PASCAL语言实现PL/0编译程序,简单自然,相得 益彰. 但随着c语言逐渐取代PASCAL语言,成为系统 程序设计的主流语言,人们对PASCAL语言的语法结 构越来越生疏.而C语言的语法结构及程序设计思想 与PASCAL语言有较大区别,致使学生在学习编译原 理课程时,对与C语言语法格格不入的PL/0语言感 到很不适应.同时,用流行的C语言设计与C语言相 距甚远的过时语言,也难以体现C语言的真正魅 力,难以激起学生对C语言能力的信任. 笔者根据编译原理课程的需求,设计了一个简洁 实用的类C教学语言,命名为CC,意为简洁的C (Concise C).CC语言类似于C语言的一个子集,具 有清晰的词法和语法定义,具备一般高级编译语言的 必需部分(如函数,指针,数组,数据类型等),并且语 言功能简单,结构清晰,可读性强,语言规模适中.CC 语言编译程序采用一遍扫描结构,实现了词法分析, 语法分析,语义分析,汇编目标代码生成,机器代码生 成,符号表管理,机器代码解释执行等编译程序的基
收稿日期:2008—10—21
CC语言设计与实现
CC语言类似于c语言的子集,其词法规则及 语法规则与C语言极为相似.同时该语言的扩展性 也为学生提供了充分发挥才能的机会.
作者简介:曲波(1953一),男,辽宁大连人,南京晓庄学院信息技术学院教授
~78—
万方数据
1.1语言功能 CC语言具有清晰的词法,语法定义,具备一般 高级语言所需的基本部分,具备顺序,条件和重复 (循环)三种程序设计结构.除具备PL/O语言具有 的功能和特点,例如过程定义和调用,局部变量说明
取一个词法记号,就送入语法分析器进行分析. 1.2.2编译器语法分析 语法分析器是编译过程的核心部分,其主要任 务是识别各类语法成分,为语义分析和代码生成做 准备. 语法制导递归下降分析法【2川的构造方法简 单,程序结构和层次清晰明了,易于手工实现,可提 高学生学习的兴趣,降低学习编译原理课程的难 度.算符优先分析法是一种简单直观,广为使用的自 底向上分析法,适于分析表达式,易于手工实现.CC 编译器
文档评论(0)