Specification Mining for Smart Contracts with Trace Slicing and Predicate Abstraction
提出基于 trace slicing 和 predicate abstraction 的 specification mining 方法并实现工具 SMCON,从交易历史推断智能合约规范,实验证明其能提升符号分析的代码覆盖率与速度,并辅助开发者维护文档和测试套件。
2025-04-29 cs.SE
Enabling Open-World Specification Mining via Unsupervised Learning
University of Wisconsin–Madison(威斯康星大学麦迪逊分校);Microsoft Research(微软研究院);GrammaTech, Inc.(GrammaTech公司)
许多编程任务需要同时使用特定于域的代码和完善的模式(例如与文件IO有关的例程)。几个小模式结合在一起,创造出复杂的交互。这种复合效应,与特定领域的特质混合,为全自动规范推理创造了一个具有挑战性的环境。在这种环境中挖掘规范,没有规则模板的帮助,用户导向的反馈,或预定义的API表面,是一个重大的挑战。我们称之为开放世界规范挖掘。在本文中,我们提出了一个框架,挖掘规范和使用模式在开放世界的设置。我们将这个框架设计为与矿机无关,而是专注于解决复杂和嘈杂的API交互。为了评估我们的框架,我们引入了从五个开源项目中提取的71个集群的基准。使用这个数据集,我们表明,有趣的集群可以恢复,在一个完全自动的方式,利用无监督学习的形式词嵌入。一旦恢复集群,开放世界规范挖掘的挑战就会简化,并且可以应用任何基于踪迹的挖掘技术。此外,我们提供了一个全面的评估三个词向量学习器,以展示子词信息的嵌入在软件工程领域学习的价值。
2019-04-27 cs.LG cs.SE
Specification Mining for Smart Contracts with Automatic Abstraction Tuning
智能合约是根据特定协议管理数字资产的程序,例如表示拍卖规则。理解智能合约的可能行为是困难的,这使得开发、审计和攻击的事后分析变得复杂。本文介绍了智能合约的第一个规范挖掘技术。我们的技术从区块链上记录的合约执行中提取智能合约的可能行为,并将其表示为有限自动机。一种新的依赖分析允许我们将独立的交互与合同分开。例如,我们的技术根据可配置的指标自动调整自动机构造的抽象,以最大限度地提高可读性或精度。我们为以太坊区块链实现了我们的技术,并在几个现实世界的合同上评估了它的可用性。
2018-07-20 cs.PL cs.SE
Caruca: Effective and Efficient Specification Mining for Opaque Software Components
Caruca利用大型语言模型和系统调用拦截,自动挖掘不透明命令的规格,在60个命令上几乎全部正确,消除了手动工作。
2025-10-16 cs.PL cs.SE
An Empirical Study on Practicality of Specification Mining Algorithms on a Real-world Application
动态模型推理技术是近年来许多研究项目的中心。现在有多种最先进算法的开源实现,它们提供基本的抽象和合并功能。这些工具和算法中的大多数都是针对一个特定的应用程序开发的,这就是程序理解。输出模型可以抽象出程序的细节,并以简洁且易于理解的形式表示软件行为。然而,较少研究的一个应用上下文是使用这样的推断模型进行调试,其中要抽象的行为是错误行为(例如,包括失败的测试用例的一组执行跟踪)。我们试图在现实世界的工业环境中应用一些现有的模型推理技术(在一个有前途的工具MINT中实现),以支持程序的调试理解。我们最初的实验表明,无论是在实现方面,以及算法的许多限制。本文将讨论故障的根本原因,并提出未来改进的想法。
2019-03-29 cs.SE
Inter-Paradigm Translation of Process Models using Simulation and Mining
流程建模通常使用命令式建模语言,如BPMN或EPC。为了应对以人为中心和灵活的业务流程的复杂性,在过去的几年中,已经开发了几种声明式流程建模语言(DPML)。DPML允许指定限制执行流的约束。它们在表现力和工具支持的水平上有很大的不同。此外,研究表明,声明性过程模型的可理解性相当低。由于两类过程建模语言都有应用程序,因此需要将过程模型从一种语言自动翻译成另一种语言。我们的方法是基于成熟的方法,在流程管理过程模型模拟和过程挖掘,而不需要规范的模型转换规则。在本文中,我们提出了技术的原则和评估,通过转换两个示例性的过程建模语言之间的过程模型。
2016-03-19 cs.SE
Timed k-Tail: Automatic Inference of Timed Automata
在实践中,描述软件系统性能的精确的和最新的模型很少。为了解决这个问题,软件工程师可以使用规范挖掘技术,它可以自动导出捕获分析中系统行为的模型。到目前为止,大多数规范挖掘技术都集中在系统的功能行为上,特别强调表示操作顺序的模型,如时态规则和有限状态模型。尽管这些模型很有用,但它们本质上是不完整的。例如,它们错过了定时行为,这与许多类系统和组件(如共享库和用户驱动的应用程序)极其相关。挖掘包括功能和时序方面的规范可以提高许多测试和分析解决方案的适用性。本文解决了这一挑战,提出了时间的k-Tail(TKT)规范挖掘技术,可以挖掘时间自动机从程序的痕迹。由于时间自动机可以有效地表示系统的功能和时间行为之间的相互作用,TkT可以在与时间相关的信息相关的情况下被利用。我们的实证评估表明,TkT可以有效地挖掘准确的模型。挖掘出的模型已被用于识别具有异常时间的执行。评估表明,大多数的异常执行已被正确识别,而产生的误报很少。
2017-05-23 cs.SE
Mining SoC Message Flows with Attention Model
U of South Florida(南佛罗里达大学)
高质量的系统级消息流规范对于片上系统(SoC)设计的全面验证是必要的。然而,手动开发和维护这些规范是令人生畏的任务。我们提出了一种破坏性的方法,利用深度序列建模与注意力机制,从SoC通信痕迹推断准确的流规范。所提出的方法可以克服SoC设计的并发执行,现有的挖掘工具往往发现极具挑战性的SoC痕迹所引起的固有的复杂性。我们进行了实验,五个高度并发的痕迹,发现所提出的方法优于现有的几个国家的最先进的跟踪挖掘工具。
2022-09-12 cs.AI cs.AR cs.LG
Assisted Specification of Code Using Search
我们描述了一个智能助手的基础上挖掘现有的软件存储库,以帮助开发人员交互式地创建可检查的规范的代码。最有用的是,我们在子系统级别应用它,即1000-10000行的代码块,可以独立或集成到现有应用程序中以提供额外的功能或能力。最终的规范包括应该编写什么的语法描述和应该做什么的语义规范,最初以测试用例的形式。所生成的规范被设计用于使用已经提出的各种技术(包括机器学习、代码搜索和程序合成)的自动代码生成。我们的研究目标是使这些技术能够有效地用于创建子系统,而不需要开发人员从头开始编写详细的规范。
2022-09-20 cs.SE
DAInfer+: Neurosymbolic Inference of API Specifications from Documentation via Embedding Models
The Hong Kong University of Science and Technology(香港科技大学)
本文提出DAInfer+,利用NLP和嵌入模型从库文档推断API规范,通过神经符号优化提高数据流和别名关系推断的精度与效率。
2026-03-30 cs.SE
Methodological Harness in Agentic Software Engineering: An Empirical Study on Mining Software Repositories
Universidad Politécnica de Madrid(马德里理工大学)
本研究基于AIDev数据集中的5,435个GitHub仓库,实证验证了智能体软件工程中八机制方法论约束框架的可观察性,发现机制采用以孤立形式为主,集成系统罕见。
2026-09-29 cs.SE
Learning GR(1) Specifications from Traces
Yale University(耶鲁大学);Columbia University(哥伦比亚大学);Barnard College, Columbia University(巴纳德学院,哥伦比亚大学)
本文提出基于SAT的工具GR1MINE,利用GR(1)时序骨架与学习子句提升效率,在GR(1)及非GR(1)规范基准上,其学习可实现公式的速度与性能均优于现有基线工具。
2026-08-10 cs.FL cs.LO cs.SE
Mining Program Properties From Neural Networks Trained on Source Code Embeddings
在本文中,我们提出了一种新的方法来挖掘不同的程序功能,通过分析的内部行为的深度神经网络训练的源代码。使用未标记的数据集的Java程序和三种不同的嵌入策略的方法在数据集中,我们训练每个程序嵌入的自动编码器,然后我们测试的新兴能力的内部神经元自主建设内部表示不同的程序功能。我们定义了三个受实际编程问题启发的二进制分类标签策略,以便测试每个神经元根据这些分类规则对程序进行分类的性能,表明一些神经元实际上可以检测不同的程序属性。我们还分析了选择作为输入的程序表示如何影响上述任务的性能。另一方面,我们感兴趣的是找到网络中信息量最大的神经元,而不管给定的任务是什么。为此,我们提出并评估了两种独立于任何属性的神经元排名方法。最后,我们将讨论如何将这些想法应用于不同的环境中,以简化程序员的工作,例如,如果包括在软件存储库或代码编辑器等环境中。
2021-03-09 cs.NE cs.SE
Pretrained Embeddings as a Behavior Specification Mechanism
Carnegie Mellon University(卡内基梅隆大学);Scaled Foundations;University of Washington(华盛顿大学)
提出引入嵌入作为规约语言一等构造,设计新型时序逻辑 ETL,通过理想与观测嵌入的距离形式化规约感知系统行为,并在基础模型驱动的机器人规划任务中验证其能有效引导系统表现出期望行为。
2025-03-06 cs.AI cs.RO cs.SE
Inferring Attributed Grammars from Parser Implementations
本文提出一种通过动态分析递归下降解析器实现、将运行时行为映射到文法规则并嵌入语义动作,从而自动推断属性文法以恢复输入处理语义规范的方法。
2025-07-17 cs.SE
A Hybrid LTR-based System via Social Context Embedding for Recommending Solutions of Software Bugs in Developer Communities
Ferhat Abbas University(费尔哈特·阿巴斯大学);College of Sciences(理学院)
本文提出基于社交上下文嵌入的混合LTR系统,通过挖掘Stack Overflow实现软件bug解决方案推荐,达到78%的准确率。
2026-03-07 cs.AI cs.SE
Common Sense Knowledge, Ontology and Text Mining for Implicit Requirements
Montclair State University(蒙特克莱尔州立大学);Covenant University(圣约大学)
系统满足其需求的能力是成功的一个重要决定因素。因此,有效的需求规范是至关重要的。显式需求是系统执行的明确定义的需求。隐式需求(IMR)是一种假设的需求,虽然在需求收集过程中没有引出,但系统预计会满足这些需求。研究表明,软件系统故障的一个主要因素是存在未经处理的IMR。由于IMR的相关性对于有效的系统功能很重要,因此开发了一些方法来帮助识别和管理IMR。在本文中,我们强调,常识知识,在人工智能领域的知识表示,将是有用的自动识别和管理IMRs。本文的目的是确定IMR的来源,并提出一个自动化的支持工具,在组织范围内管理IMR。由于这是目前实践中的一个差距,我们的工作在这方面做出了贡献。我们提出了一种新的方法来识别和管理IMRs的基础上结合三个核心技术:常识知识,文本挖掘和本体。我们认为,发现和处理未知和非引出的需求将降低软件开发的风险和成本。
2021-03-21 cs.AI cs.SE