Proceedings Combined 24th International Workshop on Expressiveness in Concurrency and 14th Workshop on Structural Operational Semantics
本卷包含第24届并发表达性国际研讨会和第14届结构操作语义研讨会(EXPRESS/SOS 2017)的会议记录,该研讨会于2017年9月4日在德国柏林举行,作为第28届并发理论国际会议CONCUR 2017的附属研讨会。EXPRESS研讨会旨在汇集对各种形式系统和语义概念的表达感兴趣的研究人员,特别是在并发领域。传统上,他们的重点是比较编程概念(如并发、函数、命令、逻辑和面向对象编程)和计算的数学模型(如进程代数、Petri网、事件结构、模态逻辑和重写系统)之间的相对表达能力。自1994年以来,EXPRESS系列研讨会已经成功举办,多年来,这一重点已经得到广泛的理解。SOS研讨会的目的是成为一个论坛的研究人员,学生和从业人员感兴趣的新发展,未来的调查方向,在结构操作语义领域。SOS研讨会系列的具体目标之一是在从事SOS理论和实践工作的并发和程序设计语言社区之间建立协同作用。自2012年以来,EXPRESS和SOS社区组织了一个年度EXPRESS/SOS联合研讨会,讨论计算数学模型的表达能力以及系统和编程概念的形式语义。
2017-08-31 cs.LO cs.PL
Proceedings Combined 23rd International Workshop on Expressiveness in Concurrency and 13th Workshop on Structural Operational Semantics
本卷包含第23届并发表达性国际研讨会和第13届结构操作语义研讨会(EXPRESS/SOS 2016)的会议记录,该研讨会于2016年8月22日在加拿大魁北克市举行,作为第27届并发理论国际会议CONCUR 2016的附属研讨会。EXPRESS研讨会旨在汇集对各种形式系统和语义概念的表达感兴趣的研究人员,特别是在并发领域。传统上,他们的重点是比较编程概念(如并发、函数、命令、逻辑和面向对象编程)和计算的数学模型(如进程代数、Petri网、事件结构、模态逻辑和重写系统)之间的相对表达能力。自1994年以来,EXPRESS系列研讨会已经成功举办,多年来,这一重点已经得到广泛的理解。SOS研讨会的目的是成为一个论坛的研究人员,学生和从业人员感兴趣的新发展,未来的调查方向,在结构操作语义领域。SOS研讨会系列的具体目标之一是在从事SOS理论和实践工作的并发和程序设计语言社区之间建立协同作用。自2012年以来,EXPRESS和SOS社区组织了一个年度EXPRESS/SOS联合研讨会,讨论计算数学模型的表达能力以及系统和编程概念的形式语义。
2016-08-09 cs.LO cs.PL
Proceedings Combined 21st International Workshop on Expressiveness in Concurrency and 11th Workshop on Structural Operational Semantics
本卷包含2014年9月1日在意大利罗马举行的第21届并发表达性国际研讨会和第11届结构操作语义研讨会(EXPRESS/SOS 2014)的会议记录,作为CONCUR 2014的附属研讨会,第25届并发理论国际会议。EXPRESS研讨会旨在汇集对各种形式系统和语义概念的表达感兴趣的研究人员,特别是在并发领域。传统上,他们的重点是比较编程概念(如并发、函数、命令、逻辑和面向对象编程)和计算的数学模型(如进程代数、Petri网、事件结构、模态逻辑和重写系统)之间的相对表达能力。自1994年以来,EXPRESS系列研讨会已经成功举办,多年来,这一重点已经得到广泛的理解。SOS研讨会的目的是成为一个论坛的研究人员,学生和从业人员感兴趣的新发展,未来的调查方向,在结构操作语义领域。SOS研讨会系列的具体目标之一是在从事SOS理论和实践工作的并发和程序设计语言社区之间建立协同作用。SOS在其他领域的应用报告也非常受欢迎,包括:生物系统的建模和分析,计算机系统编程的安全性,嵌入式系统的建模和分析,中间件和协调语言的规范,程序设计语言语义和实现,静态分析软件和硬件验证,以及特定领域语言和基于模型的工程的语义。
2014-08-06 cs.LO cs.PL
Proceedings Combined 20th International Workshop on Expressiveness in Concurrency and 10th Workshop on Structural Operational Semantics
本卷包含2013年8月26日在阿根廷布宜诺斯艾利斯举行的第20届并发表达性国际研讨会和第10届结构操作语义研讨会(EXPRESS/SOS 2013)的会议记录,作为CONCUR 2013的附属研讨会,第24届并发理论国际会议。EXPRESS研讨会旨在汇集对各种形式系统和语义概念的表达感兴趣的研究人员,特别是在并发领域。传统上,他们的重点是编程概念(例如并发、函数式、命令式、逻辑和面向对象编程)之间的比较以及计算数学模型(例如进程代数、Petri网、事件结构、模态逻辑和重写系统)之间的比较。基于它们的相对表达能力。自1994年以来,EXPRESS系列研讨会已经成功举办,多年来,这一重点已经得到广泛的理解。SOS研讨会的目的是成为一个论坛的研究人员,学生和从业人员感兴趣的新发展,未来的调查方向,在结构操作语义领域。SOS研讨会系列的具体目标之一是在从事SOS理论和实践工作的并发和程序设计语言社区之间建立协同作用。SOS在其他领域的应用报告也非常受欢迎,包括:生物系统的建模和分析,计算机系统编程的安全性,嵌入式系统的建模和分析,中间件和协调语言的规范,程序设计语言语义和实现,静态分析软件和硬件验证,以及特定领域语言和基于模型的工程的语义。
2013-07-26 cs.LO cs.PL
Proceedings Sixth Workshop on Structural Operational Semantics
本卷包含SOS 2009的会议记录,第六届结构操作语义研讨会于2009年8月31日在意大利博洛尼亚举行,作为CONCUR 2009的附属研讨会,第20届国际并发理论会议。结构操作语义(SOS)是一种为编程和规约语言定义操作语义的技术。该研讨会是研究人员,学生和从业人员感兴趣的新发展和未来的调查方向在SOS领域的论坛。研讨会的具体目标之一是为并发和程序设计语言社区提供一个聚会点。另一个目标是在全世界的研究生和年轻研究人员中传播SOS的理论和实践。
2010-02-15 cs.LO cs.PL
Operational Semantics of Process Monitors
CSPe是一种用于运行时监视器的规约语言,它可以以自底向上的方式直接表示并发性,这种方式将系统从更简单的交互组件组成。它包括明确地将故障标记到监视器的构造,这与传统进程代数中的死锁和活锁不同,全局传播并中止整个系统的执行。尽管CSPe具有跟踪语义以及演示可接受性能的实现,但它缺乏操作语义。操作语义不仅比跟踪语义更容易访问,而且对于确保实现的正确性也是不可或缺的。此外,像CSPe这样的进程代数允许多个适用于不同目的的指称语义,并且操作语义是证明这些语义的完整性和相关性的基础。在本文中,我们开发了一个SOS风格的操作语义的CSPe,这适当占显式故障,并将作为进一步研究其属性,其优化,并在运行时验证的基础。
2017-05-15 cs.PL
An Executable Structural Operational Formal Semantics for Python
Python是一种流行的高级通用程序设计语言,也被科学界大量使用。它支持各种不同的编程范例,并因其易用性而受到许多人的青睐。为了收获像Python抽象解释这样的静态分析技术,我们为Python开发了一个形式化的语义。形式化语义是任何可靠的静态分析技术的重要基石。我们的工作基础上的一般框架的结构操作语义产生一个小步骤的语义原则上允许与环境的并发性和交互。这篇论文的主要贡献是两方面的:首先,我们开发了一个元理论框架的形式化结构操作语义与必要的工具支持的解释器的自动化派生,从这样的正式语义,第二,我们验证了这种方法的适用性的形式化现代程序设计语言开发的语义Python。
2021-09-07 cs.PL
Proceedings Eight Workshop on Structural Operational Semantics 2011
本卷包含SOS 2011的会议记录,第八届结构操作语义研讨会,于2011年9月5日在德国亚琛举行,作为CONCUR 2011的附属研讨会,第22届国际并发理论会议。结构操作语义(SOS)提供了一个框架,为程序设计和规约语言提供操作语义。越来越多的商业和学术领域的程序设计语言已经通过结构操作语义给出了可用的语义描述。由于其直观的吸引力和灵活性,结构操作语义在并发进程的语义研究中得到了广泛的应用。在程序的静态分析和证明编译器正确性方面,它也是指称语义的一个可行的替代方案。此外,它在新兴的计算领域,如概率系统和系统生物学中也有应用。结构操作语义已成功地应用作为一种形式化的工具,建立的结果,持有类的过程描述语言。这使得众所周知的结果在进程代数领域的推广,并为发展一个元理论的基础上实现的进程演算,许多结果在这一领域只依赖于一般的语义属性的语言结构。该讲习班是对新的发展和未来调查方向感兴趣的研究人员、学生和从业人员的论坛。研讨会的具体目标之一是为并发和程序设计语言社区提供一个聚会点。另一个目标是在全世界的研究生和年轻研究人员中传播SOS的理论和实践。
2011-08-13 cs.LO cs.PL
Operational Semantics for Crystality: A Smart Contract Language for Parallel EVMs
本文为面向并行EVM的智能合约语言Crystality提出首个形式化结构操作语义,并在Coq中机械化验证,通过代币转账案例展示其确保合约正确性的能力。
2025-04-24 cs.PL
On Architecture to Architecture Mapping for Concurrency
将程序从一个体系结构映射到另一个体系结构在诸如二进制翻译、反编译、仿真、虚拟化和应用程序迁移等技术中起着关键作用。虽然多核架构无处不在,但最先进的转换工具不能正确处理并发原语。这样做是相当具有挑战性的,因为架构之间的并发模型存在细微的差异。作为回应,我们应对这一挑战的各个方面。首先,我们开发了两个主流架构家族(x86和ARM(版本7和8))的并发模型之间的正确和有效的翻译。我们开发了x86与ARMv8和ARMv7之间的直接映射,以及栅栏消除算法,以消除直接映射后的冗余栅栏。虽然我们的映射利用ARMv8作为x86和ARMv7之间映射的中间模型,我们认为,它不应该被用作反编译器中的中间模型,因为它不允许常见的编译器转换。其次,我们提出并实现了一种技术,用于插入内存围栏安全迁移程序之间的不同体系结构。我们的技术检查对x86和ARM的鲁棒性,并在鲁棒性违规时插入围栏。我们的实验表明,在大多数程序中,我们的技术引入了显着较少的围栏相比,天真的计划,跨这些架构移植应用程序。
2020-09-08 cs.AR cs.PL
Semantics for Locking Specifications
为了防止并发错误,程序员需要遵守锁规则。指定该规程的注释,如Java的@GuardedBy,已经被广泛使用。不幸的是,它们的语义是非正式表达的,因此是模糊的。本文重点介绍了这种二义性,并以两种替代方式形式化了@GuardedBy的语义,这两种方式是基于一种类似Java语言的小型并发片段的操作语义构建的。它还确定了这种注释何时是对数据竞争的实际保证。我们的工作有助于理解注释,并支持开发健全的正式工具来验证或推断这些注释。
2015-11-15 cs.PL
CRIL: A Concurrent Reversible Intermediate Language
提出CRIL,一种并发可逆中间语言,通过扩展RIL并引入多线程进程调用与P-V同步原语,实现了高级并发程序到低级并发语言的保持可逆性翻译,并证明了其操作语义的因果安全与活性。
2023-09-13 cs.PL cs.SE
A Framework for Concurrent Imperative Programming
该框架提供了一个通用的并发命令式编程模型。程序被建模为形式语言,并发性被建模为交织(或混洗)运算符。这产生了一个简单而优雅的程序代数。该框架支持Dinsdale-Young等人的视图程序逻辑,它概括了各种类型系统和程序正确性的分离逻辑方法。它还验证了熟悉的操作演算在小步和大步的味道。程序逻辑相对于操作规则的一致性是直接建立的,并且不使用推导上的归纳。事实上,整个框架只使用简单的数学。参数化的状态,视图和基本命令,它可以实例化为各种具体的语言和设置。
2012-09-10 cs.LO cs.PL
A Practical Analysis of Rust's Concurrency Story
正确的并发程序很难编写;当多个线程改变共享数据时,它们可能会丢失写入、损坏数据或产生不稳定的程序行为。虽然并发性的许多数据竞争问题可以通过在代码中放置锁来避免,但这些问题通常会使程序执行串行化,并且会显着降低性能关键型应用程序的速度。程序员也会犯错误,并且经常忘记执行较少的代码路径中的锁,这导致程序仅在极少数情况下行为不当。Rust是Mozilla最近推出的一种程序设计语言,它试图通过在编译时检测数据竞争来解决这些相互交织的问题。Rust的类型系统编码了数据结构在类型系统中的线程之间共享的能力,这反过来允许编译器拒绝线程直接改变共享状态而没有锁或其他保护机制的程序。在这项工作中,我们研究了Rust类型系统的这一方面如何影响并发数据结构的开发和改进,以及它适应正确性由低级不变量保证的情况的能力(例如,在无锁算法中)不能直接在类型系统本身中表达。我们详细介绍了并发无锁散列表的实现,以描述Rust语言的这些特性。我们的代码可以在https://github.com/saligrama/concache上公开获得,并且是Rust语言中最快的并发散列表之一,这导致了并发程序中的瓶颈。
2019-04-27 cs.DC cs.PL
Correctly Implementing Synchronous Message Passing in the Pi-Calculus By Concurrent Haskell's MVars
并发程序设计语言的比较和并发环境下程序转换的正确性是本文研究的重点。作为标准,我们使用的上下文语义适应并发,在那里可能-以及应该-收敛观察。本文研究了并发Haskell(CH)核心语言与同步π演算的关系。上下文语义一方面对操作语义的细节给予宽容,另一方面对翻译后过程之间的相互作用提出了强烈的要求。我们的结果是,CH包含同步π演算。我们的主要任务是通过CH的并发原语(MVars)来发现和证明π演算通道编码的正确性。它们的行为类似于(阻塞)1位缓冲区,对共享内存进行建模。第一个开发的翻译使用一个额外的私人MVar的每一个通信。我们还自动生成和检查潜在的正确的翻译,重用MVar,其中一个MVar包含的消息和两个额外的MVar同步用于模拟一个通道的同步通信的pi演算。我们的自动实验结果导致推测,一个额外的MVar是不够的。
2020-08-31 cs.LO cs.PL
Formally Specifying and Proving Operational Aspects of Forensic Lucid in Isabelle
提出了一种用于内涵网络取证分析的Forensic Lucid内涵程序设计语言。在很大程度上,这种语言是基于各种前身和编解码器的Lucid方言,这些方言被它们背后的高阶内涵逻辑(HOIL)所束缚。这项工作正式指定的业务方面的法医清醒的语言和编译的理论,其结构使用伊莎贝尔,一个证明助手系统。
2009-04-24 cs.CR cs.LO cs.PL
Episodic Loops: Finitary Event Structures and Operational Semantics for C11 Programs with Retries
School of Computing, University of Kent(肯特大学计算学院)
针对无锁算法重试循环验证难题,提出循环片段与同步点概念,实现有限操作语义,高效验证安全属性并修复释放后使用错误。
2026-09-29 cs.PL
Weak Memory Models with Matching Axiomatic and Operational Definitions
内存一致性模型因难以精确定义、推理和验证而臭名昭著。十多年的努力已经确定了ARM和IBM Power内存模型的定义,但这些模型的某些方面(也许令人惊讶)至今仍未解决。为了应对这些复杂性,(通用)架构社区最近有一种趋势,将新的内存模型限制为(多副本)原子:其中存储值可以在被通告给其他处理器之前由发布处理器读取。TSO是最著名的例子,过去被IBM 370和SPARC-TSO使用,目前用于x86。最近(2017年3月)ARM也转向了多拷贝原子内存模型,新的RISC-V ISA和最近的学术提案(如WMM)也在推动这样做。在本文中,我们表明,当内存模型是原子的,它变得更容易产生公理化的定义,操作定义,并证明等价性比做同样的非原子模型。这些定义的产生越来越容易,这反过来又使架构师能够更自信地构建处理器,而我们提出的模型的宽松性质仍然允许保留非原子模型的大部分或全部性能。事实上,在本文中,我们表明,原子内存模型可以定义的方式,是参数化的基本指令和围栏排序。我们的操作与公理等价证明,同样是参数化的,表明操作模型相对于公理是合理的,并且操作模型是完整的:它可以显示公理模型允许的任何行为。
2019-04-09 cs.PL
Bialgebraic Semantics for String Diagrams
图里和普洛特金的双代数语义是一种抽象的方法来指定一个系统的操作语义,通过它的语法(编码为单子)和它的动态(内函子)之间的分配律。这种设置有助于表明语义规范(余代数)满足期望的性质:特别是,它是合成的。在这项工作中,我们使用双代数方法来推导出字符串图的行为良好的结构性操作语义,这是一种越来越多地用于不同学科交互系统研究的图形语法。我们的分析依赖于代表二维操作的基础上弦图在各种类别作为一个单子,和他们的双代数语义的分配法在单子。作为一个概念的证明,我们提供了一个多功能的字符串图形语言,已被用来模拟信号流图(控制理论)和Petri网(并发理论)的双代数组成语义。此外,我们的方法揭示了两种不同的解释Frobenius方程的字符串图和两个同步机制的过程中,à la Hoare和à la米尔纳之间的对应关系。
2019-07-02 cs.LO cs.PL math.CT