Emergent, Crowd-scale Programming Practice in the IDE

被引:18
作者
Fast, Ethan [1 ]
Steffee, Daniel [1 ]
Wang, Lucy [1 ]
Brandt, Joel [2 ]
Bernstein, Michael S. [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
[2] Adobe Res, San Jose, CA USA
来源
32ND ANNUAL ACM CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS (CHI 2014) | 2014年
关键词
Programming tools; data mining;
D O I
10.1145/2556288.2556998
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
While emergent behaviors are uncodified across many domains such as programming and writing, interfaces need explicit rules to support users. We hypothesize that by codifying emergent programming behavior, software engineering interfaces can support a far broader set of developer needs. To explore this idea, we built Codex, a knowledge base that records common practice for the Ruby programming language by indexing over three million lines of popular code. Codex enables new data-driven interfaces for programming systems: statistical linting, identifying code that is unlikely to occur in practice and may constitute a bug; pattern annotation, automatically discovering common programming idioms and annotating them with metadata using expert crowdsourcing; and library generation, constructing a utility package that encapsulates and reflects emergent software practice. We evaluate these applications to find Codex captures a broad swatch of programming practice, statistical linting detects problematic code snippets, and pattern annotation discovers nontrivial idioms such as basic HTTP authentication and database migration templates. Our work suggests that operationalizing practice-driven knowledge in structured domains such as programming can enable a new class of user interfaces.
引用
收藏
页码:2491 / 2500
页数:10
相关论文
共 35 条
[1]  
Ahmadzadeh M., P ITICSE 2005
[2]  
Ayewah N., IEEE SOFTWARE 2008
[3]  
Baxter I.D., P ICSM 1998
[4]  
Bernstein M.S., P CHI 2012
[5]  
Brandt J., P CHI 2009
[6]  
Brandt J., P CHI 2010
[7]  
Brandt J., IEEE SOFTWARE 2009
[8]  
Buse R.P.L., P ICSE 2012
[9]  
Ducasse S., P ICSM 1999
[10]  
Engler D., P SOSP 2001