Show simple item record

dc.contributor.authorBourgeat, Thomas
dc.contributor.authorClester, Ian
dc.contributor.authorErbsen, Andres
dc.contributor.authorGruetter, Samuel
dc.contributor.authorSingh, Pratap
dc.contributor.authorWright, Andy
dc.contributor.authorChlipala, Adam
dc.date.accessioned2023-10-03T15:15:07Z
dc.date.available2023-10-03T15:15:07Z
dc.date.issued2023-08-30
dc.identifier.issn2475-1421
dc.identifier.urihttps://hdl.handle.net/1721.1/152335
dc.description.abstractInstruction sets, from families like x86 and ARM, are at the center of many ambitious formal-methods projects. Many verification, synthesis, programming, and debugging tools rely on formal semantics of instruction sets, but different tools can use semantics in rather different ways. The best-known work applying single semantics across diverse tools relies on domain-specific languages like Sail, where the language and its translation tools are specialized to the realm of instruction sets. In the context of the open RISC-V instruction-set family, we decided to explore a different approach, with semantics written in a carefully chosen subset of Haskell. This style does not depend on any new language translators, relying instead on parameterization of semantics over type-class instances. We have used a single core semantics to support testing, interactive proof, and model checking of both software and hardware, demonstrating that monads and the ability to abstract over them using type classes can support pleasant prototyping of ISA semantics.en_US
dc.publisherACMen_US
dc.relation.isversionofhttps://doi.org/10.1145/3607833en_US
dc.rightsCreative Commons Attribution 4.0 International licenseen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceAssociation for Computing Machineryen_US
dc.titleFlexible Instruction-Set Semantics via Abstract Monads (Experience Report)en_US
dc.typeArticleen_US
dc.identifier.citationBourgeat, Thomas, Clester, Ian, Erbsen, Andres, Gruetter, Samuel, Singh, Pratap et al. 2023. "Flexible Instruction-Set Semantics via Abstract Monads (Experience Report)." Proceedings of the ACM on Programming Languages, 7 (ICFP).
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.relation.journalProceedings of the ACM on Programming Languagesen_US
dc.identifier.mitlicensePUBLISHER_CC
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dc.date.updated2023-10-01T07:49:03Z
dc.language.rfc3066en
dc.rights.holderThe author(s)
dspace.date.submission2023-10-01T07:49:04Z
mit.journal.volume7en_US
mit.journal.issueICFPen_US
mit.licensePUBLISHER_CC
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record