Skip to main content
Log in

VLISP: A verified implementation of Scheme

  • Published:
LISP and Symbolic Computation

Abstract

The VLISP project showed how to produce a comprehensively verified implementation for a programming language, namely Scheme. This paper introduces two more detailed studies on VLISP [13, 21]. It summarizes the basic techniques that were used repeatedly throughout the effort. It presents scientific conclusions about the applicability of the these techniques as well as engineering conclusions about the crucial choices that allowed the verification to succeed.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Joel F. Bartlett. Scheme->C: A portable Scheme-to-C compiler. WRL 89/1, Digital Equipment Corporation Western Research Laboratory, January 1989.

  2. Robert S. Boyer and Yuan Yu. Automated correctness proofs of machine code programs for a commercial microprocessor. In D. Kapur, editor,Automated Deduction — CADE-11, pages 416–430. 11th International Conference on Automated Deduction, Springer Verlag, 1992.

  3. William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In1984 ACM Symposium on Lisp and Functional Programming, pages 356–364, New York, August 1984. The Association for Computing Machinery, Inc.

    Google Scholar 

  4. William Clinger and Jonathan A. Rees (eds.). Revised4 report on the algorithmic language Scheme. Technical Report CIS-TR-90-02, University of Oregon, 1990.

  5. Bruno Courcelle. Fundamental properties of infinite trees.Theoretical Computer Science, 25:95–169, 1983.

    Google Scholar 

  6. Edsger W. Dijkstra.A Discipline of Programming. Prentice-Hall, Englewood Cliffs, 1976.

    Google Scholar 

  7. William M. Farmer, Joshua D. Guttman, Leonard G. Monk, John D. Ramsdell, and Vipin Swarup. The faithfulness of the VLISP operational semantics. M 92B093, The MITRE Corporation, September 1992.

  8. William M. Farmer, Joshua D. Guttman, Leonard G. Monk, John D. Ramsdell, and Vipin Swarup. The VLISP linker. M 92B095, The MITRE Corporation, September 1992.

  9. David Gries.The Science of Programming. Springer-Verlag, 1981.

  10. Joshua D. Guttman, Leonard G. Monk, William M. Farmer, John D. Ramsdell, and Vipin Swarup. The VLISP byte-code compiler. M 92B092, The MITRE Corporation, September 1992.

  11. Joshua D. Guttman, Leonard G. Monk, William M. Farmer, John D. Ramsdell, and Vipin Swarup. The VLISP flattener. M 92B094, The MITRE Corporation, 1992.

  12. Joshua D. Guttman, Leonard G. Monk, John D. Ramsdell, William M. Farmer, and Vipin Swarup. A guide to VLISP, a verified programming language implementation. M 92B091, The MITRE Corporation, September 1992.

  13. Joshua D. Guttman, John D. Ramsdell, and Vipin Swarup. The VLISP verified Scheme system.Lisp and Symbolic Computation, 8(1/2):33–110, 1995.

    Google Scholar 

  14. Joseph Y. Halpern, Albert R. Meyer, and Boris A. Trakhtenbrot. The semantics of local storage, or what makes the free-list free? InConference Record of the Eleventh Annual ACM Symposium on the Principles of Programming Languages, pages 245–257, 1984.

  15. IEEE Std 1178–1990.IEEE Standard for the Scheme Programming Language. Institute of Electrical and Electronic Engineers, Inc., New York, NY, 1991.

  16. Richard A. Kelsey. Realistic compilation by program transformation. InConf. Rec. 16th Ann. ACM Symp. on Principles of Programming Languages. ACM, 1989.

  17. Richard A. Kelsey and Jonathan A. Rees. A tractable Scheme implementation.LISP and Symbolic Computation, 7(4):315–335, 1994.

    Google Scholar 

  18. David Kranz, Richard A. Kelsey, Jonathan A. Rees, Paul Hudak, Jim Philbin, and Norman I. Adams. Orbit: An optimizing compiler for Scheme.SIGPLAN Notices, 21(7):219–233, June 1986. Proceedings of the '86 Symposium on Compiler Construction.

  19. Albert R. Meyer and Kurt Sieber. Towards fully abstract semantics for local variables: Preliminary report. InConference Record of the Fifteenth Annual ACM Symposium on the Principles of Programming Languages, pages 191–203, 1988.

  20. J Strother Moore. Piton: A verified assembly-level language. Technical Report 22. Computational Logic, Inc., Austin, Texas, 1988.

    Google Scholar 

  21. Dino P. Oliva, John D. Ramsdell, and Mitchell Wand. The VLISP verified PreScheme compiler.LISP and Symbolic Computation, 8(1/2):111–182, 1995.

    Google Scholar 

  22. Dino P. Oliva and Mitchell Wand. A verified compiler for pure PreScheme. Technical Report NU-CCS-92-5, Northeastern University College of Computer Science, February 1992.

  23. Dino P. Oliva and Mitchell Wand. A verified runtime structure for pure PreScheme. Technical Report NU-CCS-92-27, Northeastern University College of Computer Science, September 1992.

  24. Gordon D. Plotkin. LCF considered as a programming language.Theoretical Computer Science, 5:223–256, 1977.

    Google Scholar 

  25. John D. Ramsdell, William M. Farmer, Joshua D. Guttman, Leonard G. Monk, and Vipin Swarup. The VLISP PreScheme front end. M 92B098, The MITRE Corporation, September 1992.

  26. David A. Schmidt.Denotational Semantics: A Methodology for Language Development. Wm. C. Brown, Dubuque, IA, 1986.

  27. Guy L. Steele. Rabbit: A compiler for Scheme. Technical Report 474, MIT AI Laboratory, 1978.

  28. Joseph E. Stoy.Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge, MA, 1977.

    Google Scholar 

  29. Vipin Swarup, William M. Farmer, Joshua D. Guttman, Leonard G. Monk, and John D. Ramsdell. The VLISP image builder. M 92B096, The MITRE Corporation, September 1992.

  30. Vipin Swarup, William M. Farmer, Joshua D. Guttman, Leonard G. Monk, and John D. Ramsdell. The VLISP byte-code interpreter. M 92B097, The MITRE Corporation, September 1992.

  31. Mitchell Wand. Semantics-directed machine architecture. InConf. Rec. 9th ACM Symp. on Principles of Prog. Lang., pages 234–241, 1982.

  32. Mitchell Wand and Dino P. Oliva. Proving the correctness of storage representations. InProceedings of the 1992 ACM Conference on LISP and Functional Programming, pages 151–160, New York, 1992. ACM Press.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

The work reported here was carried out as part of The MITRE Corporation's Technology Program, under funding from Rome Laboratory, Electronic Systems Command, United States Air Force, through contract F19628-89-C-0001. Preparation of this paper was generously supported by The MITRE Corporation. Mitchell Wand's participation was partly supported by NSF and DARPA under NSF grants CCR-9002253 and CCR-9014603.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Guttman, J.D., Ramsdell, J.D. & Wand, M. VLISP: A verified implementation of Scheme. Lisp and Symbolic Computation 8, 5–32 (1995). https://doi.org/10.1007/BF01128406

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01128406

Keywords

Navigation