`
javatar
  • 浏览: 1681151 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

表达式归约算法优化

    博客分类:
  • HTTL
阅读更多
这两天将MeteorTL的表达式归约算法优化了一下,对常量计算提前到解释期,这样可以避免在运行期重复计算,提高性能,以及减小表达式树的大小。
如:
coins + 2 * 3 * 4 被优化成 coins + 24,
2 + 3 + 4 + coins 被优化成 5 + coins,
但 coins + 2 + 3 + 4 的处理较麻烦,
因为操作符的优先级相同,并且是从左至右的结合律,归约成树时,coins与2组合成一个节点后,再与3组合,再与4组合,这样很难判断其为常量计算。
可能要改变中缀表达式的优先级算法,当为常量时,优先级加高。
待考虑。

BTW: 在任何代码中写表达式,都应该尽可能将常量写在前面,便于编译器优化。
分享到:
评论

相关推荐

    论文研究-面向高效深度包检测的启发式正则表达式分组算法.pdf

    经过对正则表达式合并DFA(确定型有限自动机)状态爆炸问题的分析,采用正则表达式两两合并DFA的状态增加数之和衡量多个正则表达式合并后真实的状态增加情况,将正则表达式最优分组问题归约为带权无向图的k-最大割...

    论文研究-分支语句重构算法的研究与应用.pdf

    由于条件分支语句的多重嵌套,导致代码...而对于基于模型代数的基本路径集生成工具,改进了生成模型代数表达式的算法,并且能够准确地生成基本路径集。最后通过实验对案例进行对比,验证了重构方法及改进算法的有效性。

    《算法》中文版,Robert Sedgewick,塞奇威克

     KevinWayne,康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化。 目 录 第1章 基础 1.1 基础编程模型 1.1.1 Java程序的基本结构 1.1.2 原始数据...

    算法-第4版-完整版

    2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章 查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 3.1.5 有序数组中...

    算法 第4版 高清中文版

    算法(第4版)》是Sedgewick之巨著,与高德纳TAOCP一脉相承,是算法领域经典的参考书,涵盖所有程序员必须掌握的50种算法,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了...

    算法 第4版-谢路云译-带完整书签

    2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 3.1.5 有序數组中的二分查找...

    算法第四版-PDF-网盘链接

     1.1.2 原始数据类型与表达式 6  1.1.3 语句 8  1.1.4 简便记法 9  1.1.5 数组 10  1.1.6 静态方法 12  1.1.7 API 16  1.1.8 字符串 20  1.1.9 输入输出 21  1.1.10 二分查找 28  ...

    算法,4th,塞奇威克 (Robert Sedgewick)韦恩 (Kevin Wayne), 谢路云 译.azw3

    韦恩(Kevin Wayne),康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化。 目录 第1章 基础 1.1 基础编程模型 1.1.1 Java程序的基本结构 1.1.2 原始...

    编译LR分析法

    掌握用LR分析法对表达式文法进行自底向上语法分析的算法,加深对LR分析法的移进,归约等操作理解。 二、实验要求 本次实验的SLR(1)文法为表达式拓广文法: (0) S’→E (1) E→E+T (2) E→T (3) T→T*F (4)...

    C-Lua5-Cell-Machine:CLua5 c-算法

    符号Lua-变量,函数,函数回调,表,表达式 C算法和容器 单元数据结构和算法 uSockets网络和事件 cJSON和protobuf-c sqlite3 基本结构 细胞阵列 细胞阵列结构和算法 清单和过程 蜂窝列表处理 树与逻辑 蜂窝搜索和...

    语法分析 算符优先分析程序

    (2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E’): E’→#E# E→E+T | T T→T*F |F F→(E)|i (4)分析的句子为: (i+i)*i和i+i)*i

    算符优先文法

    (2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E’): E’→#E# E→E+T | T T→T*F |F F→(E)|i (4)分析的句子为: (i+i)*i和i+i)*i

    语法分析(算符优先)

    (2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E’): E’→#E# E→E+T | T T→T*F |F F→(E)|i (4)分析的句子为: (i+i)*i和i+i)*i

    语法分析(算符优先).doc

    简单易懂有注释,适合学习编译原理的初学者,并无难懂代码。 文档包含题目要求,源代码,操作方法,运行截图。...(2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程)

    有限域上的散射振幅和多元函数重构

    然后,我们将讨论该算法在与散射振幅计算相关的几种技术中的应用,例如四维和六维自旋螺旋度形式主义,树级递归关系以及通过广义单一性进行的多环被乘数归约。 该方法具有良好的效率,并且可以随变量数量和问题的...

    编译原理课程设计 算符优先分析文法

    算符优先分析是自底向上优先分析(移进-归约分析)思想基础上的一种重要的算法,算符优先分析法是一种简单直观、特别方便于表达式分析,易于手式实现的方法。算符优先分析法是仿效算数四则运算而建立起来的。做四则...

    编译原理全套

    第1章 编译器概述 第2章 词法分析 2.1 词法记号及属性 2.1.1 词法记号、模式、词法单元 2.1.2 词法记号的属性 2.1.3 词法错误 2.2 词法记号的描述与识别 2.2.1 串和语言 ... 12.4.6 letrec表达式和局部变量

    [编译原理].陈意云.文字版

    本书介绍编译器构造的一般原理和基本实现方法,主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。除了介绍命令式编程语言的编译技术外, 本书还介绍面向对象语言和函数式编程语言...

    初级java笔试题-Algorithms--part1:由KevinWayne和RobertSedgewick提供的算法课程

    路基数快速排序、多路尝试、三元搜索尝试、Knuth-Morris-Pratt、Boyer-Moore、Rabin-Karp、正则表达式匹配、游程编码、霍夫曼编码、LZW 压缩和 Burrows-Wheeler 变换。 第二部分还介绍了归约和难处理,包括 P = NP ...

    初级java笔试题-alpr:算法

    初级java笔试题算法 Coursera - 普林斯顿大学课程 教学大纲 说明。 基本数据类型、算法和数据结构的介绍。 我们的重点是 ...实现的应用程序和科学性能分析。...第二部分还介绍了归约和难处理,包括 P = NP

Global site tag (gtag.js) - Google Analytics