Skip to main content
Log in

A common intermediate language and its use in partitioning concurrent declarative programs

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure, and if this structure can be exploited, static analysis techniques can be shared across language families. These techniques can thus provide a common kernel for the implementation of quality compilers for this entire language class.

The purpose of this paper is to exploit the similarities of non-strict functional and concurrent logic languages in the design of a common intermediate language (CIL). The CIL is introduced incrementally, giving at each step the rationale for its extension. As an application, we present, in CIL form, some state-of-the-art static partitioning algorithms from the literature. This allows us to “uncover” the relative advantages and disadvantages of the analyses, and determine promising directions for improving static partitioning.

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. Ariola, Z. M., “An Algebraic Approach to the Compilation and Operational Semantics of Functional Languages with I-Structures,”Ph.D. thesis, Harvard University, June 1992.

  2. Ariola, Z. M. and Arvind, “P-TAC: A Parallel Intermediate Language,”in Conference on Functional Programming Languages and Computer Architecture, London, ACM Press, pp. 230–242, September 1989.

  3. Ariola, Z. M. and Arvind, “A Syntactic Approach to Program Transformation,”in ACM SIGPLAN Symposium on Parallel Evaluation and Semantics Based Program Manipulation, New Haven, June 1991, Yale University, ACM Press, pp. 116–129, 1991.

  4. Ariola, Z. M. and Arvind, “Graph Rewriting Systems for Efficient Compilation,” inTerm Graph Rewriting: Theory and Practice, John Wiley and Sons, pp. 77–90, 1993.

  5. Arvind, Augusston, L., Hicks, J., Nikhil, R. S., Peyton-Jones, S., Stoy, J., and Williams, W., “pH: A Parallel Haskell,”Technical Report, MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139, USA, September 1993 (Unpublished).

    Google Scholar 

  6. Arvind, Nikhil, R. S., and Pingali, K. K., “I-Structures: Data Structures for Parallel Computing,” inWorkshop on Graph Reduction, No. 279 in Lecture Notes in Computer Science, Santa Fe, September/October 1986, Springer-Verlag, pp. 336–369, 1986.

  7. Barth, P. S., Nikhil, R. S., and Arvind, “M-Structures: Extending a Parallel, Non-Strict, Functional Language with State,” inConference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, Springer-Verlag, pp. 538–568, 1991.

  8. Clark, K. L. and Gregory, S., “PARLOG: Parallel Programming in Logic,”ACM Transactions on Programming Languages and Systems, 8, 1, pp. 1–49, January 1986.

    Article  MATH  Google Scholar 

  9. Coorg, S. R., “Partitioning Non-Strict Functional Languages for Multi-Threaded Code Generation,”Master’s thesis, MIT, May 1994.

  10. Foster, I. and Taylor, S.,Strand: New Concepts in Parallel Programming, Prentice Hall, Englewood Cliffs, NJ, 1989.

    Google Scholar 

  11. Hoch, J. E., Davenport, D. M., Grafe, V. G., and Steele, K. M., “Compile-Time Partitioning of a Non-Strict Language into Sequential Threads,” inSymposium on Parallel and Distributed Processing, Dallas, IEEE Computer Society Press pp. 180–189, December 1991.

    Google Scholar 

  12. Horowitz, E. and Sahni, S.,Fundamentals of Data Structures, Computer Science Press, Woodland Hills, CA, 1976.

    MATH  Google Scholar 

  13. Hudak, P. and Goldberg, B., “Serial Combinators: Optimal Grains for Parallelism,” inConference on Functional Programming Languages and Computer Architecture, Nancy, France, September 1985, Springer-Verlag, pp. 382–399, 1985.

  14. Hudak, P., Peyton-Jones, S., and Wadler, P., “Report on Programming Language Haskell: A Non-Strict, Purely Functional Language, Version 1.2,”ACM SIGPLAN Notices, 27, 5, pp. 1–164, May 1992.

    Google Scholar 

  15. Iannucci, R. A., “Toward a Dataflow/von Neumann Hybrid Architecture,” inInternational Symposium on Computer Architecture, Honolulu, IEEE Computer Society Press, pp. 131–140, May 1988.

    Google Scholar 

  16. Iannucci, R. A.,Parallel Machine Languages, Kluwer Academic Publishers, Boston, 1990.

    MATH  Google Scholar 

  17. King, A. and Soper, P. “Heuristics, Thresholding and a New Technique for Controlling the Granularity of Concurrent Logic Programs,”Technical Report, CSTR 92-08, Department of Electronics and Computer Science, University of Southampton, 1992.

  18. King, A. and Soper, P., “Schedule Analysis: A Full Theory, a Pilot Implementation, and a Preliminary Assessment,”Technical Report, CSTR 92-06, Department of Electronics and Computer Science, University of Southampton, February 1992.

  19. King, A. and Soper, P., “Schedule Analysis of Concurrent Logic Programs,” inJoint International Conference and Symposium on Logic Programming, Washington D. C., MIT Press, pp. 478–492, November 1992.

    Google Scholar 

  20. Lindstrom, G., “Functional Programming and the Logic Variable,” inSIGPLAN Symposium on Principles of Programming Languages, New Orleans, ACM Press, pp. 266–280, January 1985.

    Google Scholar 

  21. Massey, B. C. and Tick, E., “Modes of Comprehension: Mode Analysis of Array Comprehensions” inProgramming Languages, Implementations, Logics and Programs, Lecture Notes on Computer Science, no. 982, Springer Verlag, Utrecht, pp. 207–222, September 1995.

    Chapter  Google Scholar 

  22. Nikhil, R. S., “Id (Version 90.0) Reference Manual,”Technical Report, CSG Memo 284-a, MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139, USA, July 1990.

    Google Scholar 

  23. Nikhil, R. S., “A Multithreaded Implementation of Id Using P-RISC Graphs,” inLanguages and Compilers for Parallel Computing, Portland, Springer-Verlag, August 1993.

    Google Scholar 

  24. Schauser, K. E., “Compiling Lenient Languages for Parallel Asynchronous Execution,”Ph.D. thesis, University of California at Berkeley, 1994.

  25. Schauser, K. E., Culler, D. E., and Goldstein, S. C., “Separation Constraint Partitioning — A New Algorithm for Partitioning Non-Strict Programs into Sequential Threads,” inSIGPLAN Symposium on Principles of Programming Languages, ACM Press, January 1995.

  26. Schauser, K. E., Culler, D. E., and von Eicken, T., “Compiler-Controlled Multithreading for Lenient Parallel Languages,” inConference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science, Cambridge MA., Springer-Verlag, pp. 50–72, 1991.

    Google Scholar 

  27. Shapiro, E. Y., “The Family of Concurrent Logic Programming Languages,”ACM Computing Surveys, 21, 3, pp. 413–510, 1989.

    Article  Google Scholar 

  28. Sundararajan, R., “Data Flow and Control Flow Analysis of Logic Programs,”Ph.D. thesis, Department of Computer Science, University of Oregon, 1994. Also available asTechnical Report, CIS-TR-94-08.

  29. Symogyi, Z., “A System of Precise Modes for Logic Programs,” inInternational Conference on Logic Programming, University of Melbourne, MIT Press, pp. 769–787, May 1987.

  30. Tick, E., “The Deevolution of Concurrent Logic Programming Languages,”Journal of Logic Programming, 22, 1996.

  31. Tick, E., Massey, B. C., Rakoczi, F., and Tulayathun, P., “Concurrent Logic Programs a la Mode,” inImplementations of Logic Programming Systems (E. Tick and G. Succi, eds.), Kluwer Academic Publishers, pp. 239–244, 1994.

  32. Traub, K. R., “Compilation as Partitioning: A New Approach to Compiling Non-Strict Functional Languages,” inConference on Functional Programming Languages and Computer Architecture, London, September 1989, ACM Press, pp. 75–88, 1989.

  33. Traub, K. R.,Implementation of Compiling Non-Strict Functional Languages, MIT Press, 1991. 34) Traub, K. R., Culler, D. E., and Schauser, K. E., “Global Analysis for Partitioning Non-Strict Programs into Sequential Threads,” inConference on Lisp and Functional Programming, San Francisco, 1992, ACM Press, pp. 324–334, 1992.

  34. Ueda, K. and Morita, M., “Moded Flat GHC and Its Message-Oriented Implementation Technique,”New Generation Computing, 13, 1, pp. 3–43, 1994.

    Article  Google Scholar 

  35. Wadler, P., “Strictness Analysis on Non-Flat Domains (by Abstract Interpretation Over Finite Domains),” inAbstract Interpretation of Declarative Languages (S. Abramsky and C. Hankin, eds.), Ellis Horwood Ltd, Chichester, pp. 181–198, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Zena M. Ariola, Ph.D: She is an assistant professor of Information and Computer Science at the University of Oregon. She received her B. S. degree in computer science at the University of Pisa in 1980 and her Ph.D. degree in computer science from Harvard University in 1992. Her current research interests include functional and logic languages, compilation and optimization techniques, and the theory of languages.

Bart C. Massey: He received a B.A. in physics from Reed College in 1987 and an M.S. in computer science from the University of Oregon in 1991. He has taught computer science at Portland State University and worked at Tektronix Inc. Currently he is a Ph.D. student at the University of Oregon. His research interests include advanced programming language design, implementation, and analysis, and algorithms and their application to artificial intelligence problems.

Evan Tick, Ph.D: He is an associate professor of Information and Computer Science at the University of Oregon. Tick received his B.S. and M.S degrees in electrical engineering from MIT in 1982 and his Ph. D. degree in electrical engineering from Stanford University in 1987. His current research interests include concurrent language compilation and runtime system design, logic programming, and financial engineering. Tick is a member of the IEEE and the ALP.

About this article

Cite this article

Ariola, Z.M., Massey, B.C., Sami, M. et al. A common intermediate language and its use in partitioning concurrent declarative programs. New Gener Comput 14, 281–315 (1996). https://doi.org/10.1007/BF03037485

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Keywords

Navigation