Advertisement

Compiler correctness for concurrent languages

  • David S. Gladstein
  • Mitchell Wand
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1061)

Abstract

This paper extends previous work in compiler derivation and verification to languages with true-concurrency semantics. We extend the λ-calculus to model process-centered concurrent computation, and give the semantics of a small language in terms of this calculus. We then define a target abstract machine whose states have denotations in the same calculus. We prove the correctness of a compiler for our language: the denotation of the compiled code is shown to be strongly bisimilar to the denotation of the source program, and the abstract machine running the compiled code is shown to be branching-bisimilar to the source program's denotation.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    R. M. Amadio. Translating core Facile. Technical Report ECRC-1994-3, ECRC, Feb. 1994.Google Scholar
  2. 2.
    P. America, J. de Bakker, J. N. Kok, and J. Rutten. Operational semantics of a parallel object-oriented language. In Conf. Rec. 13th ACM Symposium on Principles of Programming Languages, pages 194–208, 1986.Google Scholar
  3. 3.
    A. W. Appel. Compiling with Continuations. Cambridge University Press, Cambridge, 1992.Google Scholar
  4. 4.
    J. Armstrong, R. Virding, and M. Williams. Concurrent Programming in Erlang. Prentice Hall, 1993.Google Scholar
  5. 5.
    J. S. Auerbach et al. Concurrent/C Tutorial and User's Guide: An Introduction to a Language for Distributed C Programming. IBM T. J. Watson Research Center, June 1994.Google Scholar
  6. 6.
    H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, 1984.Google Scholar
  7. 7.
    B. Bloom. Chocolate: Calculi of higher order communication and lambda terms. In Conf. Rec. 21st ACM Symposium on Principles of Programming Languages, pages 339–347, 1994.Google Scholar
  8. 8.
    N. Carriero and D. Gelernter. How to Write Parallel Programs: A First Course. MIT Press, 1990.Google Scholar
  9. 9.
    W. Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356–364, Aug. 1984.Google Scholar
  10. 10.
    A. Geist et al. PVM 3 User's Guide and Reference Manual. Oak Ridge National Laboratory, May 1993.Google Scholar
  11. 11.
    A. Giacalone, P. Mishra, and S. Prasad. Facile: A symmetric integration of concurrent and functional programming. International Journal of Parallel Programming, 18(2):121–160, 1989.Google Scholar
  12. 12.
    A. Giacalone, P. Mishra, and S. Prasad. Operational and algebraic semantics for facile: A symmetric integration of concurrent and functional programming. In Proc. ICALP '90, volume 443 of Lecture Notes in Computer Science, pages 765–7780, Berlin, Heidelberg, and New York, 1990. Springer-Verlag.Google Scholar
  13. 13.
    D. Gladstein. Compiler Correctness for Concurrent Languages. PhD thesis, Northeastern University, Dec. 1994. Available via anonymous ftp from ftp.ccs.neu.edu as /pub/people/daveg/thesis.ps.Z.Google Scholar
  14. 14.
    R. Gorrieri and C. Laneve. Split and ST bisimulation semantics. Information and Computation, 118:272–288, 1995.Google Scholar
  15. 15.
    J. D. Guttman, V. Swarup, and J. Ramsdell. The VLISP verified scheme system. Lisp and Symbolic Computation, 8(1/2), 1995.Google Scholar
  16. 16.
    M. Hennessy. Axiomatising finite concurrent processes. SIAM Journal of Computation, 15(5):997–1017, 1995.Google Scholar
  17. 17.
    C. Hoare. Communicating Sequential Processes. Prentice Hall International, 1985.Google Scholar
  18. 18.
    R. Milner. Functions as processes. Mathematical Structures in Computer Science, 2:119–141, 1992.Google Scholar
  19. 19.
    R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes (parts i and ii). Information and Computation, 100:1–77, 1992.Google Scholar
  20. 20.
    F. Nielson and H. R. Nielson. From CML to process algebras. In Proceesings of CONCUR '93, pages 493–508, Berlin, Heidelberg, and New York, 1993. Springer-Verlag.Google Scholar
  21. 21.
    D. P. Oliva, J. D. Ramsdell, and M. Wand. The VLISP verified PreScheme compiler. Lisp and Symbolic Computation, 8(1/2), 1995.Google Scholar
  22. 22.
    J. C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4):233–248, 1993.Google Scholar
  23. 23.
    G. Springer and D. P. Friedman. Scheme and the Art of Programming. MIT Press, 1989.Google Scholar
  24. 24.
    B. Thomsen. A calculus of higher order communicating systems. In Conf. Rec. 16th ACM Symposium on Principles of Programming Languages, pages 143–154, 1989.Google Scholar
  25. 25.
    R. van Glabbeek and F. Vaandrager. The difference between splitting in n and n+1 (abstract). In E. Best and G. Rozenberg, editors, Proceedings 3rd Workshop on Concurrency and Compositionality, Sankt Augustin, Germany, February 1991. GMD-Studien Nr. 191.Google Scholar
  26. 26.
    D. Walker. π-calculus semantics of object-oriented programming languages. In Proc. Conference on Theoretical Aspects of Computer Software, Lecture Notes in Computer Science, Berlin, Heidelberg, and New York, 1991. Springer-Verlag.Google Scholar
  27. 27.
    M. Wand. Deriving target code as a representation of continuation semantics. ACM Transactions on Programming Languages and Systems, 4(3):496–517, July 1982.Google Scholar
  28. 28.
    M. Wand. Semantics-directed machine architecture. In Conf. Rec. 9th ACM Symposium on Principles of Programming Languages, pages 234–241, 1982.Google Scholar
  29. 29.
    M. Wand. Loops in combinator-based compilers. Information and Control, 57(2–3):148–164, May/June 1983.Google Scholar
  30. 30.
    M. Wand. Compiler correctness for parallel languages. In 1995 Symposium on Functional Languages and Computer Architecture, June 1995.Google Scholar
  31. 31.
    M. Wand and D. P. Oliva. Proving the correctness of storage representations. In Proc. 1992 ACM Symposium on Lisp and Functional Programming, pages 151–160, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • David S. Gladstein
    • 1
  • Mitchell Wand
    • 1
  1. 1.College of Computer ScienceNortheastern UniversityBostonUSA

Personalised recommendations