Notice

This is not the latest version of this item. The latest version can be found at:https://dspace.mit.edu/handle/1721.1/135766.2

Show simple item record

dc.contributor.authorChlipala, A
dc.date.accessioned2021-10-27T20:29:12Z
dc.date.available2021-10-27T20:29:12Z
dc.date.issued2013-01-01
dc.identifier.urihttps://hdl.handle.net/1721.1/135766
dc.description.abstractWe report on the design and implementation of an extensible programming language and its intrinsic support for formal verification. Our language is targeted at low-level programming of infrastructure like operating systems and runtime systems. It is based on a cross-platform core combining characteristics of assembly languages and compiler intermediate languages. From this foundation, we take literally the saying that C is a "macro assembly language": we introduce an expressive notion of certified low-level macros, sufficient to build up the usual features of C and beyond as macros with no special support in the core. Furthermore, our macros have integrated support for strongest postcondition calculation and verification condition generation, so that we can provide a high-productivity formal verification environment within Coq for programs composed from any combination of macros. Our macro interface is expressive enough to support features that low-level programs usually only access through external tools with no formal guarantees, such as declarative parsing or SQL-inspired querying. The abstraction level of these macros only imposes a compile-time cost, via the execution of functional Coq programs that compute programs in our intermediate language; but the run-time cost is not substantially greater than for more conventional C code. We describe our experiences constructing a full C-like language stack using macros, with some experiments on the verifiability and performance of individual programs running on that stack.
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)
dc.relation.isversionofhttps://dl.acm.org/citation.cfm?id=2500592
dc.rightsCreative Commons Attribution-Noncommercial-Share Alike
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/
dc.sourceMIT web domain
dc.titleThe bedrock structured programming system
dc.typeArticle
dc.relation.journalACM SIGPLAN Notices
dc.eprint.versionAuthor's final manuscript
dc.type.urihttp://purl.org/eprint/type/ConferencePaper
eprint.statushttp://purl.org/eprint/status/NonPeerReviewed
dc.date.updated2019-05-13T17:18:03Z
dspace.orderedauthorsChlipala, A
dspace.date.submission2019-05-13T17:18:04Z
mit.journal.volume48
mit.journal.issue9
mit.metadata.statusAuthority Work and Publication Information Needed


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

VersionItemDateSummary

*Selected version