Towards the LLM-Based Generation of Formal Specifications from Natural-Language Contracts: Early Experiments with Symboleo
本文探索使用大语言模型从英文商业合同自动生成 Symboleo 形式化规范,通过 38 种提示组合实验发现该方法前景良好,但语法遵循和环境变量识别等问题仍需改进。
2024-11-24 cs.SE
SpecPath: Testing Coding Agents Across Contract-Equivalent Specification Histories
The Hong Kong University of Science and Technology(香港科技大学);University of Science and Technology of China(中国科学技术大学)
针对编码智能体的规范路径敏感性问题,提出SpecPath诊断评估方法,通过控制变量测试发现多数智能体在等价规范历史中存在行为不一致的问题,凸显需评估智能体对规范路径的鲁棒性。
2026-08-11 cs.SE
iContractBot: A Chatbot for Smart Contracts' Specification and Code Generation
最近,由于智能合约的发展,区块链技术的采用已经扩展到许多应用领域。然而,由于缺乏该领域的工具和专业知识,开发智能合约并非易事,而且具有挑战性。解决这个问题的一个有希望的解决方案是使用模型驱动工程(MDE),但是,使用模型仍然涉及学习曲线,可能不适合非技术用户。为了应对这一挑战,可以使用聊天机器人或会话界面来评估非技术用户,以渐进和交互的方式指定智能合约。在本文中,我们提出了iContractBot,一个用于建模和开发智能合约的聊天机器人。此外,我们研究了如何将iContractBot与iContractML(一种用于开发智能合约的特定领域建模语言)集成,并从聊天机器人实例化意图模型。iContractBot框架提供了一种基于用户意图的领域特定语言(DSL),并执行模型到文本的转换以生成智能合约代码。一个智能合约用例展示了如何利用iContractBot创建模型,并基于简单的对话生成智能合约的部署工件。
2021-03-16 cs.SE
Realization and Extension of Abstract Operation Contracts for Program Logic
对于具有形式正确性证明的工程软件来说,在软件或其规范发生变化的情况下,证明可以有效地重用是至关重要的。不幸的是,在现实中,即使是代码或其规范中的微小变化也经常导致不成比例的验证工作浪费:例如,每当一个方法的规范被修改时,其正确性的证明就会中断,所有基于此规范的其他证明也会中断。抽象方法调用是最近提出的方法调用验证规则,允许有效的系统重用证明。在这篇论文中,我们实现,扩展和评估这种方法的关键验证系统。
2015-01-18 cs.SE
Specifying Reusable Components
可重用软件组件需要有表达性的规范。本文概述了一个严格的基础,以基于模型的合同,一种方法来装备类与强大的合同,支持准确的设计,实现,和形式化验证的可重用组件。基于模型的契约保守地扩展了经典的契约式设计,引入了模型的概念,它支持抽象等价和规范完整性等概念的精确定义。基于模型的合同库的数据结构的实验表明,该方法能够准确规范的实际软件。
2010-03-30 cs.SE
Specification Mining for Smart Contracts with Automatic Abstraction Tuning
智能合约是根据特定协议管理数字资产的程序,例如表示拍卖规则。理解智能合约的可能行为是困难的,这使得开发、审计和攻击的事后分析变得复杂。本文介绍了智能合约的第一个规范挖掘技术。我们的技术从区块链上记录的合约执行中提取智能合约的可能行为,并将其表示为有限自动机。一种新的依赖分析允许我们将独立的交互与合同分开。例如,我们的技术根据可配置的指标自动调整自动机构造的抽象,以最大限度地提高可读性或精度。我们为以太坊区块链实现了我们的技术,并在几个现实世界的合同上评估了它的可用性。
2018-07-20 cs.PL cs.SE
Contracts in Practice
契约是一种嵌入在程序文本中的轻量级形式规范。作为代码的可执行部分,它们鼓励程序员对规范投入适当的注意力,并随着程序的发展帮助维护规范和实现之间的一致性。本研究探讨如何在软件开发的实践中使用合同。基于对21个配备契约的Eiffel、C#和Java项目的广泛实证分析,这些项目总计超过2.6亿行代码,超过7700次修订,本文探讨了以下问题:1)哪些类型的契约元素(前置条件、后置条件、类不变量)被更频繁地使用; 2)契约如何随着时间的推移而演变; 3)实现变更与契约变更的关系; 4)继承在过程中的作用。它发现,在其他结果中,包括合同的程序元素的百分比在大多数项目中超过33%,并且随着时间的推移趋于稳定;对某种类型的合同元素没有强烈的偏好;与实现相比,合同相当稳定;继承不会显着影响合同使用的定性趋势。
2014-02-26 cs.SE
Contract-Based Specification Refinement and Repair for Mission Planning
UC Berkeley(加州大学伯克利分校);University of Southern California(南加州大学)
我们解决的问题,建模,精炼和修复正式规格的机器人任务使用假设保证合同。我们将展示如何在不同的抽象层次上对任务规范进行建模,并使用一个预实现规范库来实现它们。假设使用库中的组件无法满足规范。在这种情况下,我们计算一个代理,以获得使用库中的元素生成的规范的最佳近似值。之后,我们提出了一个系统的方法,要么1)搜索和完善的“缺失部分”的规范,图书馆不能满足或2)修复当前的规范,使现有的图书馆可以完善it.Our搜索和修复任务需求的方法利用商,分离,合成和合并合同之间的操作。
2022-11-21 cs.FL cs.RO cs.SE
Developing a Compiler for EROP -- A Language for the Specification of Smart Contracts, An Experience Report
智能合约是标准纸质合约的翻译,可以由合约管理系统强制执行。在高度抽象的层面上,合同只是一份描述签字各方在不同情况下如何行事的文件;然而,将典型的纸质合同翻译成电子合同既费时又困难。要求一种语言能够用简单的短语和定义抓住合同的核心,这是多年来研究的重点。EROP(事件、权利、义务、禁止)是一种契约规约语言,它将契约分解为事件、权利、义务和禁止的集合。
2023-03-02 cs.DC cs.PL cs.SE
Smart Contract Design Meets State Machine Synthesis: Case Studies
现代区块链系统支持创建智能合约-在区块链上托管和执行的有状态程序。智能合约持有和转移大量数字货币,这使它们成为安全攻击的诱人目标。事实证明,部署到公共账本的许多合同都存在安全漏洞。此外,区块链系统的设计不允许智能合约的代码在部署到系统后进行更改。因此,在部署之前确保智能合约的正确性非常重要。形式化验证被广泛用于检查智能合约相对于给定规范的正确性。在这项工作中,我们考虑程序合成技术,其中的规范是用来生成正确的建设计划。我们专注于一个特殊的情况下,程序合成程序建模与有限状态机(FSM)。我们展示了如何将FSM合成应用于自动智能合约生成的问题。概述了智能合约的几个案例研究:众筹平台,盲拍卖和许可证合同。对于每个案例研究,我们使用线性时序逻辑(LTL)中的一组公式指定相应的智能合约,并使用此规范和测试场景来合成该合约的FSM模型。这些模型随后用于生成可直接用于区块链系统的可执行Solidity代码。
2019-06-07 cs.SE
Validity-Guided Synthesis of Reactive Systems from Assume-Guarantee Contracts
反应系统的自动综合规范已经研究了几十年的主题。近年来,人们提出了多种方法,将反应系统的综合从建议性规范扩展到丰富理论的规范。我们提出了一种新的,完全自动化的方法来程序合成,减少了问题,以决定一组forall存在的公式的有效性。在IC3/PDR的精神,我们的问题空间是递归细化,通过封锁不安全状态的区域,旨在发现一个不动点,描述安全的反应。如果找到了这样的不动点,我们就构造一个直接转换为实现的见证。我们在JKind模型检查器之上实现了该算法,并对使用Lustre规约语言编写的契约进行了测试。实验结果表明,新算法如何优于JKinds已经存在的合成过程的基础上k-归纳和解决健全的问题,在k-归纳的方法相对于无法实现的结果。
2018-03-21 cs.SE
Specification is Law: Safe Creation and Upgrade of Ethereum Smart Contracts
智能合约是“代码即法律”范式的基石:智能合约的代码无可争议地描述了其资产的管理方式--一旦创建,其代码通常是不可变的。Fakion智能合约提供了反对这种模式实用性的最重要证据;它们有很好的记录,并导致价值巨额资金的资产受到损害。为了解决这个问题,以太坊社区提出了(i)审计/分析智能合约的工具和流程,以及(ii)实现合约代码可变机制的设计模式。(i)和(ii)分别只部分解决了“代码即法律”范式提出的挑战。在本文中,我们结合要素(一)和(二)创建一个系统的框架,远离“代码是法律”,并产生了一个新的“规范是法律”的范式。它允许创建和升级合同,但只有当它们满足相应的正式规范时。该框架以\emph{a trusted deployer}为中心:一个正式验证和强制执行此一致性概念的链下服务。我们已经建立了这个框架的原型,并研究了它对实现两个广泛使用的以太坊标准的合同的适用性:ERC 20令牌标准和ERC 1155多令牌标准,结果令人鼓舞。
2022-05-16 cs.LO cs.SE
Path-Based Function Embedding and its Application to Specification Mining
识别程序元素之间的关系对于程序理解、调试和分析是有用的。其中一种关系是同义关系。函数同义词是在代码中扮演类似角色的函数,例如为不同设备驱动程序执行初始化的函数,或实现不同密钥加密方案的函数。函数同义词在语义上不一定等同,在语法上也可能不同;因此,不能使用识别代码克隆或功能等同的方法来识别它们。本文介绍了func 2 vec,一个算法,每个函数映射到一个向量空间中的向量,使功能同义词分组在一起。我们计算的函数嵌入训练神经网络的随机行走产生的句子编码的程序作为一个标记的下推系统(L-PDS)。我们证明,func 2 vec是有效的识别功能同义词在Linux内核中。此外,我们将展示函数同义词如何在Linux文件系统和驱动程序中实现高度支持的挖掘错误处理规范。
2018-02-25 cs.SE
Formal Specification and Verification of Solidity Contracts with Events
Solidity语言中的事件提供了去中心化应用程序的链上服务与这些服务的用户之间的通信方式。事件通常被用作从用户的角度来看相关的合约执行的抽象。因此,用户必须能够理解所发出事件的含义并信任其有效性。本文提出了一种源代码级的方法,用于Solidity合同的形式化规范和验证,主要关注事件。我们的方法允许根据事件跟踪的链上数据来指定事件,以及定义区块链状态与事件提供的抽象视图之间的对应关系的谓词。该方法是在solc验证,Solidity的模块化验证,我们证明了它的适用性与各种例子。
2020-05-20 cs.LO cs.PL cs.SE
SLICE: Specification-Level Isolation of Contract Enforcement
Yonsei University(延世大学)
SLICE是一个分阶段的代码生成框架,通过规约结构化、函数体生成、契约断言生成三个阶段,在ContractEval数据集上使代码满足功能需求与输入契约的性能平均提升6.58%。
2026-08-25 cs.PL cs.SE
On Verifying Resource Contracts using Code Contracts
在本文中,我们提出了一种方法来检查使用现成的静态分析器的资源消耗合同。我们提出了一组注释,以支持资源使用规范,特别是,动态内存消耗约束。由于动态内存可以由内存管理器回收,因此该资源的消耗不是单调的。规约语言可以以模块化方式表达存储器消耗和生存期属性。我们通过扩展代码契约的规约语言开发了一个概念验证的实现。为了验证这些注释的正确性,我们依赖于代码契约静态验证器和指向分析。我们还简要讨论了我们的方法来处理非线性表达式的可能扩展。
2014-01-06 cs.PL cs.SE
Verification of PETSc with CIVL using LLM-generated ACSL contracts and deterministic driver generation
本文提出利用LLM生成ACSL契约和确定性驱动程序,结合CIVL验证器,对PETSc数值库函数进行形式验证,并成功发现MatAYPX中自1997年存在的未发现错误。
2026-09-29 cs.CL cs.MS cs.PL
Rigorous Description Of Design Components Functionality: An Approach Based Contract
当前的软件构件模型使得基于构件的软件工程成为现实。然而,这些模型是有限的,在这个意义上说,他们的支持特性/规格的设计组件主要处理语法问题。为了避免组件的错配和误用,需要更全面的软件组件规范。在本文中,我们提出了一种基于契约的方法来分析和建模的两个方面(功能和非功能)属性的设计组件和他们的组合,以检测和纠正组合错误。这种方法允许表征设计组件的结构,界面和行为方面。为了实现这一点,我们提出了一种模式契约语言,它捕获了与一系列模式相关的结构和行为需求,以及作为结果得到保证的系统属性。此外,我们建议使用的LOTOS语言作为正式这些方面的ADL。我们通过将其应用于标准设计来说明该方法
2014-02-13 cs.SE
Teaching Design by Contract using Snap!
随着演绎程序验证研究的进展,新的工具和技术已成为可用于支持契约式设计推理的非平凡程序编写的广泛使用的程序设计语言。然而,演绎程序验证仍然是专家的活动,在编程,规范和验证方面有丰富的经验。我们想改变这种情况,通过开发程序验证技术,可用于更大的观众。在本文中,我们介绍了我们如何开发原型程序验证支持Snap!啪!是一种可视化的程序设计语言,特别针对高中生。我们以类似的视觉风格添加了规约语言构造,旨在使预期的语义从规范构造的外观和感觉中变得清晰。我们提供Snap的静态和动态验证支持!程序.特别注意错误消息,使其尽可能直观。
2021-07-12 cs.PL cs.SE
Component Matching as a Graph Matching Problem
本文研究业务架构与应用架构的链接问题,提出基于图匹配的自动化组件契约匹配方法,替代传统手动流程,利用rCOS和范畴论实现IT与业务组件的统一规约与匹配。
2024-07-24 cs.SE
Smart Contracts Formal Verification: A Systematic Literature Review
本文系统综述智能合约形式化验证相关文献,梳理规格说明、验证工具与实验,并提出基于描述逻辑的替代验证方法。
2025-10-15 cs.LO cs.SE
SmartEval: A Benchmark for Evaluating LLM-Generated Smart Contracts from Natural Language Specifications
Columbia University(哥伦比亚大学);IBM T.J. Watson Research Center(IBM T.J. Watson研究院)
SmartEval通过9000个生成合约与专家编写的真实实现,结合五维评估标准,验证LLM生成智能合约的质量,并发现逻辑遗漏、状态转换错误等典型故障模式,展示了生成合约在综合评分上比真实实现高出8.29分。
2026-05-10 cs.AI cs.CE cs.LG
Conformance Verification of Normative Specifications using C-O Diagrams
C-O图作为一种直观表示规范性文本和电子合同的手段而被引入,其中可以表示不同签署人的义务、许可和禁止,以及在不履行其义务和禁止的情况下的处罚。在这样的图中,我们也能够表示绝对和相对的时序约束。在本文中,我们考虑一个正式的语义的C-O图的网络的时间自动机的基础上,我们提出了几个关系,检查合同的一致性的可实现性,分析是否实现满足其合同上定义的要求,并比较几个实现使用的执行权限作为标准。
2012-09-11 cs.FL cs.SE
SpecPylot: Python Specification Generation using Large Language Models
Texas State University(德克萨斯州立大学)
SpecPylot利用大语言模型生成Python程序的可执行规范,通过交叉hair符号执行验证,生成合同并支持覆盖率驱动的pytest stubs,但受限于符号探索的界限和LLM行为差异。
2026-04-17 cs.AI cs.ET cs.SE
MetAcsl: Specification and Verification of High-Level Properties
模块化演绎验证是一种强大的技术,能够证明程序中的每个函数都满足其约定。然而,功能契约没有提供一个全局视图,即整个软件模块的哪些高级别(例如,安全相关的属性)实际上是建立的,这使得评估它们非常困难。为了解决这个问题,本文提出了一种新的规格说明机制,称为元属性。元属性可以被看作是为一组函数指定的增强的全局不变式,并且能够表达变量值的谓词,以及与内存相关的条件(例如分离)和读或写访问约束。我们还提出了一种自动转换技术,将元属性转换为通常的合同和断言,可以证明传统的演绎验证工具。这种技术已被实现为一个名为MetAcsl的框架-C插件,并成功地应用于指定和证明安全和安全相关的元属性在两个说明性的案例研究。
2019-02-25 cs.CR cs.SE
Agent Behavioral Contracts: Formal Specification and Runtime Enforcement for Reliable Autonomous AI Agents
Accenture(埃森哲)
本文提出智能体行为契约框架,通过形式化规范和运行时执行,提升自主AI智能体的可靠性与行为可控性。
2026-02-25 cs.AI cs.MA cs.SE
HighGuard: Cross-Chain Business Logic Monitoring of Smart Contracts
针对智能合约逻辑缺陷被利用致损失问题,提出HighGuard工具,以动态条件响应图模型为规范验证合约执行,支持跨链检测,无需插桩或额外gas,无假阳性,经54个漏洞利用评估证实其有效性。
2025-02-14 cs.CR cs.SE
Chat2Code: Towards conversational concrete syntax for model specification and code generation, the case of smart contracts
基于模型驱动工程(MDE)框架的自动代码生成工具的革命性潜力尚未实现。除了能够帮助软件专业人员编写更准确、可重用的代码之外,它们还可以使编程对一个全新的非技术用户群体更容易访问。然而,非技术用户接受这些工具的速度很慢。这可能是因为它们的具体语法通常是在文本或图形界面的操作之后模式化的。这些接口是通用的,但用户需要比想象中更广泛、更精确和更详细的知识,才能将其作为具体的语法使用。对话界面(聊天机器人)为非技术用户提供了一种更容易访问的方式来生成代码。在本文中,我们讨论了在模型驱动工程(MDE)框架中集成会话代理的基本挑战,然后转向一个特定的应用:由非技术用户基于会话语法自动生成多种语言的智能合约代码。我们演示了如何做到这一点,并通过进行用户体验调查来评估我们的方法,以评估聊天机器人框架的可用性和功能。
2021-12-21 cs.HC cs.PL cs.SE
Security Is Relative: Training-Free Vulnerability Detection via Multi-Agent Behavioral Contract Synthesis
College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics(南京航空航天大学计算机科学与技术学院)
本文提出Phoenix框架,通过行为合同合成解决漏洞检测中的语义模糊问题,实现更高准确率的漏洞识别,使用开源模型达到更小规模和更优性能。
2026-04-21 cs.CR cs.SE
Correct-by-Construction Design of Contextual Robotic Missions Using Contracts
UC Berkeley(加州大学伯克利分校);Chalmers University of Technology(查尔姆斯理工大学);University of Gothenburg(哥德堡大学);Gran Sasso Science Institute (GSSI)(格兰萨索科学研究所)
本文提出一种基于假设-保证契约的组合框架,通过分层模块化方式将上下文机器人任务分解为子任务并综合为独立控制器,解决了动态切换子任务控制器时在预定义条件下确保正确性的问题。
2023-12-29 cs.RO cs.SE
Partial Contracts Suffice: Sound, LLM-Inferred Regression Verification
The University of Manchester(曼彻斯特大学)
研究软件回归验证难题,提出基于契约的工具,探讨部分契约的充分性,通过强化契约、自动推断等方法,实现可靠验证,在多方面取得良好效果,证明安全保留条件等价性。
2026-07-14 cs.AI cs.SE
Contract Usage and Evolution in Android Mobile Applications
本文首次对Android应用中契约的使用与演化进行大规模实证研究,分析2,390个F-Droid应用,揭示契约采用率低、注解方式最流行、方法增长快于契约增长以及规范稳定性不足等问题,并提出标准化库与检测工具的建议。
2024-01-25 cs.LO cs.PL cs.SE
Improving Dynamic Specification Inference with LLM-Generated Counterexamples
University of Rio Cuarto(里奥夸尔托大学);Complutense University of Madrid(马德里康普顿斯大学);University of Buenos Aires(布宜诺斯艾利斯大学);Luxembourg Institute of Science and Technology(卢森堡科学与技术研究所);National Council for Scientific and Technical Research (CONICET)(国家科学研究和技术委员会);Guangdong Technion-Israel Institute of Technology(广东以色列理工学院)
本文利用大语言模型生成反例以提高动态规范推断的精度,实验表明可减少无效断言并提升精度7%。
2026-04-12 cs.SE
Beyond Postconditions: Can Large Language Models infer Formal Contracts for Automatic Software Verification?
Carl von Ossietzky Universität Oldenburg(奥尔登堡卡尔·冯·奥西茨基大学)
本文提出NL2Contract任务,利用大型语言模型将自然语言转换为形式化功能契约(含前置与后置条件),实验证明其生成契约健全且能减少验证误报,并有效捕获真实错误。
2025-10-14 cs.AI cs.PL cs.SE
A Compositional Approach to Verifying Modular Robotic Systems
University of Nottingham(诺丁汉大学);University of Manchester(曼彻斯特大学);University of Modena and Reggio Emilia(摩德纳和雷焦艾米利亚大学);University of Aberdeen(阿伯丁大学)
研究如何验证模块化机器人系统,采用组合方法,用一阶逻辑假设保证契约指定节点,引入推理规则,提出RCL语言,通过工具Vanda翻译成可执行监视器,经实例验证该方法有效。
2026-08-03 cs.LO cs.SE
Spec-Driven Development:From Code to Contract in the Age of AI Coding Assistants
本文探讨了在AI编码助手时代基于规范的开发方法,通过规范优先的哲学和不同领域的案例研究,提供了一种新的软件开发思路和实践框架。
2026-01-30 cs.AI cs.SE
Compositional Specifications for ioco Testing
基于模型的测试是一种很有前途的黑盒软件和硬件测试技术,其中测试用例是从高层规格自动生成的。如今,系统通常由多个相互作用的组件组成,由于其复杂性,测试在设计过程中占了相当大的一部分工作和成本。利用系统规格说明的组合结构可以大大减少基于模型的测试工作。此外,通过测试系统的各个组件来推断系统的属性,可以让设计人员减少集成测试的数量。本文研究了IOCO-检验理论的合成性质。我们提出了一种新的方法来组成和隐藏操作,基于合同的设计和接口理论的启发。这些操作保留在合成和隐藏下兼容的行为,并删除不兼容的行为。由此产生的规范特征的输入序列的组件的单元测试是足以推断组件集成的正确性,而不需要进一步的测试。我们提供了一种方法,使用这些结果,以尽量减少集成测试的努力,但也发现潜在的弱点规范。虽然我们专注于异步模型和IOCO一致性关系,但由此产生的方法可以应用于更广泛的系统类别。
2019-04-15 cs.SE
Secret MCP: Evidence-Bounded and Context-Isolated Design Specification Generation from Web Screenshots
Secret MCP是开源本地系统,可从网页截图生成可审计的设计规范,通过分离各环节实现证据约束与上下文隔离,经测试满足编排不变性和语法合约合规性。
2026-08-27 cs.SE
Capturing Smart Contract Design with DCR Graphs
针对主流智能合约语言缺乏显式角色、动作依赖和时间概念导致设计与分析困难的问题,提出利用 DCR 图作为形式化工具,显式且可视化地建模业务流程设计模式,从而促进正确可靠智能合约的开发与分析。
2023-09-16 cs.CY cs.FL cs.SE
Architecture as Capability Equalizer for Coding Agents
Siemens Digital Industries Software(西门子数字工业软件)
该研究对比5种架构规范格式对6种LLM编码智能体的代码生成质量影响,发现结构化格式可作为能力均衡器,显著提升弱模型性能,对成本优化部署价值最大。
2026-08-25 cs.AI cs.CL cs.SE
Correctness Witnesses with Function Contracts
本文针对软件验证见证格式2.0无法表达函数契约的局限,提出扩展以支持ACSL风格的前置和后置条件,从而增强工具间信息交换能力。
2025-01-21 cs.PL cs.SE
Building Executable Secure Design Models for Smart Contracts with Formal Methods
智能合约之所以有吸引力,是因为它们是各方之间的自动执行的商业协议,具有预定义和不可变的义务和权利。然而,与所有软件一样,智能合约可能因设计缺陷而包含漏洞,其中一方可能会利用这些漏洞来欺骗其他方。在本文中,我们展示了一种使用形式化方法为智能合约构建安全设计模型的系统方法。为了构建安全模型,我们首先将参与方的行为建模为状态机,然后,我们对预定义的合同义务和权利进行建模,这些合同规定了状态机之间的交互以实现业务目标。在此之后,我们在TLA+(动作的时间逻辑)中说明了可执行的安全模型设计模式,以在设计层面上针对状态机和义务和权利方面的众所周知的智能合约漏洞。这些漏洞存在于以太坊合约中,包括Call to the unknown、Gasless send、Reentrancy、Lost in the transfer和Unpredictable state。由此产生的TLA+规范称为安全模型。我们说明了我们的方法来检测在设计层面上使用房地产合同的例子的漏洞。
2019-12-09 cs.SC cs.SE