Testing Formal Semantics with QuickCheck
نویسندگان
چکیده
We describe the use of the Haskell testing package QuickCheck to aid in the debugging of the operational and denotational semantics of a hardware compilation language called Handel-C.
منابع مشابه
Experience with Randomized Testing in Programming Language Metatheory
We explore the use of QuickCheck-style randomized testing in programming languages metatheory, a methodology proposed to reduce development time by revealing shallow errors early, before a formal proof attempt. This exploration begins with the development of a randomized testing framework for PLT Redex, a domain-specific language for specifying and debugging operational semantics. In keeping wi...
متن کاملExperience Report: Verifying a Simple Compiler Using Property-based Random Testing
This paper reports on the use of the Haskell QuickCheck library for testing the correctness of a simple functional compiler and abstract machine. We use QuickCheck to express the correctness of the abstract machine against a denotational semantics, to generate wellformed test programs and to automatically shrink counterexamples obtained when a test fails.
متن کاملVerifying a Simple Compiler Using Property-based Random Testing
This paper reports on the use of the Haskell QuickCheck library for testing the correctness of a simple functional compiler and abstract machine. We use QuickCheck to express the correctness of the abstract machine against a denotational semantics, to generate well-formed test programs and to automatically shrink counterexamples obtained when a test fails.
متن کاملA Language for Property-Based Generators
Property-based random testing à la QuickCheck requires building efficient generators for well-distributed random data satisfying complex logical predicates, but writing these generators can be difficult and error prone. We propose a domain-specific language in which generators are conveniently expressed by decorating predicates with lightweight annotations to control both the distribution of ge...
متن کاملMaking Our Own Luck
QuickCheck-style property-based random testing [4] requires efficient generators for well-distributed random data satisfying complex logical predicates. Writing such generators by hand can be difficult and error prone. We propose a domain-specific language, Luck, in which generators are expressed by decorating predicates with lightweight annotations controlling both the distribution of generate...
متن کامل