FlexJava: language support for safe and modular approximate programming

FlexJava: language support for safe and modular approximate programming
复制标题

FlexJava:对安全和模块化近似编程的语言支持

DOI:
10.1145/2786805.2786807
复制
发表时间:
2015
期刊:
Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering
影响因子:
--
通讯作者:
William R. Harris
William R. Harris
中科院分区:
--
文献类型:
--
作者:
Jongse Park;H. Esmaeilzadeh;Xin Zhang;M. Naik;William R. Harris

文献摘要

被引文献

相似文献

能源效率是现代系统中的主要限制,是一种承诺的方法,可以进行效率和性能的增长质量。执行近似程序。扩展,这大大减少了注释的工作,这些扩展程序可以使程序员能够注释近似值的方法。这些输出并有选择地标记它们,同时提供安全保证。手动和明确的数据声明或操作是安全的。与最近的近似编程系统相比在我们的用户研究中,能源节省的能源降低(从2倍到17倍)。
Energy efficiency is a primary constraint in modern systems. Approximate computing is a promising approach that trades quality of result for gains in efficiency and performance. State- of-the-art approximate programming models require extensive manual annotations on program data and operations to guarantee safe execution of approximate programs. The need for extensive manual annotations hinders the practical use of approximation techniques. This paper describes FlexJava, a small set of language extensions, that significantly reduces the annotation effort, paving the way for practical approximate programming. These extensions enable programmers to annotate approximation-tolerant method outputs. The FlexJava compiler, which is equipped with an approximation safety analysis, automatically infers the operations and data that affect these outputs and selectively marks them approximable while giving safety guarantees. The automation and the language–compiler codesign relieve programmers from manually and explicitly an- notating data declarations or operations as safe to approximate. FlexJava is designed to support safety, modularity, generality, and scalability in software development. We have implemented FlexJava annotations as a Java library and we demonstrate its practicality using a wide range of Java applications and by con- ducting a user study. Compared to EnerJ, a recent approximate programming system, FlexJava provides the same energy savings with significant reduction (from 2× to 17×) in the number of annotations. In our user study, programmers spend 6× to 12× less time annotating programs using FlexJava than when using EnerJ.