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

学年论文--算符优先函数的构造

21页
  • 卖家[上传人]:liy****000
  • 文档编号:115427462
  • 上传时间:2019-11-13
  • 文档格式:DOC
  • 文档大小:334.50KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 哈尔滨师范大学学年论文华文新魏小初,空两行黑体四号,加黑,居中题 目 算符优先函数的构造学 生 王鸿百与题目对齐,黑体四号,加黑指导教师 肖鑫 教授年 级 2009级专 业 计算机科学与技术黑体四号,空五行系 别 计算机系学 院 计算机科学与信息工程学院华文新魏三号,居中华文新魏三号,居中哈尔滨师范大学2012 年6月宋体五号,行间距18磅宋体三号加黑,居中与正文空一行论文提要算符优先分析法是自下而上语法分析的一种,它的算法简单、直观、易于理解,所以通常作为学习其它自下而上语法分析的基础。为学好本章内容,学员应复习有关语法分析的知识,如:什么是语言、文法、句子、句型、短语、简单短语、句柄、最右推导、规范归约基本概念。算符优先函数的构造王鸿百摘 要:算符优先分析法是Floyd在1963年首先提出来的,是一种古典而又实用的方法,用这种方法在分析程序语言中的各类表达式时尤为有效。不少编译程序中都使用这种方法分析表达式。算符优先分析法就是仿照算术表达式的运算过程而提出的一种自底向上的语法分析方法。其基本思想是:首先规定算符,这里是文法的终极符之间的优先关系,然后根据这种优先关系,通过比较相邻

      2、算符的优先次序来确定句型中的“句柄”,然后进行归约。算符优先分析法的关键:算符优先分析法的关键就是寻找当前句型中的最左素短语,并归约它。关键字:小于、大于、等于、句柄、归约一、对表达式文法G E构造算符优先关系表。计算算符优先只针对于终结符,终结符之间的优先关系有三种,在计算优先关系之前我们先定义两个集合,对于任意两个终结符(a,b)FIRSTVT(B)=b|B=b或B=Cb,其中表示V中的符号串。LASTVT(B)=a|B=a或B=aC三种优先关系:(1)等于关系:可直接查看产生式的右部,对如下形式的产生式A-ab A- aBb则有a=b成立。(2)小于关系:求出每个非终结符B的FIRSTVT(B), 观察如下形式的产生式A-aB对每一bFIRSTVT(B)有ab成立(3)大于关系:计算每个非终结符B的LASTVT(B),观察如下形式的产生式A-Bb对每一aLASTVT(B)有ab成立表达式文法G E:E # E #E E + Q | QQ Q - T | TT T * F | FF F/ MMM M PPP ( E )i根据上面的规则手工构造上述文法的算符优先表如下:+-*/()i

      3、#+-*/(=)i#=表 1-1 package com.op.core;/* * 简单表达式文法G E构造算符优先关系表。 * E # E # * E E + Q | Q * Q Q - T | T * T T * F | F * F F / MM * M M PP * P ( E )i * author */public class PriorityTable private static char table = / + * / i ( ) # , , , , , , , , , , , , , , , , , , , , , $, $, , , , / i , , , , , =, $, , , , $, $, , , , / ) , , , , , $, =, , , , , , , , / ; / 算符优先表/* * 判断一个符号在算符优先表中位置 * * param c * return */private static int judgePriority(char c) int priority = 0;switch (c) case +:priority = 0;br

      4、eak;case *:priority = 1;break;case /:priority = 2;break;case i:priority = 3;break;case (:priority = 4;break;case ):priority = 5;break;case #:priority = 6;break;case :priority = 7;break;return priority;/* * 判断两个算术符的优先级 * * param m * 为符号栈的栈顶元素 * param n * 为当前输入算术符 * return */public static char getPriority(char m, char n) return PriorityTable.tablejudgePriority(m)judgePriority(n);二、根据算符优先表用栈结构来实现算符优先分析设置两个栈:存放运算符的OPTR栈和存放操作数或运算结果的OPND栈。具体算法描述如下:(1)首先置操作数OPND栈为空栈,将#入运算符OPTR栈。(2)依次读入表达式中每个单词,若是操作数则进O

      5、PND栈,若是运算符则转(3)。(3)当前设读入的运算符为2,查找算符优先关系表,比较2与OPTR栈顶元素1 :若12,则2进OPTR栈,转(2); 若12, 如2为#,则分析成功,否则OPTR栈顶元素1出栈,并转(2);若12,则出栈OPND栈顶元素存放到b,又出栈其新栈顶元素存放到a,再出栈OPTR栈顶元素至t,进行运算r=a t b (t为运算符),并将结果r存入栈OPND后转(2);(4)若1和2之间无优先关系,则报错。public class OperatorPriority private Stack optrStack; /符号栈private Stack opndStack; /操作数栈private String input; /键盘输入字符串/* * 构造函数 * param input */public OperatorPriority(String input) super();optrStack = new Stack();opndStack = new Stack();optrStack.push(#);this.input = input;/* * 操作两

      6、个数 * param a 操作数1 * param b 操作数2 * param op 操作符 * return 运算结果 */public float operateTwoNum(float a, float b, char op) BigDecimal da = new BigDecimal(Float.toString(a); BigDecimal db = new BigDecimal(Float.toString(b); switch (op) case *:return da.multiply(db).floatValue();case +:return da.add(db).floatValue();case -:return db.subtract(da).floatValue();case /:return db.divide(da,7,BigDecimal.ROUND_HALF_UP).floatValue(); /除不尽的情况取7位精确值。case :return db.pow(int)a).floatValue();return 0;/* * 判断是否为操作符 * param ch 被判断字符 * return 布尔值 */public boolean isOperator(char ch) if (ch = + | ch = - | ch = * | ch = / | ch = (| ch = ) | ch = #|ch=)return true;elsereturn false;/* * 扫描字符串,判断是否对应文法,并计算出

      《学年论文--算符优先函数的构造》由会员liy****000分享,可在线阅读,更多相关《学年论文--算符优先函数的构造》请在金锄头文库上搜索。

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