首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
Safe and infinite resource scheduling using energy timed automata 基于能量时间自动机的安全无限资源调度
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-07-04 DOI: 10.1016/j.scico.2025.103358
Pieter J.L. Cuijpers , Jonas Hansen , Kim G. Larsen
We study the existence of infinite and safe schedules for resource-dependent real-time systems, in the setting of multiple continuous resources. Specifically, we explore the multi-variable extension of Energy Timed Automata, where variables are bounded by polyhedra in Rn. We ask the question of whether there exist infinite runs satisfying such boundary constraints and show how schedules can be synthesized by characterising these runs as limit sets using quantifier elimination for linear real arithmetic. We show that for linear limit sets, it is possible to characterise such infinite runs.
Additionally, we relate this to an earlier decidability result for single-variable Energy Timed Automata that are flat and segmented, and show constructively that there exist flat and segmented multi-variable Energy Timed Automata that give rise to non-linear limit sets.
Lastly, we solidify our framework and method with a case study. Specifically, a multi-agent extension of an industrial case concerned with oil tanks, originally provided by the HYDAC company.
研究了具有多个连续资源的资源依赖实时系统的无穷安全调度的存在性。具体来说,我们探讨了能量时间自动机的多变量扩展,其中变量由Rn中的多面体限定。我们提出了是否存在满足这种边界约束的无限运行的问题,并展示了如何利用线性实数算法的量词消去将这些运行表征为极限集来合成调度。我们证明了对于线性极限集,有可能描述这样的无限运行。此外,我们将此与先前关于平面分段单变量能量时间自动机的可判定性结果联系起来,并建设性地表明存在平面和分段多变量能量时间自动机,它们会产生非线性极限集。最后,我们通过一个案例研究来巩固我们的框架和方法。具体来说,是一个涉及油罐的工业案例的多代理扩展,最初由HYDAC公司提供。
{"title":"Safe and infinite resource scheduling using energy timed automata","authors":"Pieter J.L. Cuijpers ,&nbsp;Jonas Hansen ,&nbsp;Kim G. Larsen","doi":"10.1016/j.scico.2025.103358","DOIUrl":"10.1016/j.scico.2025.103358","url":null,"abstract":"<div><div>We study the existence of infinite and safe schedules for resource-dependent real-time systems, in the setting of multiple continuous resources. Specifically, we explore the multi-variable extension of Energy Timed Automata, where variables are bounded by polyhedra in <span><math><msup><mrow><mi>R</mi></mrow><mrow><mi>n</mi></mrow></msup></math></span>. We ask the question of whether there exist infinite runs satisfying such boundary constraints and show how schedules can be synthesized by characterising these runs as limit sets using quantifier elimination for linear real arithmetic. We show that for linear limit sets, it is possible to characterise such infinite runs.</div><div>Additionally, we relate this to an earlier decidability result for single-variable Energy Timed Automata that are flat and segmented, and show constructively that there exist flat and segmented multi-variable Energy Timed Automata that give rise to non-linear limit sets.</div><div>Lastly, we solidify our framework and method with a case study. Specifically, a multi-agent extension of an industrial case concerned with oil tanks, originally provided by the HYDAC company.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103358"},"PeriodicalIF":1.5,"publicationDate":"2025-07-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144571313","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Random test generators demystified: Differences and potential for compiler reliability 揭秘随机测试生成器:编译器可靠性的差异和潜力
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-07-03 DOI: 10.1016/j.scico.2025.103359
Yang Wang, Zeyu Lu, Beining Wu, Yibiao Yang, Hongmin Lu, Yuming Zhou
Compiler testing requires diverse programs as inputs. Various random program generators that can produce programs from scratch have been developed for this purpose. However, there is a gap in understanding (1) the differences among the generated programs and (2) how to make better use of these generators. To fill this gap, we selected five C random program generators and conducted the first comprehensive empirical analysis. For generated programs, our study focuses on three key areas: comparing the variations in features from multiple perspectives, analyzing the impact of compiling these programs on open-source compilers, and exploring their application potential in non-traditional testing scenarios. Programs from different generators show distinctive differences in various program features. Each has unique abilities to increase coverage of specific compiler components. Moreover, they can spot inconsistencies in the coverage statistics provided by different compilers, indicating promising application potential. Our study demonstrates that existing generators involve trade-offs in their design, making it challenging for any single implementation to balance efficiency, usability, and diversity for all scenarios. This motivates us to both maximize the potential of current generators and innovate to create more high-quality test programs for modern compiler quality assurance.
编译器测试需要不同的程序作为输入。为了这个目的,已经开发了各种可以从头开始生成程序的随机程序生成器。然而,在理解(1)生成的程序之间的差异和(2)如何更好地利用这些生成器方面存在差距。为了填补这一空白,我们选择了五个C随机程序生成器,并进行了第一次全面的实证分析。对于生成的程序,我们的研究主要集中在三个关键领域:从多个角度比较特征的变化,分析编译这些程序对开源编译器的影响,以及探索它们在非传统测试场景中的应用潜力。来自不同生成器的程序在各种程序特性上表现出明显的差异。每个都有独特的能力来增加特定编译器组件的覆盖率。此外,它们还可以发现不同编译器提供的覆盖率统计数据中的不一致之处,从而表明应用程序的潜力。我们的研究表明,现有的生成器在其设计中涉及权衡,使得任何单一实现都难以平衡所有场景的效率,可用性和多样性。这促使我们最大化当前生成器的潜力,并为现代编译器质量保证创造更多高质量的测试程序。
{"title":"Random test generators demystified: Differences and potential for compiler reliability","authors":"Yang Wang,&nbsp;Zeyu Lu,&nbsp;Beining Wu,&nbsp;Yibiao Yang,&nbsp;Hongmin Lu,&nbsp;Yuming Zhou","doi":"10.1016/j.scico.2025.103359","DOIUrl":"10.1016/j.scico.2025.103359","url":null,"abstract":"<div><div>Compiler testing requires diverse programs as inputs. Various random program generators that can produce programs from scratch have been developed for this purpose. However, there is a gap in understanding (1) the differences among the generated programs and (2) how to make better use of these generators. To fill this gap, we selected five C random program generators and conducted the first comprehensive empirical analysis. For generated programs, our study focuses on three key areas: comparing the variations in features from multiple perspectives, analyzing the impact of compiling these programs on open-source compilers, and exploring their application potential in non-traditional testing scenarios. Programs from different generators show distinctive differences in various program features. Each has unique abilities to increase coverage of specific compiler components. Moreover, they can spot inconsistencies in the coverage statistics provided by different compilers, indicating promising application potential. Our study demonstrates that existing generators involve trade-offs in their design, making it challenging for any single implementation to balance efficiency, usability, and diversity for all scenarios. This motivates us to both maximize the potential of current generators and innovate to create more high-quality test programs for modern compiler quality assurance.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103359"},"PeriodicalIF":1.5,"publicationDate":"2025-07-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144563540","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Low-code design of collective systems with ScaFi-Blocks 基于ScaFi-Blocks的集合系统的低代码设计
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-30 DOI: 10.1016/j.scico.2025.103356
Gianluca Aguzzi, Matteo Cerioni, Mirko Viroli
ScaFi-Blocks is a visual, low-code programming environment for designing and implementing swarm algorithms. Built on the ScaFi aggregate computing framework and the Blockly visual programming library, ScaFi-Blocks enables users to visually compose algorithms using intuitive building blocks, abstracting away the complexities of traditional swarm programming frameworks. This approach simplifies the development of collective behaviours for a wide range of swarm systems, including robot swarms, IoT device ensembles, and sensor networks, fostering broader accessibility and innovation within the field. This contribution bridges the gap between visual programming and textual code, lowering the barrier to entry for non-experts while promoting a deeper understanding of aggregate computing principles.
ScaFi-Blocks是用于设计和实现群算法的可视化、低代码编程环境。基于ScaFi聚合计算框架和block可视化编程库,ScaFi- blocks使用户能够使用直观的构建块可视化地组合算法,抽象掉传统群编程框架的复杂性。这种方法简化了广泛的群体系统的集体行为的开发,包括机器人群体、物联网设备集成和传感器网络,促进了该领域更广泛的可访问性和创新。这一贡献弥合了可视化编程和文本代码之间的差距,降低了非专业人员的入门门槛,同时促进了对聚合计算原理的更深入理解。
{"title":"Low-code design of collective systems with ScaFi-Blocks","authors":"Gianluca Aguzzi,&nbsp;Matteo Cerioni,&nbsp;Mirko Viroli","doi":"10.1016/j.scico.2025.103356","DOIUrl":"10.1016/j.scico.2025.103356","url":null,"abstract":"<div><div>ScaFi-Blocks is a visual, low-code programming environment for designing and implementing swarm algorithms. Built on the ScaFi aggregate computing framework and the Blockly visual programming library, ScaFi-Blocks enables users to visually compose algorithms using intuitive building blocks, abstracting away the complexities of traditional swarm programming frameworks. This approach simplifies the development of collective behaviours for a wide range of swarm systems, including robot swarms, IoT device ensembles, and sensor networks, fostering broader accessibility and innovation within the field. This contribution bridges the gap between visual programming and textual code, lowering the barrier to entry for non-experts while promoting a deeper understanding of aggregate computing principles.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103356"},"PeriodicalIF":1.5,"publicationDate":"2025-06-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144518309","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
PN2CCS: A tool to encode Petri nets into calculus of communicating systems PN2CCS:一个将Petri网编码为通信系统微积分的工具
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-27 DOI: 10.1016/j.scico.2025.103355
Benjamin Bogø , Andrea Burattin , Alceste Scalas
PN2CCS is a software tool to encode Petri nets (PN) into the Calculus of Communication Systems (CCS). Its purpose is to allow Petri nets generated by most process mining algorithms (for instance, the α-miner) to be encoded into CCS, with the longer term goal of enabling the application tools and techniques developed for process calculi to the realm of process mining. PN2CCS is written in JavaScript and runs in modern web browsers with an interactive graphical user interface. The interface allows users to input a Petri net either by drawing it in the tool or importing a Petri net from a common file format for Petri nets. The tool then classifies the input Petri net and encodes it into CCS. The tool allows to encode a slight generalization of free-choice (workflow) nets as well as Petri nets directly expressible in CCS.
PN2CCS是一个将Petri网(PN)编码到通信系统演算(CCS)中的软件工具。它的目的是允许大多数过程挖掘算法(例如,α-miner)生成的Petri网被编码到CCS中,其长期目标是使为过程演算开发的应用工具和技术能够进入过程挖掘领域。PN2CCS是用JavaScript编写的,并运行在具有交互式图形用户界面的现代web浏览器中。该界面允许用户通过在工具中绘制或从Petri网的通用文件格式导入Petri网来输入Petri网。然后,该工具对输入的Petri网进行分类,并将其编码为CCS。该工具允许对自由选择(工作流)网络以及可直接在CCS中表达的Petri网进行编码。
{"title":"PN2CCS: A tool to encode Petri nets into calculus of communicating systems","authors":"Benjamin Bogø ,&nbsp;Andrea Burattin ,&nbsp;Alceste Scalas","doi":"10.1016/j.scico.2025.103355","DOIUrl":"10.1016/j.scico.2025.103355","url":null,"abstract":"<div><div>PN2CCS is a software tool to encode Petri nets (PN) into the Calculus of Communication Systems (CCS). Its purpose is to allow Petri nets generated by most process mining algorithms (for instance, the <em>α</em>-miner) to be encoded into CCS, with the longer term goal of enabling the application tools and techniques developed for process calculi to the realm of process mining. PN2CCS is written in JavaScript and runs in modern web browsers with an interactive graphical user interface. The interface allows users to input a Petri net either by drawing it in the tool or importing a Petri net from a common file format for Petri nets. The tool then classifies the input Petri net and encodes it into CCS. The tool allows to encode a slight generalization of free-choice (workflow) nets as well as Petri nets directly expressible in CCS.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103355"},"PeriodicalIF":1.5,"publicationDate":"2025-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144579430","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Fossil 2.0: Design, usage and impact of a software tool for verification and control of dynamical models 化石2.0:用于验证和控制动态模型的软件工具的设计、使用和影响
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-23 DOI: 10.1016/j.scico.2025.103354
Alec Edwards , Andrea Peruffo , Alessandro Abate
This paper introduces Fossil 2.0, an advanced software tool designed for synthesizing certificates such as Lyapunov and barrier functions for dynamical systems represented by ordinary differential equations and difference equations. Fossil 2.0 features a range of significant enhancements, including improved user interfaces, an expanded library of certificates, controller synthesis capabilities, and an extensible architecture. These advancements are detailed as part of this paper. The core of Fossil is a counterexample-guided inductive synthesis (CEGIS) framework that ensures soundness. The tool employs neural networks as templates to generate candidate functions, which are rigorously validated using a satisfiability modulo theories (SMT) solver. Key improvements over the previous release include support for a broader class of certificates, integration of control law synthesis, and compatibility with discrete-time models.
本文介绍了Fossil 2.0,这是一个先进的软件工具,用于合成由常微分方程和差分方程表示的动力系统的Lyapunov和势垒函数等证书。Fossil 2.0提供了一系列重要的增强功能,包括改进的用户界面、扩展的证书库、控制器合成功能和可扩展的体系结构。这些进步是本文的一部分。Fossil的核心是一个反例引导的归纳合成(CEGIS)框架,以确保其合理性。该工具采用神经网络作为模板来生成候选函数,并使用可满足模理论(SMT)求解器对候选函数进行严格验证。与上一个版本相比,主要的改进包括支持更广泛的证书类别、控制律综合的集成以及与离散时间模型的兼容性。
{"title":"Fossil 2.0: Design, usage and impact of a software tool for verification and control of dynamical models","authors":"Alec Edwards ,&nbsp;Andrea Peruffo ,&nbsp;Alessandro Abate","doi":"10.1016/j.scico.2025.103354","DOIUrl":"10.1016/j.scico.2025.103354","url":null,"abstract":"<div><div>This paper introduces <span>Fossil</span> 2.0, an advanced software tool designed for synthesizing certificates such as Lyapunov and barrier functions for dynamical systems represented by ordinary differential equations and difference equations. <span>Fossil</span> 2.0 features a range of significant enhancements, including improved user interfaces, an expanded library of certificates, controller synthesis capabilities, and an extensible architecture. These advancements are detailed as part of this paper. The core of <span>Fossil</span> is a counterexample-guided inductive synthesis (CEGIS) framework that ensures soundness. The tool employs neural networks as templates to generate candidate functions, which are rigorously validated using a satisfiability modulo theories (SMT) solver. Key improvements over the previous release include support for a broader class of certificates, integration of control law synthesis, and compatibility with discrete-time models.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103354"},"PeriodicalIF":1.5,"publicationDate":"2025-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144472132","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An adaptive pairwise testing algorithm based on deep reinforcement learning 一种基于深度强化学习的自适应成对测试算法
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-23 DOI: 10.1016/j.scico.2025.103353
Linlin Wen , Chengying Mao , Dave Towey , Jifu Chen
Pairwise testing is an important branch of combinatorial testing that focuses on finding a minimum test suite that satisfies pairwise coverage. However, most existing methods fail to achieve a good balance between exploration and exploitation capabilities when searching for the test suite, or may not fully utilize the information related to the already-generated test cases: This can lead to unsatisfactory performance in combination coverage. To address these limitations, we propose an adaptive pairwise testing framework based on deep reinforcement learning, APT-DRL. Using this, a deep reinforcement learning model for pairwise testing based on the Proximal Policy Optimization (PPO) method is developed. We design the pairwise coverage vector as the state space, and use neural networks to solve the search problem in this huge state space. To reduce the size of the Markov decision space, we also design a masking technique to avoid repeated generation of actions (test cases) that have already been used. We conducted experiments using APT-DRL and eight other baseline algorithms (representing three categories): The results show that APT-DRL, as a novel pairwise testing method, significantly outperforms four random-based pairwise testing methods (RT, ARTsum, FSCS-HD, and FSCS-SD); is comparable to, or surpasses, the two heuristic algorithms (IPOG and AETG); and has better test-suite-generation efficiency and superior effectiveness than the two swarm-intelligence-based algorithms (GSTG and DPSO).
成对测试是组合测试的一个重要分支,其重点是寻找满足成对覆盖的最小测试套件。然而,当搜索测试套件时,大多数现有的方法不能很好地平衡探索和开发能力,或者不能充分利用与已经生成的测试用例相关的信息:这可能导致组合覆盖中的性能不令人满意。为了解决这些限制,我们提出了一种基于深度强化学习的自适应成对测试框架,APT-DRL。在此基础上,提出了一种基于近端策略优化(PPO)方法的深度强化学习两两测试模型。我们将两两覆盖向量设计为状态空间,并利用神经网络在这个巨大的状态空间中解决搜索问题。为了减小马尔可夫决策空间的大小,我们还设计了一种屏蔽技术,以避免重复生成已经使用过的操作(测试用例)。我们使用APT-DRL和其他8种基线算法(代表3个类别)进行了实验:结果表明,APT-DRL作为一种新型的两两检验方法,显著优于4种基于随机的两两检验方法(RT、ARTsum、FSCS-HD和FSCS-SD);与两种启发式算法(IPOG和AETG)相当或超过;与两种基于群体智能的算法(GSTG和DPSO)相比,具有更好的测试套件生成效率和更优的有效性。
{"title":"An adaptive pairwise testing algorithm based on deep reinforcement learning","authors":"Linlin Wen ,&nbsp;Chengying Mao ,&nbsp;Dave Towey ,&nbsp;Jifu Chen","doi":"10.1016/j.scico.2025.103353","DOIUrl":"10.1016/j.scico.2025.103353","url":null,"abstract":"<div><div>Pairwise testing is an important branch of combinatorial testing that focuses on finding a minimum test suite that satisfies pairwise coverage. However, most existing methods fail to achieve a good balance between exploration and exploitation capabilities when searching for the test suite, or may not fully utilize the information related to the already-generated test cases: This can lead to unsatisfactory performance in combination coverage. To address these limitations, we propose an adaptive pairwise testing framework based on deep reinforcement learning, APT-DRL. Using this, a deep reinforcement learning model for pairwise testing based on the Proximal Policy Optimization (PPO) method is developed. We design the pairwise coverage vector as the state space, and use neural networks to solve the search problem in this huge state space. To reduce the size of the Markov decision space, we also design a masking technique to avoid repeated generation of actions (test cases) that have already been used. We conducted experiments using APT-DRL and eight other baseline algorithms (representing three categories): The results show that APT-DRL, as a novel pairwise testing method, significantly outperforms four random-based pairwise testing methods (RT, ARTsum, FSCS-HD, and FSCS-SD); is comparable to, or surpasses, the two heuristic algorithms (IPOG and AETG); and has better test-suite-generation efficiency and superior effectiveness than the two swarm-intelligence-based algorithms (GSTG and DPSO).</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103353"},"PeriodicalIF":1.5,"publicationDate":"2025-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144490705","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
DEScMaker: A tool for automated code generation for discrete event systems controllers 为离散事件系统控制器自动生成代码的工具
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-16 DOI: 10.1016/j.scico.2025.103350
Tiago Possato , João H. Valentini , Luiz F.P. Southier , Marco A.C. Barbosa , Marcelo Teixeira
The Supervisory Control Theory (SCT ) is a formal approach that allows computing correct-by-construction controllers for Discrete Event Systems (DESs ), having Finite State Machines (FSMs ) as its basic building block. Usually, tools that implement SCT operations over FSMs have resources for the design, processing, simulation, synthesis, and verification, but not for implementation, including code generation resources. Without them, designers still must manually code the control solution, shedding the practical appeal of SCT. This paper claims that SCT can more smoothly meet automated implementation via the proposed DEScMaker tool. It receives an FSM representing the output of the SCT synthesis and converts it into C or Python code that preserves the idea of event controllability, maximum permissiveness within a set of specifications, and non-blockingness. The tool handles both centralized and modular architectures, and its output is a generic implementation structured in layers, with supervisors, an event handler, and the interface between software and hardware, which requires minimal effort to be customized for each target platform. Examples illustrate the approach and allow for quantifying its gains compared with empirical programming.
监督控制理论(SCT)是一种正式的方法,允许计算离散事件系统(DESs)的构造正确控制器,以有限状态机(FSMs)作为其基本构建块。通常,在fsm上实现SCT操作的工具有用于设计、处理、模拟、合成和验证的资源,但没有用于实现的资源,包括代码生成资源。没有它们,设计人员仍然必须手动编写控制解决方案,从而降低了SCT的实际吸引力。本文声称,通过提出的DEScMaker工具,SCT可以更顺利地实现自动化。它接收一个表示SCT合成输出的FSM,并将其转换为C或Python代码,这些代码保留了事件可控性、一组规范中的最大许可性和非阻塞性的思想。该工具可以处理集中式和模块化体系结构,其输出是分层结构的通用实现,具有管理器、事件处理程序以及软件和硬件之间的接口,这需要为每个目标平台定制最少的工作。示例说明了该方法,并允许与经验规划相比量化其收益。
{"title":"DEScMaker: A tool for automated code generation for discrete event systems controllers","authors":"Tiago Possato ,&nbsp;João H. Valentini ,&nbsp;Luiz F.P. Southier ,&nbsp;Marco A.C. Barbosa ,&nbsp;Marcelo Teixeira","doi":"10.1016/j.scico.2025.103350","DOIUrl":"10.1016/j.scico.2025.103350","url":null,"abstract":"<div><div>The <em>Supervisory Control Theory</em> (SCT ) is a formal approach that allows computing correct-by-construction controllers for <em>Discrete Event Systems</em> (DESs ), having <em>Finite State Machines</em> (FSMs ) as its basic building block. Usually, tools that implement SCT operations over FSMs have resources for the design, processing, simulation, synthesis, and verification, but not for implementation, including code generation resources. Without them, designers still must manually code the control solution, shedding the practical appeal of SCT. This paper claims that SCT can more smoothly meet automated implementation via the proposed <em>DEScMaker</em> tool. It receives an FSM representing the output of the SCT synthesis and converts it into <em>C</em> or <span><math><mi>P</mi><mi>y</mi><mi>t</mi><mi>h</mi><mi>o</mi><mi>n</mi></math></span> code that preserves the idea of event controllability, maximum permissiveness within a set of specifications, and non-blockingness. The tool handles both centralized and modular architectures, and its output is a generic implementation structured in layers, with supervisors, an event handler, and the interface between software and hardware, which requires minimal effort to be customized for each target platform. Examples illustrate the approach and allow for quantifying its gains compared with empirical programming.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103350"},"PeriodicalIF":1.5,"publicationDate":"2025-06-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144312701","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Auto-active verification of distributed systems and specification refinements with Why3-do 使用Why3-do对分布式系统和规范进行自动验证
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-13 DOI: 10.1016/j.scico.2025.103352
Cláudio Belo Lourenço , Jorge Sousa Pinto
In this paper, we introduce a novel approach for rigorously verifying safety properties of state machine specifications. Our method leverages an auto-active verifier and centers around the use of action functions annotated with contracts. These contracts facilitate inductive invariant checking, ensuring correctness during system execution. Our approach is further supported by the Why3-do library, which extends the Why3 tool's capabilities to verify concurrent and distributed algorithms using state machines.
Two distinctive features of Why3-do are: (i) it supports specification refinement through refinement mappings, enabling hierarchical reasoning about distributed algorithms; and (ii) it can be easily extended to make verifying specific classes of systems more convenient. In particular, the library contains models allowing for message-passing algorithms to be described with programmed handlers, assuming different network semantics.
A gallery of examples, all verified with Why3 using SMT solvers as proof tools, is also described in the paper. It contains several auto-actively verified concurrent and distributed algorithms, including the Paxos consensus algorithm.
本文介绍了一种严格验证状态机规范安全特性的新方法。我们的方法利用了一个自动激活的验证器,并以使用带有契约注释的操作函数为中心。这些契约促进归纳不变检查,确保系统执行期间的正确性。我们的方法得到了Why3-do库的进一步支持,该库扩展了Why3工具使用状态机验证并发和分布式算法的功能。Why3-do的两个显著特性是:(i)它通过细化映射支持规范细化,支持分布式算法的分层推理;(ii)它可以很容易地扩展,使验证特定类别的系统更加方便。特别是,该库包含允许使用编程处理程序描述消息传递算法的模型,假设不同的网络语义。本文还描述了一系列示例,这些示例都使用SMT求解器作为证明工具与Why3进行了验证。它包含几种自动验证的并发和分布式算法,包括Paxos共识算法。
{"title":"Auto-active verification of distributed systems and specification refinements with Why3-do","authors":"Cláudio Belo Lourenço ,&nbsp;Jorge Sousa Pinto","doi":"10.1016/j.scico.2025.103352","DOIUrl":"10.1016/j.scico.2025.103352","url":null,"abstract":"<div><div>In this paper, we introduce a novel approach for rigorously verifying safety properties of state machine specifications. Our method leverages an auto-active verifier and centers around the use of action functions annotated with contracts. These contracts facilitate inductive invariant checking, ensuring correctness during system execution. Our approach is further supported by the Why3-do library, which extends the Why3 tool's capabilities to verify concurrent and distributed algorithms using state machines.</div><div>Two distinctive features of Why3-do are: (i) it supports <em>specification refinement</em> through refinement mappings, enabling hierarchical reasoning about distributed algorithms; and (ii) it can be easily extended to make verifying specific classes of systems more convenient. In particular, the library contains models allowing for message-passing algorithms to be described with programmed <em>handlers</em>, assuming different network semantics.</div><div>A gallery of examples, all verified with Why3 using SMT solvers as proof tools, is also described in the paper. It contains several auto-actively verified concurrent and distributed algorithms, including the Paxos consensus algorithm.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103352"},"PeriodicalIF":1.5,"publicationDate":"2025-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144312699","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Haskell-embedded DSL for secure information-flow 用于安全信息流的haskell嵌入式DSL
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-13 DOI: 10.1016/j.scico.2025.103351
Cecilia Manzino, Gonzalo de Latorre
This paper presents a domain-specific language, embedded in Haskell (EDSL), for enforcing the information flow property Delimited Release. To build this language we use Haskell extensions that will allow some kind of dependently-typed programming.
Considering the effort it takes to build a language from scratch, we decided to provide an information-flow security language as an EDSL, using the infrastructure of the host language to support it.
The decision to use Haskell as the implementation language was driven by its powerful type system that makes it possible to encode the security type system of the embedded language at the type level, as well as by its nature as a general-purpose language.
The implementation follows an approach in which the type of the abstract syntax of the embedded language is decorated with security type information. In this way, typed programs will correspond to secure programs, and the verification of the security invariants of programs will be reduced to type-checking.
The embedded security language is designed in a way that is easy to use. We illustrate its use through three examples: an electronic purchase, secure reading of database information, and a password checker.
本文提出了一种嵌入在Haskell (EDSL)中的领域特定语言,用于强制执行信息流属性Delimited Release。为了构建这种语言,我们使用了Haskell扩展,它将允许某种依赖类型的编程。考虑到从头开始构建一门语言需要付出的努力,我们决定将信息流安全语言作为EDSL提供,并使用宿主语言的基础设施来支持它。使用Haskell作为实现语言的决定是由其强大的类型系统驱动的,它可以在类型级别对嵌入式语言的安全类型系统进行编码,同时也是由于它作为一种通用语言的性质。该实现遵循一种方法,在该方法中,嵌入式语言的抽象语法的类型使用安全类型信息进行修饰。这样,类型化程序将对应于安全程序,程序的安全不变量的验证将简化为类型检查。嵌入式安全语言以一种易于使用的方式设计。我们通过三个示例来说明它的使用:电子购买、安全读取数据库信息和密码检查器。
{"title":"A Haskell-embedded DSL for secure information-flow","authors":"Cecilia Manzino,&nbsp;Gonzalo de Latorre","doi":"10.1016/j.scico.2025.103351","DOIUrl":"10.1016/j.scico.2025.103351","url":null,"abstract":"<div><div>This paper presents a domain-specific language, embedded in Haskell (EDSL), for enforcing the information flow property <em>Delimited Release</em>. To build this language we use Haskell extensions that will allow some kind of dependently-typed programming.</div><div>Considering the effort it takes to build a language from scratch, we decided to provide an information-flow security language as an EDSL, using the infrastructure of the host language to support it.</div><div>The decision to use Haskell as the implementation language was driven by its powerful type system that makes it possible to encode the security type system of the embedded language at the type level, as well as by its nature as a general-purpose language.</div><div>The implementation follows an approach in which the type of the abstract syntax of the embedded language is decorated with security type information. In this way, typed programs will correspond to secure programs, and the verification of the security invariants of programs will be reduced to type-checking.</div><div>The embedded security language is designed in a way that is easy to use. We illustrate its use through three examples: an electronic purchase, secure reading of database information, and a password checker.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103351"},"PeriodicalIF":1.5,"publicationDate":"2025-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144312700","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
tAPP OpenWhisk: A serverless platform for topology-aware allocation priority policies tAPP OpenWhisk:用于拓扑感知分配优先级策略的无服务器平台
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-06-09 DOI: 10.1016/j.scico.2025.103349
Giuseppe De Palma , Saverio Giallorenzo , Jacopo Mauro , Matteo Trentin , Gianluigi Zavattaro
The Function-as-a-Service (FaaS) paradigm offers a serverless approach that abstracts the management of underlying infrastructure, enabling developers to focus on application logic. However, leveraging infrastructure-aware features can further optimize serverless performance.
We present a software prototype that enhances Apache OpenWhisk serverless platform with a novel architecture incorporating tAPP (topology-aware Allocation Priority Policies), a declarative language designed for specifying topology-aware scheduling policies. Through a case study involving distributed data access across multiple cloud regions, we show that tAPP can significantly reduce latency and minimizes performance variability compared to the standard OpenWhisk implementation.
功能即服务(FaaS)范式提供了一种无服务器的方法,它抽象了底层基础设施的管理,使开发人员能够专注于应用程序逻辑。然而,利用感知基础设施的特性可以进一步优化无服务器性能。我们提出了一个软件原型,它增强了Apache OpenWhisk无服务器平台,采用了一种新的架构,其中包含tAPP(拓扑感知分配优先级策略),tAPP是一种用于指定拓扑感知调度策略的声明性语言。通过一个涉及跨多个云区域的分布式数据访问的案例研究,我们表明,与标准的OpenWhisk实现相比,tAPP可以显着减少延迟并最大限度地减少性能变化。
{"title":"tAPP OpenWhisk: A serverless platform for topology-aware allocation priority policies","authors":"Giuseppe De Palma ,&nbsp;Saverio Giallorenzo ,&nbsp;Jacopo Mauro ,&nbsp;Matteo Trentin ,&nbsp;Gianluigi Zavattaro","doi":"10.1016/j.scico.2025.103349","DOIUrl":"10.1016/j.scico.2025.103349","url":null,"abstract":"<div><div>The Function-as-a-Service (FaaS) paradigm offers a serverless approach that abstracts the management of underlying infrastructure, enabling developers to focus on application logic. However, leveraging infrastructure-aware features can further optimize serverless performance.</div><div>We present a software prototype that enhances Apache OpenWhisk serverless platform with a novel architecture incorporating tAPP (topology-aware Allocation Priority Policies), a declarative language designed for specifying topology-aware scheduling policies. Through a case study involving distributed data access across multiple cloud regions, we show that tAPP can significantly reduce latency and minimizes performance variability compared to the standard OpenWhisk implementation.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"247 ","pages":"Article 103349"},"PeriodicalIF":1.5,"publicationDate":"2025-06-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144239371","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Science of Computer Programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1