Sourcerer's Apprentice and the study of code snippet migration
在万维网上,不仅网页是连接的,源代码也是。软件开发正变得越来越容易为每个人所用,而软件的许可证仍然很复杂。我们需要知道软件许可证在其重用和发展过程中是否得到了正确的维护。这激发了Sourcer's Apprentice的开发,这是一个帮助跟踪克隆重新授权的网络服务,因为软件通常使用软件许可证来描述其软件的使用和改编方式。但大多数开发人员不具备解决许可证冲突的法律专业知识。在本文中,我们让Apprentice进行了实证研究,证明StackOverflow代码和Python模块以及Python文档之间存在大量共享,这违反了原始Python模块和文档的许可:通过StackOverflow共享的软件片段经常被不正确地重新许可到CC-BY-SA 3.0,而没有保持适当的属性。我们发现,StackOverflow上的许多片段被StackOverflow用户不适当地重新授权,危及重用StackOverflow片段的公司和开发人员构建的软件的状态。
2018-07-31 cs.SE
Bug In the Code Stack: Can LLMs Find Bugs in Large Python Code Stacks
University of Waterloo(滑铁卢大学)
本研究提出评估LLM在大型Python代码栈中识别简单语法Bug能力的BICS基准,发现代码环境检索难度高于文本环境,不同模型性能差异大,且上下文越长性能普遍越差。
2024-06-21 cs.AI cs.SE
PySS3: A Python package implementing a novel text classifier with visualization tools for Explainable AI
Universidad Nacional de San Luis(圣路易斯国立大学);Consejo Nacional de Investigaciones Científicas y Técnicas(国家科学技术研究委员会);Instituto Nacional de Astrofísica, Óptica y Electrónica(国家天体物理、光学和电子研究所)
最近推出的文本分类器,称为SS3,已获得国家的最先进的性能CLEF的eRisk任务。SS3是为了处理文本流上的风险检测而创建的,因此,它不仅支持增量训练和分类,还可以直观地解释其原理。然而,很少有人注意到SS3作为通用分类器的潜在用途。我们认为这可能是由于SS3的开源实现不可用。在这项工作中,我们介绍了PySS3,一个实现SS3的软件包,还附带了可视化工具,允许研究人员部署强大的,可解释的,可靠的机器学习模型进行文本分类。
2020-07-18 cs.AI cs.IR cs.LG
Drafter: A Python Library for Full-Stack Web Development in CS1
University of Delaware(特拉华大学)
本文介绍Drafter,一个面向CS1课程的开源Python库,通过纯函数和极简代码实现全栈Web开发,支持单元测试与调试,旨在提升学生参与度并强化学习目标。
2026-09-25 cs.CY cs.SE
FauxPy: A Fault Localization Tool for Python
本文提出FauxPy,一个支持七种错误定位技术、兼容Pytest等框架的Python开源错误定位工具,并验证了其在135个真实错误上的适用性。
2024-04-29 cs.SE
DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and Code Skeletons
Microsoft Cloud and AI(微软云与人工智能部门)
缺陷定位和程序修复的联合任务是软件开发过程中不可或缺的一部分。在这项工作中,我们提出了Deepcraft,一种使用大型预训练Transformers进行自动调试的方法。我们首先在反向提交数据上训练一个错误创建模型,以生成合成错误。我们把这些合成的虫子应用到两个方面。首先,我们直接对来自20万存储库的所有函数进行反向翻译模型的训练。接下来,我们将关注10K存储库,我们可以对这些存储库执行测试,并在这些存储库中创建通过测试的所有函数的错误版本。这为我们提供了丰富的调试信息,如堆栈跟踪和打印语句,我们使用这些信息来微调我们在原始源代码上预训练的模型。最后,我们通过将上下文窗口扩展到有缺陷的函数本身之外,并添加由该函数的父类、导入、签名、文档字符串和方法体(按优先级顺序)组成的骨架来增强所有模型。在菜Bugs基准测试中,我们将发现的修复总数增加了50%以上,同时将误报率从35%降低到5%,并将超时时间从6小时减少到1分钟。在我们自己的可执行测试基准上,我们的模型在不使用跟踪的情况下第一次尝试就修复了68%的错误,在添加跟踪后,它在第一次尝试时修复了75%的错误。我们将开源我们的框架和验证集,用于评估可执行测试。
2021-05-19 cs.LG cs.SE
Implementing a Model-based Engineering Tool as Web Application
本文报告了一个基于桌面的基于模型的工程工具,以Web应用程序的研究。这项研究是在WEBMODEL项目中进行的,在该项目中,围绕Eclipse平台和Eclipse建模框架的成熟技术栈被提升到基于云的环境中。作为结果,建模语言独立的工具内核基于Web的建模工具和最小的原型基于Web的实现的AutoFOCUS 3基于模型的工程工具。此外,报告还记录了在执行过程中获得的经验和执行建议。
2023-02-27 cs.SE
An exploratory analysis of Community-based Question-Answering Platforms and GPT-3-driven Generative AI: Is it the end of online community-based learning?
本文通过对比ChatGPT与Stack Overflow人类答案在2564个Python和JavaScript问题上的表现,发现ChatGPT回答更短、情感更积极、准确率达71%-75%,并伴随社区互动下降38%,揭示了生成式AI对在线社区学习的潜在替代影响。
2024-09-30 cs.SE
PyTorrent: A Python Library Corpus for Large-scale Language Models
语义和自然语言资源的大规模收集对于利用活跃的软件工程研究领域(如代码重用和代码可理解性)是必不可少的。现有的机器学习模型从开源存储库(如GitHub项目)和论坛讨论(如Stackoverflow.com)中摄取数据,而在这个展示中,我们后退了一步,编排了一个名为PyTorrent的语料库,其中包含来自PyPI和Anaconda环境的218,814个Python包库。这是因为早期的研究表明,大部分代码都是冗余的,来自这些环境的Python包质量更好,并且有很好的文档记录。PyTorrent使用户(如数据科学家,学生等)直接构建现成的机器学习模型,而无需在大型基础设施上花费数月的精力。数据集、模式和预训练的语言模型可在https://github.com/fla-sil/PyTorrent上获得
2021-10-04 cs.SE
pycefr: Python Competency Level through Code Analysis
Python被认为是一种多功能语言,非常适合初学者和高级用户。语言中的某些元素比其他元素更容易理解:有些可以在任何类型的代码中找到,而另一些则只能由有经验的程序员使用。这些元素的使用导致不同的方式来编码,这取决于经验的语言和知识的元素,一般的编程能力和编程技能等,在本文中,我们提出了pycefr,一个工具,检测使用的不同元素的Python语言,有效地衡量水平的Python熟练程度所需的理解和处理的一个片段的Python代码。遵循广为人知的欧洲通用语言参考框架(CEFR),广泛用于自然语言,pycefr根据创建和理解Python代码所需的熟练程度将Python代码分为六个级别。我们还讨论了pycefr的不同用例:识别具有一定熟练度的开发人员可以理解的代码片段,在Stackoverflow和GitHub等在线资源中标记代码示例,以使其符合一定的能力水平,帮助开源软件项目中的新开发人员入职流程等https://tinyurl.com/ypdt3fwe。
2022-03-30 cs.SE
Process Mining for Python (PM4Py): Bridging the Gap Between Process- and Data Science
流程采矿,即,数据科学的一个子领域,专注于分析在执行(业务)过程期间生成的事件数据,在过去二十年中发生了巨大的变化。从21世纪初开始,只有有限的工具支持,现在,几个软件工具,即,两者都是开源的,例如,ProM和Apromore,以及商业的,例如,Disco、Celonis、ProcessGold等,存在.商业流程挖掘工具对实现自定义算法的支持有限。此外,商业和开源流程挖掘工具通常只能通过图形用户界面访问,这阻碍了它们在大规模实验环境中的使用。RapidProM等计划在基于科学工作流的数据科学套件RapidMiner中提供流程挖掘支持。然而,这些提供了有限的算法定制的支持。鉴于上述情况,在本文中,我们提出了一种新的流程挖掘库,即Python流程挖掘(PM 4Py),旨在弥合这一差距,提供与最先进的数据科学库的集成,例如,pandas、numpy、scipy和scikit-learn。我们提供了PM 4Py的架构和功能的全球概述,并附有其使用的一些代表性示例。
2019-05-15 cs.SE
BugsInPy: A Database of Existing Bugs in Python Programs to Enable Controlled Testing and Debugging Studies
受Java缺陷基准Defects4J启发,本研究构建了包含17个真实Python项目493个真实缺陷的BugsInPy基准数据库及工具,以填补Python测试调试基准的不足,推动相关工具研究发展。
2024-01-27 cs.SE
Software Development During COVID-19 Pandemic: an Analysis of Stack Overflow and GitHub
新型冠状病毒已成为全球严重的健康问题。这种情况促使人们对不同领域进行研究,以防治这一流行病。在软件工程中,我们指出了数据可视化项目来跟踪疾病的演变,机器学习来估计流行病的行为,以及计算机视觉处理放射图像。这些项目中的大多数都存储在版本控制系统中,并且在问答网站中有关于它们的讨论。在这项工作中,我们对大量问题和项目进行了挖掘软件库,旨在找到可以帮助研究人员和从业人员对抗冠状病毒的趋势。我们分析了来自Stack Overflow和Data Science Q\&A的1,190个问题以及60,352个GitHub项目。我们确定了在整个大流行期间问题和项目之间的相关性。关于冠状病毒的主要问题是如何使用Python、JavaScript和R,与网络抓取和数据可视化有关。最常见的GitHub项目是机器学习项目,使用JavaScript,Python和Java。
2021-03-09 cs.CY cs.SE
An Empirical Study of Fault Localization in Python Programs
本文首次对真实 Python 程序开展多系列大规模故障定位实证研究,基于 BugsInPy 的 135 个故障评估七类技术,并通过 FauxPy 工具复现和比较 Java 相关结论。
2024-03-20 cs.SE
zksk: A Library for Composable Zero-Knowledge Proofs
零知识证明是许多隐私保护系统中必不可少的组成部分。然而,实现这些证明是繁琐和容易出错的。在本文中,我们介绍了zksk,一个文档齐全的Python库,用于定义和计算sigma协议:最流行的一类零知识证明。在zksk中,证明组合:程序员可以将较小的证明转换为构建块,然后将其组合成更大的证明。zksk是一种现代的基于Python的领域特定语言。这使得在不学习新的自定义语言的情况下定义证明成为可能,并从丰富的Python语法和生态系统中受益。该库可在https://github.com/spring-epfl/zksk上获得
2019-11-10 cs.CR cs.SE
The Last APK: Retiring Android SDK Development for Institutional Software Using Python-Django, HTMX, and a WebView Bridge
Indian Institute of Information Technology, Surat(印度信息理工学院苏拉特分校);Indian Institute of Technology Gandhinagar(印度技术学院甘地纳加尔分校)
本文提出一种基于Python-Django和HTMX的校园管理系统,通过零Android SDK代码实现高效开发,减少54%的开发时间与91%的HTTP负载,获得4.2/5.0用户满意度。
2026-04-04 cs.SE
CodeInsight: A Curated Dataset of Practical Coding Solutions from Stack Overflow
Université de Paris(巴黎大学);CNRS(法国国家科学研究中心);onepoint
本文提出一个源自Stack Overflow的代码生成数据集CodeInsight,包含3409个由专家制作的示例,涵盖多种Python库及平均三个单元测试,用于模型微调与评估,并通过分类分析及多模型测试验证其低数据污染特性。
2024-09-25 cs.CL cs.SE
Phyelds: A Pythonic Framework for Aggregate Computing
University of Bologna(博洛尼亚大学)
本文提出Phyelds,一个针对数据科学实践者的Python库,旨在整合机器学习与聚合计算,提供轻量级的字段 calculus 模型实现,支持联邦学习和多智能体强化学习。
2026-03-31 cs.AI cs.PL cs.SE