电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

太原理工大学编译原理实验

13页
  • 卖家[上传人]:s9****2
  • 文档编号:499436951
  • 上传时间:2023-09-17
  • 文档格式:DOC
  • 文档大小:377KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、本科实验报告课程名称:编译原理实验项目:无符号数的词法分析程序(实验一)基本程序设计(实验二)实验地点:致远楼303 专业班级: 软件14XX学号:学生姓名:指导教师: 冯秀芳 2017年 6月27日一、实验目的和要求1 培养学生初步掌握编译原理实验的技能.2 验证所学理论、巩固所学知识并加深理解。3 对学生进行实验研究的基本训练。二、实验内容和原理实验一、 无符号数的词法分析程序(4学时)内容:掌握词法分析的基本思想,并用高级语言编写无符号数的词法分析程序.要求:从键盘上输入一串字符(包括字母、数字等),最后以“;”结束,编写程序识别出其中的无符号数。无符号数文法规则可定义如下: 无符号数无符号实数。数字串E比例因子无符号整数E 有符号整数+-无符号整数 无符号整数数字串 数字串数字 数字0 1 2 3。.。.。. 9 读无符号数的程序流程图见下图三 主要仪器设备PC机+Java语言编程环境四、实验结果与分析1。实验代码:package text1;import java.io.BufferedReader;import java。io。InputStreamReader;publi

      2、c class Text1 /* param args /public static void main(String args) throws Exception / TODO Auto-generated method stubint p = 0, w = 0, w1 = 0, j = 0, i = 0, d = 0, e = 1;double w2 = 0;String str;System.out.println(”请输入一串字符以;结束:);BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));str = buf。readLine();char m = new char100;for (i = 0; i str.length(); i+) mi = str。charAt(i);i = 0;while (i str。length()) if (mi 48 | mi 57) i+; else do d = mi 48;w = w 10 + d;j+;i+; while (mi = 48

      3、& mi = 48 & mi = 57) do d = mi - 48;p = p 10 + d;i+; while (mi = 48 & mi 1)w2 = w / (Math。pow(10.0, j - 1);System.out.println(实型数为: + w2 + ”10 + ” + (e (p j + 1)));j = 0;w2 = 0;w = 0;p = 0; elseSystem.out.println(您输入有误!); else if (mi = +) i+;if (mi = 48 & mi = 57) do d = mi 48;p = p * 10 + d;i+; while (mi = 48 mi = 48 & mi = 48 & mi = 57) do d = mi 48;w1 = w1 10 + d;/ j = j + 1;i+; while (mi = 48 mi = 48 & mi = 57) do d = mi - 48;p = p * 10 + d;i+; while (mi = 48 & mi = 57);if (j 1) w2 = w / (Ma

      4、th。pow(10.0, j 1);System.out。println(实型数为: + w2 + w1+ 10 + + (e * (p - j + 1)));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; else System.out.println(”实型数为: + w + . + w1+ ”*10 + + (e (p j + 1));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; elseSystem。out.println(”您输入有误!”); else if (mi = +) i+;if (mi = 48 & mi = 48 & mi = 57);if (j 1) w2 = w / (Math.pow(10.0, j - 1));System.out.println(”实型数为: + w2 + w1+ 10” + ” ” + (e (p + j - 1));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; else System。out。println(”实型数为:” + w + 。 + w1+ 10” + ” + (e

      5、* (p + j 1));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; elseSystem.out.println(”您输入有误!); else if (mi = 48 & mi = 57) do d = mi 48;p = p 10 + d;i+; while (mi = 48 & mi = 57);if (j 1) w2 = w / (Math。pow(10。0, j - 1);System.out.println(”实型数为: + w2 + w1+ *10 + ” + (e * (p + j - 1)));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; else System。out.println(”实型数为: + w + . + w1+ ”10 + ” + (e (p + j 1));w = 0;w1 = 0;j = 0;w2 = 0;p = 0; elseSystem.out.println(您输入有误!”); elseSystem。out。println(您输入有误!);2.实验结果:一、实验目的和要求1 培养学生初步掌握编译原理实验的技能。2 验证所学理论、巩固所学知识并加深理解。3 对学生进行实验研究的基本训练。二、实验内容和原理实验二、 逆波兰式生成程序 内容:掌握语法分析的基本思想,并用高级语言编写逆波兰式生成程序(4学时) 要求:利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式(中缀表达式)转化成逆波兰式。逆波兰表达式的生成过程涉及到运算符的优先级,下表中列出几个常用运算符的优先关系。如表所示的优先关系矩阵表示了+,-,,/,(,)等七种运算符之间的相互优先关系。“、”三种符号分别代表“大于、“小于”、“相等”三种优先关系。左边的“”与右边的“(”之间没有优先关系存在,所以表中为空白.逆波兰表达式生成算法的关键在于比较当前运算符与栈顶运算符的优先关系,若当前运算符的优先级高于栈顶运算符,则当前运算符入栈,若当前运算符的优先级低于栈顶运算符,则栈顶运算符退栈。下面给出了逆波兰表达式生成算法的流程图。(为了便于比较相邻运算符的优先级,需要设立一个工作栈,用来存放暂时不能处理的运算符,所以又称运算符栈)。常用运算符优先关系矩阵右关系左+*/()+

      《太原理工大学编译原理实验》由会员s9****2分享,可在线阅读,更多相关《太原理工大学编译原理实验》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.