Bugs that are detected earlier during the development lifecycle are easier and cheaper to fix, whereas bugs that are found during production are difficult and expensive to address, and may have dire consequences. Type systems are particularly effective at identifying and preventing bugs early in the development lifecycle by causing invalid programs to result in build failure. Liquid Types are more powerful than those found in mainstream programming languages, allowing the detection of more classes of bugs. However, while Liquid Types were proposed in 2008 with their integration in ML and subsequently introduced in C (2012), Javascript(2012) and Haskell(2014) through language extensions, they have yet to become widely adopted by mainstream developers. This paper investigates how Liquid Types can be integrated in a mainstream programming language, Java, by proposing a new design that aims to lower the barrier to entry and adapts to problems that Java developers commonly encounter at runtime. To promote accessibility, we conducted a series of developer surveys to design the syntax of LiquidJava, our prototype. To evaluate the prototype's usability, we conducted a user study of 30 Java developers, concluding that users intend to use LiquidJava and that it helped to find more bugs and debug faster.


翻译:在开发生命周期早期发现的错误比较容易,也比较便宜,而生产过程中发现的错误很难解决,而且费用昂贵,可能产生严重后果。类型系统特别有效,通过导致无效程序导致建设失败,在开发生命周期早期发现和预防错误。液体类型比主流编程语言中发现的错误更强大,可以发现更多的种类的错误。然而,2008年提出了液体类型,将其纳入ML,随后又在C(2012)、Javascript(2012)和Haskell(2014)中通过语言扩展引入了液体类型,但这些类型尚未被主流开发者广泛采用。本文调查了如何将液体类型纳入主流编程语言Java,提出了旨在降低进入障碍和适应Java开发者在运行时通常遇到的问题的新设计。为了促进无障碍,我们进行了一系列开发者调查,以设计液体java(我们的原型)的合成词。为了评估原型的可用性,我们对30名化开发者进行了用户研究,得出的结论是,用户打算使用液体Java,并且帮助更快地找到更多的错误和调。

0
下载
关闭预览

相关内容

专知会员服务
32+阅读 · 2021年10月9日
【新书】Python编程基础,669页pdf
专知会员服务
193+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
19+阅读 · 2021年6月15日
Arxiv
6+阅读 · 2018年3月28日
VIP会员
相关VIP内容
专知会员服务
32+阅读 · 2021年10月9日
【新书】Python编程基础,669页pdf
专知会员服务
193+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
相关资讯
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】什么让我们生病
英语演讲视频每日一推
7+阅读 · 2019年1月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员