论文标题

同时编程语言的LAGC语义

LAGC Semantics of Concurrent Programming Languages

论文作者

Din, Crystal Chang, Hähnle, Reiner, Henrio, Ludovic, Johnsen, Einar Broch, Pun, Violet Ka I, Tarifa, Silvia Lizeth Tapia

论文摘要

正式的,数学上严格的编程语言语义是设计逻辑和计算的基本先决条件,允许有关并发程序的自动推理。我们提出了一种新颖的模块化语义,旨在平稳地与同时程序的演绎验证和正式规范中使用的程序逻辑保持一致。我们的语义将在抽象的,象征性环境中执行的表达式和陈述的局部评估与全球计算的组成分开,此时它们是凝结的。这使得不需要修改框架的新语言概念的逐步添加。基础是对程序跟踪的概念的概括,作为一系列不断发展的状态,我们用事件描述符和尾随的延续标记来丰富。这允许将调度的约束从本地评估级别推迟到全局构图阶段,在该阶段中,良好的事件结构谓词声明地表征了广泛的并发模型。我们还说明了如何为该语义定义声音程序逻辑和微积分。

Formal, mathematically rigorous programming language semantics are the essential prerequisite for the design of logics and calculi that permit automated reasoning about concurrent programs. We propose a novel modular semantics designed to align smoothly with program logics used in deductive verification and formal specification of concurrent programs. Our semantics separates local evaluation of expressions and statements performed in an abstract, symbolic environment from their composition into global computations, at which point they are concretised. This makes incremental addition of new language concepts possible, without the need to revise the framework. The basis is a generalisation of the notion of a program trace as a sequence of evolving states that we enrich with event descriptors and trailing continuation markers. This allows to postpone scheduling constraints from the level of local evaluation to the global composition stage, where well-formedness predicates over the event structure declaratively characterise a wide range of concurrency models. We also illustrate how a sound program logic and calculus can be defined for this semantics.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源