LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Journal of Automated Reasoning
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Validation of Synchronous Reactive Systems: From Formal Verification to Automatic Testing
ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
A verifying core for a cryptographic language compiler
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
Domain specific embedded compilers
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
Formal verification of a realistic compiler
Communications of the ACM - Barbara Liskov: ACM's A.M. Turing Award Winner
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Complete and decidable type inference for GADTs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Type-safe observable sharing in Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Filet-o-Fish: practical and dependable domain-specific languages for OS development
Proceedings of the Fifth Workshop on Programming Languages and Operating Systems
Flexible and extensible notations for modeling languages
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Instantiation-based invariant discovery
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Finding and understanding bugs in C compilers
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
The design and implementation of feldspar an embedded language for digital signal processing
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Runtime verification for ultra-critical systems
RV'11 Proceedings of the Second international conference on Runtime verification
Proceedings of the 2012 Haskell Symposium
Traceability and evidence of correctness of EDSL abstractions
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Coq: the world's best macro assembler?
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Copilot: monitoring embedded systems
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Embedded domain-specific languages (EDSLs) are an approach for quickly building new languages while maintaining the advantages of a rich metalanguage. We argue in this experience report that the "EDSL approach" can surprisingly ease the task of building a high-assurance compiler. We do not strive to build a fully formally-verified tool-chain, but take a "do-it-yourself" approach to increase our confidence in compiler-correctness without too much effort. Copilot is an EDSL developed by Galois, Inc. and the National Institute of Aerospace under contract to NASA for the purpose of runtime monitoring of flight-critical avionics. We report our experience in using type-checking, QuickCheck, and model-checking "off-the-shelf" to quickly increase confidence in our EDSL tool-chain.