arrow
返回

Automated Refactoring of Non-Idiomatic Python Code With Pythonic Idioms

delete2024-11-01
delete0
PRE
AI
Z
Zejun Zhang *
Z
Zhenchang Xing
D
Dehai Zhao
X
Xiwei Xu
L
Liming Zhu
Q
Qinghua Lu
DOI:10.1109/TSE.2024.3420886delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
与其他编程语言 (例如Java) 相比,Python具有更多的习语,使Python代码简洁高效。虽然Python习语在Python社区中被广泛接受,但Python程序员在使用它们时经常面临许多挑战,例如,不知道某些Python习语或不知道如何正确使用它们。基于对GitHub上7,577的Python存储库的分析,我们发现可以用Python习语实现的非惯用Python代码频繁且广泛地出现。为了帮助Python开发人员采用Python习语,我们设计并实现了一个名为RIdiom的自动重构工具,以用Python习语重构代码。通过系统地对比Python和Java的抽象语法语法,我们确定了十二个Pythonic习语。然后,我们定义用于检测每个python习语的非惯用代码的语法模式。最后,我们设计了原子AST重写操作和重构步骤,以将非惯用代码重构为惯用代码。我们的方法在1,814代码重构上进行了评估,实现了0.99的精度和0.87的召回率,从而强调了其有效性。我们进一步评估了该工具在帮助开发人员使用Pythonic成语重构代码方面的实用程序。涉及14名学生的用户研究表明,在引用工具生成的代码对时,正确性112.9% 提高,速度35.5%。此外,提交给GitHub项目的120 pull请求使用Pythonic成语重构非惯用代码,导致79个响应。其中,有49个接受并赞扬了重构,有42个将重构合并到其存储库中。
Keyword:
Codes
Python
Software development management
Syntactics
Programming
Java
Benchmark testing
Reliability
Grammar
Australia
Pythonic idioms
code refactoring
abstract syntax grammar

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.9K
被引数:
1.1W

机构

A
Australian National University
学者数:
2.1W
论文数: 2.3W
被引数: 3.9W
C
引用论文

引用论文

Firefighting Acutely Increases Airway Responsiveness消防急性增加气道反应性
err1989-07-01
err0
PREAI
errCharles B. Sherman; Scott Barnhart; Mary F. Miller; Mark R. Segal; Moira Aitken; Robert Schoene; William Daniell; Linda Rosenstock
err分享
err收藏
学者 查看更多内容