返回
Automated Refactoring of Non-Idiomatic Python Code With Pythonic Idioms
DOI:10.1109/TSE.2024.3420886.png)
摘要
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
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W
机构
引用论文
Investigation on the Transformation of B-Defect in As-Grown Czochralski Silicon Crystal during Annealing Process生长直拉硅晶体退火过程中B缺陷转变的研究
Detrusor internal and external work in relation to passive urethral resistance in a canine model of the lower urinary tract下尿路犬模型中与被动尿道阻力有关的逼尿肌内部和外部工作
Analysis of Variance for Replicated Spatial Point Patterns in Clinical Neuroanatomy临床神经解剖学中重复空间点模式的方差分析
Insulin-like growth factor binding protein-1 is pre-synaptic at mouse neuromuscular synapses and is transported in nerve胰岛素样生长因子结合蛋白-1位于小鼠神经肌肉突触的突触前,并在神经

