欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    编译原理课程设计--C语言编译器的实现

    • 资源ID:1410977       资源大小:322KB        全文页数:33页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    编译原理课程设计--C语言编译器的实现

    1、 编译原理课程设计名: 编译代生编译原理课程设计名: 编译代生 成器设计成器设计 专业专业 计算机科学与技术计算机科学与技术 完成日期:完成日期:2013.6.22013.6.2 一、课程设计的目的一、课程设计的目的 编译原理课程兼有很强的理论性和实践性, 是计算机专业的一门非常重要的专业基础课 程,它在系统软件中占有十分重要的地位,是计算机专业学生的一门主修课。为了让学生能 够更好地掌握编译原理的基本理论和编译程序构造的基本方法和技巧, 融会贯通本课程所学 专业理论知识,提高他们的软件设计能力,特设定该课程的课程设计,通过设计一个简单的 PASCAL 语言(EL 语言)的编译程序,提高学生设

    2、计程序的能力,加深对编译理论知识的理 解与应用。 二、课程设计的要求二、课程设计的要求 1、 明确课程设计任务,复习编译理论知识,查阅复印相关的编译资料。 2、 按要求完成课程设计内容,课程设计报告要求文字和图表工整、思路清晰、算法正 确。 3、 写出完整的算法框架。 4、 编写完整的编译程序。 三、课程设计的内容三、课程设计的内容 课程设计是一项综合性实践环节, 是对平时实验的一个补充, 课程设计内容包括课程的 主要理论知识, 但由于编译的知识量较复杂而且综合性较强, 因而对一个完整的编译程序不 适合平时实验。 通过课程设计可以达到综合设计编译程序的目的。 本课程的课程设计要求学 生编写一个

    3、完整的编译程序, 包括词法分析器、 语法分析器以及实现对简单程序设计语言中 的逻辑运算表达式、算术运算表达式、赋值语句、IF 语句、While 语句以及 dowhile 语句 进行编译,并生成中间代码和直接生汇编指令的代码生成器。 四、总体设计方案及详细设计四、总体设计方案及详细设计 总体设计方案: 1.总体模块 主程序 词法分析 程序 语法分析 程序 中 间 代 码 生成程序 2. 表 2.1 各种单词符号对应的种别码 单词符号 种别码 单词符号 种别码 bgin 1 : 17 If 2 := 18 Then 3 = 24 dight dight* 11 = 25 + 13 ; 26 14

    4、( 27 * 15 ) 28 / 16 # 0 详细设计:详细设计: 4.14.1 界面导入设计界面导入设计 (1)一共三个选项: choice 1-cifafenxi choice 2-yufafenxi choice 3-zhongjiandaima (2)界面演示 图一 图二 图三 4.24.2 词法分析程序词法分析程序 (1)流程图设计 (2)(2)具体功能的具体设计具体功能的具体设计 1、cifafenxi( ) 首先设置 progn来接收输入的语句,以#来结束; 调用扫描子程序 scaner1( ),每一次得到一个类型码; 用 switch 判别相应输出; 直到 syn1=0 为止

    5、。 2、扫描子程序 scaner1( )-扫描输入的语句 首先设置首先设置 3 个变量个变量: token1 用来存放构成单词符号的字符串; sum1 用来存放整型单词; syn1 用来存放单词符号的类型码。 有关有关 scaner1()中关键点解析:中关键点解析: while(ch= )|(ch=n) ch=progp+; ;忽略空格 if(ch=a)|(ch=A) while(ch=a)|(ch=A)|(ch=0) 置初值 调用扫描子程序 输出单词二元组 输入串结束 结束 否 是 ch=progp+; ; 判别标识符 for(n=0;n=0) /扫描 void lrparser(); vo

    6、id staBlock(int *nChain); /语句块 void staString(int *nChain); /语句串 void sta(int *nChain); /语句 void fuzhi(); /赋值语句 void tiaojian(int *nChain); /条件语句 void xunhuan(); /循环语句 char* E(); /Expresiion 表达式 char* T(); /Term项 char* F(); /Factor 因子 char *newTemp(); /自动生成临时变量 void backpatch(int p,int t); /回填 int merge(int p1,i


    注意事项

    本文(编译原理课程设计--C语言编译器的实现)为本站会员(课***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583