The technologies developed to solve the verifying compiler grand challenge should be generic, that is, not tied to a particular language but widely applicable to many languages. Such technologies should also be semantics-based, that is, based on a rigorous formal semantics of the languages.For this, a computational logical framework with efficient executability and a spectrum of meta-tools can serve as a basis on which to: (1) define the formal semantics of any programming language; and (2) develop generic program analysis techniques and tools that can be instantiated to generate powerful analysis tools for each language of interest.Not all logical frameworks can serve such purposes well. We first list some specific requirements that we think are important to properly address the grand challenge. Then we present our experience with rewriting logic as supported by the Maude system and its formal tool environment. Finally, we discuss some future directions of research.
Logical Framework RequirementsBased on experience, current trends, and the basic requirements of the grand challenge problem, we believe that any logical framework serving as a computational infrastructure for the various technologies for solving the grand challenge should have at least the following features:1. good data representation capabilities, 2. support for concurrency and nondeterminism, 3. simplicity of the formalism, 4. efficient implementability, and efficient meta-tools, 5. support for reflection, 6. support for inductive reasoning, preferably with initial model semantics, 7. support for generation of proof objects, acting as correctness certificates.While proponents of a framework may claim that it has all these features, in some cases further analysis can show that it either lacks some of them, or can only "simulate" certain features in a quite artificial way. A good example is the