Treffer: Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages

Title:
Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages
Contributors:
Compilation et Analyse, Logiciel et Matériel (CASH), Laboratoire de l'Informatique du Parallélisme (LIP), École normale supérieure de Lyon (ENS de Lyon), Université de Lyon-Université de Lyon-Université Claude Bernard Lyon 1 (UCBL), Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-École normale supérieure de Lyon (ENS de Lyon), Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)-Centre Inria de Lyon, Institut National de Recherche en Informatique et en Automatique (Inria), Université de Lyon-Institut National de Recherche en Informatique et en Automatique (Inria)-Centre National de la Recherche Scientifique (CNRS)
Source:
ACM Transactions on Programming Languages and Systems (TOPLAS). 46(1):1-58
Publisher Information:
CCSD; ACM, 2024.
Publication Year:
2024
Collection:
collection:ENS-LYON
collection:CNRS
collection:INRIA
collection:UNIV-LYON1
collection:LIP
collection:INRIA2
collection:UDL
collection:UNIV-LYON
collection:INRIA-LYS
Original Identifier:
HAL: hal-04732946
Document Type:
Zeitschrift article<br />Journal articles
Language:
English
ISSN:
0164-0925
1558-4593
Relation:
info:eu-repo/semantics/altIdentifier/doi/10.1145/3648439
DOI:
10.1145/3648439
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edshal.hal.04732946v1
Database:
HAL

Weitere Informationen

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.