Compiling joy into Silicon: An exercise in applied structural operational semantics

  • Sam Weber
  • Bard Bloom
  • Geoffrey Brown
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 666)


We present the highlights of an algorithm and correctness proof for compiling programs written in Joy, a simple parallel language, into delay-insensitive circuits. The proof relies heavily on techniques of structural operational semantics, many of which should generalize to similar settings.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    J. C. M. Baeten and W. P. Weijland. Process Algebra. Cambridge Tracts in Theoretical Computer Science 18. Cambridge University Press, 1990.Google Scholar
  2. [2]
    H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic. North-Holland, 1981. Revised Edition, 1984.Google Scholar
  3. [3]
    H. Bisseling, H. Eemers, M. Kamps, and A. Peeters. Designing delay-insensitive circuits. Technical report, 1990.Google Scholar
  4. [4]
    B. Bloom. Partial traces and the semantics and logic of ccs-like languages. Technical Report 89–1066, Cornell, 1989.Google Scholar
  5. [5]
    B. Bloom. Ready Simulation, Bisimulation, and the Semantics of CCS-Like Languages. PhD thesis, Massachusetts Institute of Technology, Aug. 1989.Google Scholar
  6. [6]
    E. Brunvand and R. F. Sproull. Translating concurrent communicating programs into delay-insensitive circuits. Technical Report CMU-CS-89-126, Carnegie-Mellon University, 1989.Google Scholar
  7. [7]
    S. M. Burns and A. J. Martin. Syntax-directed translation of concurrent programs into self-timed circuits. In Advanced Research in VLSI: Proceedings of the 5th MIT Conference, pages 35–50, 1988.Google Scholar
  8. [8]
    W. A. Clark and C. E. Molnar. Macromodular computer systems. In B. Waxman and R. Stacey, editors, Biomedical Research Vol. IV, pages 45–85. Academic, New York.Google Scholar
  9. [9]
    D. L. Dill. Trace Theory for Automatic Hierarchical Verification of Speed-Independent Circuits. MIT Press, 1989.Google Scholar
  10. [10]
    J. Hyland. A syntactic characterization of the equality in some models of the λ-calculus. J. London Math. Soc, 2(12):361–370, 1976.Google Scholar
  11. [11]
    R. M. Keller. Towards a theory of universal speed-independent modules. IEEE Transactions on Computers, C-23(1):21–33, January 1974.Google Scholar
  12. [12]
    A. J. Martin. Compiling communicating processes into delay-insensitive VLSI circuits. Distributed Computing, 1:226–234, 1986.Google Scholar
  13. [13]
    G. J. Milne. The Correctness of a Simple Silicon Compiler., pages 1–12. North-Holland, 1983.Google Scholar
  14. [14]
    R. Milner. A modal characterisation of observable machine-behaviour. In E. Astesiano and C. Böhm, editors, CAAP '81: Trees in Algebra and Programming, 6th Colloquium, volume 112 of Lect. Notes in Computer Sci., pages 25–34. Springer-Verlag, 1981.Google Scholar
  15. [15]
    R. Milner. Communication and Concurrency. Prentice Hall International Series in Computer Science. Prentice Hall, New York, 1989.Google Scholar
  16. [16]
    C. E. Molnar, T.-P. Fang, and F. U. Rosenbeiger. Synthesis of delay-insensitive modules. In H. Fuchs, editor, Chapel Hill Conference on VLSI, pages 67–86, 1985.Google Scholar
  17. [17]
    D. Park. Concurrency and automata on infinite sequences. In P. Deussen, editor, Theoretical Computer Science, Lect. Notes in Computer Sci., page 261. Springer-Verlag, 1981.Google Scholar
  18. [18]
    G. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University, Computer Science Department, Denmark, 1981.Google Scholar
  19. [19]
    G. D. Plotkin. LCF considered as a programming language. Theoretical Computer Sci., 5(3):223–255, 1977.Google Scholar
  20. [20]
    R. Sproull and I. E. Sutherland. Asynchronous Systems. Sutherland, Sproull & Associates, 1986.Google Scholar
  21. [21]
    J. Staunstrup and M. Greenstreet. Atomicity, programs, and hardware. Technical Report ID-TR 198-46, Technical University of Denmark, 1990.Google Scholar
  22. [22]
    M. J. F. T. S. Anantharaman, E. M. Clarke and B. Mishra. Compiling path expressions into vlsi circuits. Distributed Computing, 1:150–166, 1986.Google Scholar
  23. [23]
    F. Vaandrager. On the relationship between process algebra and input/output automata. In Sixth annual IEEE symposium on Logic in Computer Science, pages 387–389. IEEE Computer Society Press, 1991.Google Scholar
  24. [24]
    C. H. K. van Berkel, C. Niessen, M. Rem, and R. W. Saeijs. VLSI programming and silicon compilation; a novel approach from philips research. In ICCD, 1988.Google Scholar
  25. [25]
    K. van Berkel. Handshake Circuits: an intermediary between communicating processes and VLSI. PhD thesis, Technische Universiteit Eindhoven, 1992.Google Scholar
  26. [26]
    C. Wadsworth. The relation between computational and denotational properties for Scott's D-models of the λ-calculus. SIAM J. Comput., 5:488–521, 1976.Google Scholar
  27. [27]
    S. Weber, B. Bloom, and G. Brown. Compiling Joy to silicon: A verified silicon compilation scheme. In T. Knight and J. Savage, editors, Proceedings of the Advanced Research in VLSI and Parallel Systems Conference, pages 79–98. 1992.Google Scholar
  28. [28]
    A. K. Wright and M. Felleisen. A syntactic approach to type soundness. Technical Report TR91-160, Rice University, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Sam Weber
    • 1
  • Bard Bloom
    • 1
  • Geoffrey Brown
    • 1
  1. 1.Cornell UniversityUSA

Personalised recommendations