Electronic Notes in Theoretical Computer Science · 2009 · 24 citations · 17 references
ComputingComputer ScienceCompilersProgramming LanguagesSoftware EngineeringControl-flow AnalysisData-flow AnalysisSoftware DesignSoftware TestingSpecification LanguagesType SystemsAxiomsBottom-up Rewrite SystemsProgram OptimizationProgram TransformationRewrite SystemsTest Oracles
Programmers typically have knowledge about properties of their programs that aren't explicitly expressed in the code – properties that may be very useful for, e.g., compiler optimisation and automated testing. Although such information is sometimes written down in a formal or informal specification, it is generally not accessible to compilers and other tools. However, using the idea of concepts and axioms in the upcoming C++ standard, we may embed axioms with program code. In this paper, we sketch how such axioms can be interpreted as rewrite rules and test oracles. Rewrite rules together with user-defined transformation strategies allow us to implement program or library-specific optimisations.
17
Constructing Induction Rules for Deductive Synthesis Proofs
Alan Bundy, Lucas Dixon, Jeremy Gow et al. · Electronic Notes in Theoretical Computer Science · 2006 · 2.8K citations · Full text
Koen Claessen, John Hughes · ACM SIGPLAN Notices · 2011 · 1K citations
Koen Claessen, John Hughes · 2000 · 714 citations
Modern software tools for scientific computing
Choice Reviews Online · 1997 · 516 citations