Following software engineering best practices, programs are divided into modules to facilitate information hiding. A variety of programming-language constructs provide ways to define a module and to classify which of its declarations are private to the module and which are available to public clients of the module. Many declarations can be viewed as consisting of a signature and a body. For such a declaration, a module may want to export just the signature or both the signature and body. This translucency is particularly useful when formally verifying a program, because it lets a module decide how much of a declaration clients are allowed to depend on. This article describes a module system that supports multiple export sets per module. Each export set indicates the translucency of its exported declarations. The module system is implemented as part of the verification-aware programming language Dafny. Experience with the module system suggests that translucency is useful.
CITATION STYLE
Leino, K. R. M., & Matichuk, D. (2018). Modular Verification Scopes via Export Sets and Translucent Exports. In Principled Software Development: Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday (pp. 185–202). Springer International Publishing. https://doi.org/10.1007/978-3-319-98047-8_12
Mendeley helps you to discover research relevant for your work.