Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 205–219Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
Structure of a Proof-Producing Compiler for a Subset of Higher Order Logic

Structure of a Proof-Producing Compiler for a Subset of Higher Order Logic

  • Guodong Li1,
  • Scott Owens1 &
  • Konrad Slind1 
  • Conference paper
  • 1081 Accesses

  • 12 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 4421)

Abstract

We give an overview of a proof-producing compiler which translates recursion equations, defined in higher order logic, to assembly language. The compiler is implemented and validated with a mix of translation validation and compiler verification techniques. Both the design of the compiler and its mechanical verification are implemented in the same logic framework.

Keywords

  • Operational Semantic
  • Sequential Composition
  • Source Language
  • Assembly Language
  • Register Allocation

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.

Chapter PDF

Download to read the full chapter text

References

  1. Berghofer, S., Nipkow, T.: Executing higher order logic. In: Callaghan, P., et al. (eds.) TYPES 2000. LNCS, vol. 2277, Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  2. Blazy, S., Dargaye, Z., Leroy, X.: Formal verification of a C compiler front-end. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  3. Blazy, S., Leroy, X.: Formal verification of a memory model for C-like imperative languages. In: Lau, K.-K., Banach, R. (eds.) ICFEM 2005. LNCS, vol. 3785, Springer, Heidelberg (2005)

    CrossRef  Google Scholar 

  4. Dave, M.A.: Compiler verification: a bibliography. ACM SIGSOFT Software Engineering Notes 28(6), 2 (2003)

    CrossRef  Google Scholar 

  5. Feng, X., et al.: Modular verification of assembly code with stack-based control abstractions. In: ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI’06), pp. 401–414. ACM Press, New York (2006)

    CrossRef  Google Scholar 

  6. Fox, A.: Formal verification of the ARM6 micro-architecture. Tech. Report 548, University of Cambridge Computer Laboratory (November 2002)

    Google Scholar 

  7. Gordon, M., et al.: Automatic formal synthesis of hardware from higher order logic. In: Proceedings of Fifth International Workshop on Automated Verification of Critical Systems (AVoCS 2005). ENTCS, vol. 145 (2005)

    Google Scholar 

  8. Hickey, J., Nogin, A.: Formal compiler construction in a logical framework. Journal of Higher-Order and Symbolic Computation 19(2-3), 197–230 (2006)

    CrossRef  MATH  Google Scholar 

  9. Klein, G., Nipkow, T.: A machine-checked model for a Java-like language, virtual machine and compiler. TOPLAS 28(4), 619–695 (2006)

    CrossRef  Google Scholar 

  10. Leinenbach, D., Paul, W., Petrova, E.: Towards the formal verification of a C0 compiler: Code generation and implementation correctnes. In: 4th IEEE International Conference on Software Engineering and Formal Methods (SEFM 2006), IEEE Computer Society Press, Los Alamitos (2005)

    Google Scholar 

  11. Leroy, X.: Formal certification of a compiler backend, or: programming a compiler with a proof assistant. In: Symposium on the Principles of Programming Languages (POPL 2006), ACM Press, New York (2006)

    Google Scholar 

  12. Marriott, K., Stuckey, P.J.: Programming with constraints, an introduction. MIT Press, Cambridge (1998)

    MATH  Google Scholar 

  13. Matthews, J., et al.: Verification Condition Generation Via Theorem Proving. In: Hermann, M., Voronkov, A. (eds.) LPAR 2006. LNCS (LNAI), vol. 4246, pp. 362–376. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  14. Moore, J.S.: Piton: A mechanically verified assembly-level language. Automated Reasoning Series. Kluwer Academic Publishers, Dordrecht (1996)

    Google Scholar 

  15. Morrisett, G., et al.: From System F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 527–568 (1999), citeseer.ist.psu.edu/morrisett98from.html

    CrossRef  Google Scholar 

  16. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  17. Norrish, M., Slind, K.: HOL-4 manuals (1998-2006), Available at http://hol.sourceforge.net/

  18. Pnueli, A., Siegel, M.D., Singerman, E.: Translation Validation. In: Steffen, B. (ed.) ETAPS 1998 and TACAS 1998. LNCS, vol. 1384, Springer, Heidelberg (1998)

    CrossRef  Google Scholar 

  19. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: IEEE Symposium on Logic in Computer Science (LICS’02), pp. 55–74. IEEE Computer Society Press, Los Alamitos (2002)

    CrossRef  Google Scholar 

  20. Sampaio, A.: An algebraic approach to compiler design. AMAST series in computing, vol. 4. World Scientific, Singapore (1997)

    MATH  Google Scholar 

  21. Slind, K.: Reasoning about terminating functional programs. Ph.D. thesis, Institut für Informatik, Technische Universität München (1999)

    Google Scholar 

  22. Watson, G.: Compilation by refinement for a practical assembly language. In: Dong, J.S., Woodcock, J. (eds.) ICFEM 2003. LNCS, vol. 2885, Springer, Heidelberg (2003)

    Google Scholar 

  23. Wheeler, D., Needham, R.: TEA, a tiny encryption algorithm. In: Preneel, B. (ed.) FSE 1994. LNCS, vol. 1008, Springer, Heidelberg (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. School of Computing, University of Utah,  

    Guodong Li, Scott Owens & Konrad Slind

Authors
  1. Guodong Li
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Scott Owens
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Konrad Slind
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Li, G., Owens, S., Slind, K. (2007). Structure of a Proof-Producing Compiler for a Subset of Higher Order Logic. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_15

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-540-71316-6_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71314-2

  • Online ISBN: 978-3-540-71316-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature