期刊文献+

高阶代码消除性能比较框架的设计与实现 被引量:1

Design and implementation of performance comparing frame for higher-order code elimination
下载PDF
导出
摘要 函数式语言编译中,闭包变换和函数消除是广泛采用的高阶代码消除方法。为了提高函数式语言的运行效率,针对函数式语言编译阶段的高阶代码消除过程对目标代码效率的影响,设计并实现了一种函数式语言编译框架。该框架采用了菱形的架构,平行地使用了闭包变换与函数消除两种高阶代码消除方法。设计了一种具有代表性的函数式语言——FUN语言,并以FUN语言为基础,给出了比较框架的一个完整实现。通过该系统,对闭包变换与函数消除的效率影响进行对比实验,选取具有典型特征的测试例,分别从生成代码的规模和运行效率方面对闭包变换与函数消除两种方法的结果进行比较。实验结果表明,与闭包变换相比,使用函数消除方式所得的目标代码量更少,最多可减少33.76%的目标代码量;并且运行效率更高,最多可提高69.51%。 In functional programming language compilation, closure conversion and defunctionalization are two widely used higher-order code eliminating methods. To improve the operational efficiency of functional programming languages, focusing on the higher-order code eliminating phase, a compiler frame to compare the performance of code generated by closure conversion and defunetionalization was proposed. Both closure conversion and defunctionalization were used in parallel in the comparing frame with a diamond structure. A functional programming language named FUN and a compiling system for FUN based on the comparing frame was proposed. Comparison experiments of closure conversion and defunetionalization were conducted on the proposed system by using typical use cases, and the experimental results were compared in code quantity and operation efficiency. The result suggests that compared with closure conversion, defunctionalization can produce shorter and faster target code; the amount of code can be decreased by up to 33.76% and performance can be improved by up to 69. 51%.
出处 《计算机应用》 CSCD 北大核心 2016年第9期2481-2485,共5页 journal of Computer Applications
基金 国家自然科学基金青年科学基金资助项目(61202052) 苏州市科技计划应用基础研究项目(SYG201406)~~
关键词 编译框架 函数式语言 高阶代码 闭包变换 函数消除 compiler frame functional programming language higher-order code closure conversion defunctionalization
  • 相关文献

参考文献20

  • 1HUDAK P. Conception, evolution, and application of functional programming languages [J]. ACM Computing Surveys, 1989, 21(3): 359-411.
  • 2VENNERS B. Twitter on Scala [EB/OL]. [2016-01-08]. http://www.artima.com/scalazine/articles/twitter_on_scala.html.
  • 3O'CONNELL A. Inside Erlang, the rare programming language behind WhatsApp's success [EB/OL]. [2016-01-08]. http://www.fastcompany.com/3026758/inside-erlang-the-rare-programming-language-behind-whatsapps-success.
  • 4MENG X, BRADLEY J, YAVUZ B, et al. MLlib: machine learning in Apache Spark [EB/OL]. [2015-12-08]. http://www.jmlr.org/papers/volume17/15-237/15-237.pdf.
  • 5KRILL P. Microsoft to big data programmers: try F# [EB/OL]. [2015-11-22]. http://www.infoworld.com/article/2613049/development-tools/article.html.
  • 6TRELFORD P. Learning with F# [C]// CUFP '07: Proceedings of the 4th ACM SIGPLAN Workshop on Commercial Users of Functional Programming. New York: ACM, 2007: Article No. 7.
  • 7ZAHARIA M, CHOWDHURY M, FRANKLIN M J, et al. Spark: cluster computing with working sets [C]// Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing. Berkeley, CA: USENIX Association, 2010: 10.
  • 8CEJTIN H, JAGANNATHAN S, WEEKS S. Flow-directed closure conversion for typed languages [C]// ESOP '00: Proceedings of the 9th European Symposium on Programming Languages and Systems. London: Springer, 2000: 56-71.
  • 9EISENBERG R A, STOLAREK J. Promoting functions to type families in Haskell [C]// Haskell '14: Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell. New York: ACM, 2014: 95-106.
  • 10KUAN G, MACQUEEN D. Engineering higher-order modules in SML/NJ [C]// Proceedings of the 21st International Conference on Implementation and Application of Functional Languages. Berlin: Springer, 2009: 218-235.

同被引文献9

引证文献1

二级引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部