《编译原理上机实习》指导书

一、上机实习目的

理解编译程序的构造原理,掌握编译程序的构造方法与技术。通过实习,使学生既加深对

编译原理基础理论的理解,又提高动手能力,特别是提高软件设计能力。

二、上机实习要求

在理解编译原理基本思想的基础上,选择一个自己熟悉的程序设计语言,完成编译程序的

设计和实现过程。

编译程序的设计可以采用自顶向下和自底向上两种不同的方法。由于许多高级语言(如

PASCAL,C)中的语法成分都是递归定义的,所以 本实验要求学生采用递归下降分析技术 ,这是

一种自顶向下的的编译方法, 其基本思想是对语言的每个 (或若干个)语法成分编制一个处理子

程序, 从处理 这个语法成分的子程序开始, 在分析过程中调用一系列过程或函数, 对源程

序进行语法和语义分析,直到整个源程序处理完毕为止。

本上机实习是为 C 语言 ( 子集 ) 设计一个编译程序,完成词法分析、语法分析、语义分析等

功能,并生成某种机器上的目标代码 ( 汇编语言 ) 或中间代码 ( 四元式 ) 。

三 、上机实习步骤

1.阅读《上机实习指导书》 。

2 .根据设计要求写算法, 画程序框图

3 .根据框图编写编译程序

4 .输入编译程序并上机调试

5 .撰写上机实习报告

四、上机实习内容

1、题目 :C语言小子集编译程序的实现

2 、C 语言小子集的文法规则:

:: =main (){< 分程序 >}

< 分程序 >::=< 变量说明部分 >;

< 变量说明部分 >::=< 变量说明 >

::=int

::=< 标识符表 >,

::=< 标识符 >

< 标识符 >::=< 字母 >

::=< 标识符 >

::=< 标识符 >

< 语句部分 >::=< 语句部分 >; |< 语句 >

:: =|< 条件语句 >|< 循环语句 >|

::=< 标识符 >=

< 条件 >::=< 表达式 >

< 表达式 >::=< 项 >|< 表达式 >

::=< 因子 >|< 项 >

:: =|< 常量 >|(< 表达式 >)

:: =

::=< 数字序列 >

::=< 数字序列 >

::=< 数字 >

:: =+|-

::=*| /

:: =|!=|>=|<=|==

::={< 语句部分 >}

:: =|< 复合语句 >

::=if ()else< 语句 1>

::=while ()do

::=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z

::=0|1|2|3|4|5|6|7|8|9

3、实现功能 :

(1)词法分析

扫描源程序,根据词法规则,识别单词,填写相应的表。

(2)语法分析

对源程序作语法分析,确定是否属于 C 语言小子集,同时揭示出程序的内在结

构。

(3)语法错误检查

