Chiari, M., Mandrioli, D., Pontiggia, F., & Pradella, M. (2023). A model checker for operator precedence languages. ACM Transactions on Programming Languages and Systems, 45(3), 1–66. https://doi.org/10.1145/3608443
E191-01 - Forschungsbereich Cyber-Physical Systems
-
Journal:
ACM Transactions on Programming Languages and Systems
-
ISSN:
0164-0925
-
Date (published):
Sep-2023
-
Number of Pages:
66
-
Publisher:
ASSOC COMPUTING MACHINERY
-
Peer reviewed:
Yes
-
Keywords:
Additional Key Words and PhrasesLinear temporal logic; input-driven languages; model checking; operator precedence languages; precedence oriented temporal logic; visibly pushdown languages
en
Abstract:
The problem of extending model checking from finite state machines to procedural programs has fostered much research toward the definition of temporal logics for reasoning on context-free structures. The most notable of such results are temporal logics on Nested Words, such as CaRet and NWTL. Recently, Precedence Oriented Temporal Logic (POTL) has been introduced to specify and prove properties of programs coded trough an Operator Precedence Language (OPL). POTL is complete w.r.t. the FO restriction of the MSO logic previously defined as a logic fully equivalent to OPL. POTL increases NWTL's expressive power in a perfectly parallel way as OPLs are more powerful that nested words.In this article, we produce a model checker, named POMC, for OPL programs to prove properties expressed in POTL. To the best of our knowledge, POMC is the first implemented and openly available model checker for proving tree-structured properties of recursive procedural programs. We also report on the experimental evaluation we performed on POMC on a nontrivial benchmark.
en
Project title:
Distribution Recovery for Invariant Generation of Probabilistic Programs: ICT19-018 (WWTF Wiener Wissenschafts-, Forschu und Technologiefonds) Logics for Computer Science Program at TU Wien: 101034440 (European Commission)
-
Project (external):
European Commission
-
Project ID:
101000162
-
Research Areas:
Logic and Computation: 80% Mathematical and Algorithmic Foundations: 10% Computer Science Foundations: 10%