Replication package for the paper :The Relationship Between Different Python Argument-Passing Mechanisms and Fixes: An Empirical Study
<p><strong>Abstract:</strong></p> <p>Modern programming languages, such as Python, have introduced a variety of constructs and syntactical elements to make software development more efficient and concise. Examples include lambda functions, comprehension collections, or mechanisms to facilitate the passing of arguments to a function. While many of such constructs may, in principle, be beneficial for developers, recent studies have shown that certain programming constructs may affect program understanding and even induce more fixes than other changes. <br>This paper studies the effect of different Python argument-passing mechanisms to investigate their relationship with code proneness to be fixed. Specifically, we study the fix-proneness for what concerns function definitions and invocations. This is done by analyzing the evolutionary history of 200 Python projects, for a total of about 3M functions and 12M call sites. While there are varying effects for what concerns parameter declaration mechanisms, we found evidence that keyword-based argument passing is less defect-prone than positional argument passing, and this is not affected by size-related confounding factors.</p>
ShareScore
36/100
Overall dataset sharing score
Score breakdown
These five areas show where the dataset supports — or may limit — practical reuse.
- Stewardship
- 4
- Harmonization
- 4
- Access
- 16
- Reuse readiness
- 8
- Engagement
- 4