编译原理上机实习c语言小子集编译程序的实现报告,编译原理上机实习指导书(2015-11修改).pdf...相关推荐

  1. 编译原理上机实习c语言小子集编译程序的实现报告,合肥工业大学编译原理实验报告(完整代码版)...

    <合肥工业大学编译原理实验报告(完整代码版)>由会员分享,可在线阅读,更多相关<合肥工业大学编译原理实验报告(完整代码版)(58页珍藏版)>请在人人文库网上搜索. 1.计算机与 ...

  2. c语言小子集,C语言小子集的词法分析程序

    <C语言小子集的词法分析程序>由会员分享,可在线阅读,更多相关<C语言小子集的词法分析程序(10页珍藏版)>请在人人文库网上搜索. 1.沈阳航空航天大学上 机 实 验 报 告实 ...

  3. 微型计算机原理实验指导书,微机原理实验实验指导书2015.pdf

    微机原理实验实验指导书2015 微型计算机原理与应用 实验指导书 上 海 大 学 通 信 学 院 2015 年 3 月 实验一 8051 单片机简单编程与调试 一.实验目的 通过简单小程序的输入和调试 ...

  4. c语言设计匀速直线运动,C语言课程设计指导书2015版(试用版)201506.doc

    C语言课程设计指导书2015版(试用版)201506精选 C语言课程设计 指导书 信息技术教学与实验中心 2015-04 目 录 第1章 C语言课程设计基本要求-------------- 1 §1. ...

  5. c语言函数与编译预处理教学视频,C语言课程第6章 函数及编译预处理.ppt

    C语言课程第6章 函数及编译预处理 6.1模块化程序设计与函数 在设计较复杂的程序时,我们一般采用的方法是:把问题分成几个部分,每部分又可分成更细的若干小部分,逐步细化,直至分解成很容易求解的小问题. ...

  6. c语言程序设计书实验电子版,C语言程序设计实验指导书(学生用书)-修订版.pdf

    C语言程序设计 实验指导书 (试用版) 华中科技大学计算机学院 2004年3月 编写说明 C语言程序设计的上机实验是进一步深刻了解C语言的语法.语义,掌握用 C语言进行初步程序设计所需要的方法和技能的 ...

  7. C语言中单引号 39 97 39,C語言程序设计实验指导书.doc

    C語言程序设计实验指导书 C语言程序设计 实验指导书 ? ? ? ? ? ? ? 计算机学院计算机科学教研室 武汉科技大学 2005年 ? ? 实验一 Turbo C编译环境的使用 [实验目的] 1. ...

  8. c语言 运行经过八个翻译阶段,GitHub - BUAA-SE-Compiling/miniplc0-handbook: miniplc0 指导书...

    miniplc0 实验指导书 1. 概述 本指导书为 miniplc0 指导书. 由于本指导书还只是一个 beta 版本,因此很可能存在一些错误,如果你发现本书中有以下问题 逻辑性/知识性错误 表意模 ...

  9. 三极管工作原理_「硬见小百科」半导体三极管的工作原理

    PNP型半导体三极管和NPN型半导体三极管的基本工作原理完全一样,下面以NPN型半导体三极管为例来说明其内部的电流传输过程,进而介绍它的工作原理.半导体三极管常用的连接电路如图15-3(a)所示.半导 ...

最新文章

  1. Python持续点火,跟进还是观望?
  2. 手把手教你写移动端瀑布流控件布局篇
  3. 在函数调用中,星号运算符是什么意思? [重复]
  4. 我的WCF之旅(12):使用MSMQ进行Reliable Messaging(转载)
  5. 【收藏】Zeppelin与Linkis、Scriptis的实践对比
  6. 记录程序人生2020.8.11
  7. 包r语言_R语言入门之寻找你的R包
  8. Ubuntu 安装和使用 jupyter 出现的问题总结
  9. Tomcat 项目代码上线步骤详解
  10. 【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(6)
  11. 【Flink】Flink 写入 AnalyticDB MySQL
  12. docker执行容器内的shell_为什么不建议把数据库部署在docker容器内?
  13. 微信公众平台开发教程(二) 基本原理及消息接口
  14. 佳能Canon PIXMA MG3020 打印机驱动
  15. jQuery源码解析(30)
  16. 2015 年度新增开源软件排名 TOP100
  17. 解析错误:解析软件包时出现问题
  18. 什么样的耳机戴着舒服些、最好用的的几款骨传导蓝牙耳机推荐
  19. 网站被攻击了怎么处理
  20. 从DLL生成LIB文件

热门文章

  1. HTML用乘法函数,Excel乘法函数的使用方法和详细步骤
  2. 如何在WordPress中自定义PHP页面并操作数据库?
  3. 使用JNA,让java调用原生代码
  4. 转发 DDoS攻防战 (一) : 概述
  5. web进修之—Hibernate 继承映射(5)
  6. linux之pid文件
  7. 大数据分析,在中国,找个身高1米7年入20万的老公,到底有多难?
  8. Java8的Optional是不是鸡肋?
  9. 【腾讯三面】你能现场写一下LRU算法吗?
  10. 阿里云二面:你对限流了解多少?