Program Transformation and Compilation

  • Ran Ji
  • Richard  BubelEmail author
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10001)


This chapter consists of two parts: The first describes how to interleave symbolic execution with partial evaluation to render the representation of proof trees more compact. Besides saving proof effort, it helps a human user to navigate and comprehend a given proof situation better. The second part is about verifiably correct compilation. Instead of verifying a compiler, we use the verification engine of KeY to prove for a given program on the fly that it is correctly compiled through a sound program transformation. Program behavior of the source code is provably preserved at the level of the target language: source and compiled program terminate in states in which the values of a user-specified region of the heap are equivalent. We give a proof-of-concept of the approach in realizing a partial evaluator, i.e., a source-to-source compiler.


Constant Propagation Partial Evaluation Program Variable Sequent Calculus Path Condition 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  1. 1.Technische Universität DarmstadtDarmstadtGermany

Personalised recommendations