Melocoton: A program logic for verified interoperability between OCaml and C
Guéneau A, Hostert J, Spies S, Sammler MJ, Birkedal L, Dreyer D. 2023. Melocoton: A program logic for verified interoperability between OCaml and C. Proceedings of the ACM on Programming Languages. 7(OOPSLA2), 716–744.
Download (ext.)
https://doi.org/10.1145/3622823
[Published Version]
DOI
Journal Article
| Published
| English
Scopus indexed
Author
Guéneau, Armaël;
Hostert, Johannes;
Spies, Simon;
Sammler, Michael JoachimISTA;
Birkedal, Lars;
Dreyer, Derek
Abstract
In recent years, there has been tremendous progress on developing program logics for verifying the correctness of programs in a rich and diverse array of languages. Thus far, however, such logics have assumed that programs are written entirely in a single programming language. In practice, this assumption rarely holds since programs are often composed of components written in different programming languages, which interact with one another via some kind of foreign function interface (FFI). In this paper, we take the first steps towards the goal of developing program logics for multi-language verification. Specifically, we present Melocoton, a multi-language program verification system for reasoning about OCaml, C, and their interactions through the OCaml FFI. Melocoton consists of the first formal semantics of (a large subset of) the OCaml FFI—previously only described in prose in the OCaml manual—as well as the first program logic to reason about the interactions of program components written in OCaml and C. Melocoton is fully mechanized in Coq on top of the Iris separation logic framework.
Publishing Year
Date Published
2023-10-16
Journal Title
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery
Volume
7
Issue
OOPSLA2
Page
716-744
ISSN
IST-REx-ID
Cite this
Guéneau A, Hostert J, Spies S, Sammler MJ, Birkedal L, Dreyer D. Melocoton: A program logic for verified interoperability between OCaml and C. Proceedings of the ACM on Programming Languages. 2023;7(OOPSLA2):716-744. doi:10.1145/3622823
Guéneau, A., Hostert, J., Spies, S., Sammler, M. J., Birkedal, L., & Dreyer, D. (2023). Melocoton: A program logic for verified interoperability between OCaml and C. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3622823
Guéneau, Armaël, Johannes Hostert, Simon Spies, Michael Joachim Sammler, Lars Birkedal, and Derek Dreyer. “Melocoton: A Program Logic for Verified Interoperability between OCaml and C.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2023. https://doi.org/10.1145/3622823.
A. Guéneau, J. Hostert, S. Spies, M. J. Sammler, L. Birkedal, and D. Dreyer, “Melocoton: A program logic for verified interoperability between OCaml and C,” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2. Association for Computing Machinery, pp. 716–744, 2023.
Guéneau A, Hostert J, Spies S, Sammler MJ, Birkedal L, Dreyer D. 2023. Melocoton: A program logic for verified interoperability between OCaml and C. Proceedings of the ACM on Programming Languages. 7(OOPSLA2), 716–744.
Guéneau, Armaël, et al. “Melocoton: A Program Logic for Verified Interoperability between OCaml and C.” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2, Association for Computing Machinery, 2023, pp. 716–44, doi:10.1145/3622823.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]
Link(s) to Main File(s)
Access Level
Open Access