{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,16]],"date-time":"2026-04-16T05:24:40Z","timestamp":1776317080415,"version":"3.50.1"},"reference-count":0,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"accepted":{"date-parts":[[2025,1,10]]},"abstract":"<jats:p>To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of &amp;quot;undoing&amp;quot; the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we propose a language enriched with programming facilities to commit session interactions, to roll back the computation to a previous commit point, and to abort the session. Rollbacks in our language always bring the system to previous visited states and a rollback cannot bring the system back to a point prior to the last commit. Programmers are relieved from the burden of ensuring that a rollback never restores a checkpoint imposed by a session participant different from the rollback requester. Such undesired situations are prevented at design-time (statically) by relying on a decidable compliance check at the type level, implemented in MAUDE. We show that the language satisfies error-freedom and progress of a session.<\/jats:p>","DOI":"10.46298\/lmcs-21(1:2)2025","type":"journal-article","created":{"date-parts":[[2025,1,10]],"date-time":"2025-01-10T10:15:08Z","timestamp":1736504108000},"source":"Crossref","is-referenced-by-count":3,"title":["Checkpoint-based rollback recovery in session programming"],"prefix":"10.46298","volume":"Volume 21, Issue 1","author":[{"given":"Claudio Antares","family":"Mezzina","sequence":"first","affiliation":[]},{"given":"Francesco","family":"Tiezzi","sequence":"additional","affiliation":[]},{"given":"Nobuko","family":"Yoshida","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2025,1,10]]},"container-title":["Logical Methods in Computer Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/lmcs.episciences.org\/15049\/pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/lmcs.episciences.org\/15049\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,10]],"date-time":"2025-01-10T10:15:09Z","timestamp":1736504109000},"score":1,"resource":{"primary":{"URL":"https:\/\/lmcs.episciences.org\/12654"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,1,10]]},"references-count":0,"URL":"https:\/\/doi.org\/10.46298\/lmcs-21(1:2)2025","relation":{"has-preprint":[{"id-type":"arxiv","id":"2312.02851v2","asserted-by":"subject"},{"id-type":"arxiv","id":"2312.02851v1","asserted-by":"subject"}],"is-same-as":[{"id-type":"arxiv","id":"2312.02851","asserted-by":"subject"},{"id-type":"doi","id":"10.48550\/arXiv.2312.02851","asserted-by":"subject"}]},"ISSN":["1860-5974"],"issn-type":[{"value":"1860-5974","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,1,10]]},"article-number":"12654"}}