Access the full text.
Sign up today, get DeepDyve free for 14 days.
N. George, HyoukJoong Lee, D. Novo, Tiark Rompf, Kevin Brown, Arvind Sujeeth, Martin Odersky, K. Olukotun, P. Ienne (2014)
Hardware system synthesis from Domain-Specific Languages2014 24th International Conference on Field Programmable Logic and Applications (FPL)
J. Reynolds (1972)
Definitional Interpreters for Higher-Order Programming LanguagesHigher-Order and Symbolic Computation, 11
G. Popek, R. Goldberg (1974)
Formal requirements for virtualizable third generation architecturesCommun. ACM, 17
S. Goncharov, Lutz Schröder (2011)
A coinductive calculus for asynchronous side-effecting processesInf. Comput., 231
David Cock, G. Klein, Thomas Sewell (2008)
Secure Microkernels, State Monads and Scalable Refinement
A. Procter, W. Harrison, I. Graves, M. Becchi, G. Allwein (2015)
Semantics Driven Hardware Design, Implementation, and Verification with ReWireProceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROM
W. Harrison, J. Hook (2009)
Achieving information flow security through monadic control of effectsJ. Comput. Secur., 17
Andy Gill (2014)
Domain-specific languages and code synthesis using HaskellCommun. ACM, 57
Joseph A. Goguen, José Meseguer (1990)
Security policies and security modelsProceedings of the 1982 Symposium on Security and Privacy (SSP’82). IEEE Computer Society Press, 1982
(2015)
Online supplement accompanying " A Principled Approach to Secure Multi-Core Processor Design in ReWire
Walid Taha, T. Sheard (2000)
MetaML and multi-stage programming with explicit annotationsTheor. Comput. Sci., 248
Andy Gill (2014)
Domain-specific languages and code synthesis using HaskellACM Queue, 12
(2017)
Article 33, Publication date
Christiaan Baaij, J. Kuper (2013)
Using Rewriting to Synthesize Functional Languages to Digital Circuits
the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'11
M. Wilding, D. Greve, R. Richards, D. Hardin (2010)
Formal Verification of Partition Management for the AAMP7G Microprocessor
Andy Gill (2011)
Declarative FPGA Circuit Synthesis using Kansas Lava
W. Harrison, A. Procter, J. Agron, Garrin Kimmell, G. Allwein (2009)
Model-Driven Engineering from Modular Monadic Semantics: Implementation Techniques Targeting Hardware and Software
(2015)
Cheap (but functional) threads. Submitted to the Journal of Functional Programming
W. Harrison, J. Hook (2005)
Achieving information flow security through precise control of effects18th IEEE Computer Security Foundations Workshop (CSFW'05)
I. Sander, A. Jantsch (2004)
System modeling and transformational design refinement in ForSyDe [formal system design]IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 23
(2011)
PicoBlaze 8-bit Embedded Microcontroller User Guide
J. Goguen (1982)
Security Policies and Security Models1982 IEEE Symposium on Security and Privacy
A. Fox, Magnus Myreen (2010)
A Trustworthy Monadic Formalization of the ARMv7 Instruction Set Architecture
P. Hudak, Sheng Liang (1998)
Modular monadic semantics and compilation
Xun Li, Mohit Tiwari, J. Oberg, Vineeth Kashyap, F. Chong, T. Sherwood, B. Hardekopf (2011)
Caisson: a hardware description language for secure information flow
D. Volpano, C. Irvine, Geoffrey Smith (1996)
A Sound Type System for Secure Flow AnalysisJ. Comput. Secur., 4
Gerald J. Popek, Robert P. Goldberg (1974)
Formal requirements for virtualizable third generation architecturesCommunications of the ACM, 17
Stephen Edwards (2006)
The Challenges of Synthesizing Hardware from C-Like LanguagesIEEE Design & Test of Computers, 23
Principled Secure Processor Design with ReWire
S. Goncharov, L. Schröder (2011)
A coinductive calculus for asynchronous side-effecting processesProceedings of the 18th International Conference on Fundamentals of Computation Theory
A. Procter (2014)
Semantics-driven design and implementation of high-assurance hardwareSubmitted by the University of Missouri--Columbia Graduate School
E. Gimenez (1996)
Un calcul de constructions infinies et son application a la verification de systemes communicants
Per Bjesse, Koen Claessen, M. Sheeran, Satnam Singh (1998)
Lava: hardware design in Haskell
E. Moggi (1991)
Notions of Computation and MonadsInf. Comput., 93
HyoukJoong Lee, Kevin Brown, Arvind Sujeeth, Hassan Chafi, Tiark Rompf, Martin Odersky, K. Olukotun (2011)
Implementing Domain-Specific Languages for Heterogeneous Parallel ComputingIEEE Micro, 31
J. Bachrach, Huy Vo, B. Richards, Yunsup Lee, Andrew Waterman, Rimas Avizienis, J. Wawrzynek, K. Asanović (2012)
Chisel: Constructing hardware in a Scala embedded languageDAC Design Automation Conference 2012
(2015)
Received September
W. Harrison, A. Procter, G. Allwein (2012)
The Confinement Problem in the Presence of Faults
PROOF. Proof of Theorem
Susmit Sarkar, Peter Sewell, Francesco Nardelli, Scott Owens, T. Ridge, Thomas Braibant, Magnus Myreen, J. Alglave (2009)
The semantics of x86-CC multiprocessor machine code
W. Harrison (2006)
Proof Abstraction for Imperative Languages
S. Shukla, K. Vatanparvar, M. Faruque, W. Pan, T. Xie, H. Omar, Q. Shi, M. Ahmad, H. Dogan, O. Khan, G. Wang, C. Zang (2018)
ACM Transactions on Embedded Computing Systems continued on back cover
(2004)
System modeling and transformational design refinement in ForSyDe
Sheng Liang, P. Hudak, Mark Jones (1995)
Monad transformers and modular interpreters
I. Graves (2015)
Device-level composition in ReWire
Kuangya Zhai, Richard Townsend, L. Lairmore, Martha Kim, Stephen Edwards (2015)
Hardware synthesis from a recursive functional language2015 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS)
W. Harrison, A. Procter (2015)
Cheap (But Functional) Threads†
D. Hardin (2010)
Design and Verification of Microprocessor Systems for High-Assurance Applications
There is no such thing as high assurance without high assurance hardware. High assurance hardware is essential because any and all high assurance systems ultimately depend on hardware that conforms to, and does not undermine, critical system properties and invariants. And yet, high assurance hardware development is stymied by the conceptual gap between formal methods and hardware description languages used by engineers. This article advocates a semantics-directed approach to bridge this conceptual gap. We present a case study in the design of secure processors, which are formally derived via principled techniques grounded in functional programming and equational reasoning. The case study comprises the development of secure single- and dual-core variants of a single processor, both based on a common semantic specification of the ISA. We demonstrate via formal equational reasoning that the dual-core processor respects a no-write-down information flow policy. The semantics-directed approach enables a modular and extensible style of system design and verification. The secure processors require only a very small amount of additional code to specify and implement, and their security verification arguments are concise and readable. Our approach rests critically on ReWire, a functional programming language providing a suitable foundation for formal verification of hardware designs. This case study demonstrates both ReWires expressiveness as a programming language and its power as a framework for formal, high-level reasoning about hardware systems.
ACM Transactions on Embedded Computing Systems (TECS) – Association for Computing Machinery
Published: Jan 10, 2017
Keywords: Equational reasoning
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.