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
The bedrock structured programming system
| dc.contributor.author | Chlipala, A | |
| dc.date.accessioned | 2021-10-27T20:29:12Z | |
| dc.date.available | 2021-10-27T20:29:12Z | |
| dc.date.issued | 2013-01-01 | |
| dc.identifier.uri | https://hdl.handle.net/1721.1/135766 | |
| dc.description.abstract | We 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.iso | en | |
| dc.publisher | Association for Computing Machinery (ACM) | |
| dc.relation.isversionof | https://dl.acm.org/citation.cfm?id=2500592 | |
| dc.rights | Creative Commons Attribution-Noncommercial-Share Alike | |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | |
| dc.source | MIT web domain | |
| dc.title | The bedrock structured programming system | |
| dc.type | Article | |
| dc.relation.journal | ACM SIGPLAN Notices | |
| dc.eprint.version | Author's final manuscript | |
| dc.type.uri | http://purl.org/eprint/type/ConferencePaper | |
| eprint.status | http://purl.org/eprint/status/NonPeerReviewed | |
| dc.date.updated | 2019-05-13T17:18:03Z | |
| dspace.orderedauthors | Chlipala, A | |
| dspace.date.submission | 2019-05-13T17:18:04Z | |
| mit.journal.volume | 48 | |
| mit.journal.issue | 9 | |
| mit.metadata.status | Authority Work and Publication Information Needed | 
