Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 505))

Abstract

Concurrent Clean is an experimental, lazy, higher-order parallel functional programming language based on term graph rewriting. An important difference with other languages is that in Clean graphs are manipulated and not terms. This can be used by the programmer to control communication and sharing of computation. Cyclic structures can be defined. Concurrent Clean furthermore allows to control the (parallel) order of evaluation to make efficient evaluation possible. With help of sequential annotations the default lazy evaluation can be locally changed into eager evaluation. The language enables the definition of partially strict data structures which make a whole new class of algorithms feasible in a functional language. A powerful and fast strictness analyser is incorporated in the system. The quality of the code generated by the Clean compiler has been greatly improved such that it is one of the best code generators for a lazy functional language. Two very powerful parallel annotations enable the programmer to define concurrent functional programs with arbitrary process topologies. Concurrent Clean is set up in such a way that the efficiency achieved for the sequential case can largely be maintained for a parallel implementation on loosely coupled parallel machine architectures.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Augustsson L., Johnsson T. (1989), ‘The Chalmers Lazy-ML Compiler’, The Computer Journal, Vol. 32, No. 2 1989.

    Article  Google Scholar 

  • Barendregt, H.P., Eekelen, M.C.J.D. van, Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R., (1987a), M.R., (1987a), ‘Term Graph Reduction’, Proceedings of Parallel Architectures and Languages Europe (PARLE), part II, Eindhoven, The Netherlands, LNCS Vol. 259, pp. 141–158, June 1987.

    Google Scholar 

  • Barendregt, H.P., Eekelen, M.C.J.D. van, Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R., (1987b). Towards an Intermediate Language based on Graph Rewriting. Proceedings of Parallel Architectures and Languages Europe (PARLE), part II, Eindhoven, The Netherlands. Springer Lec. Notes Comp. Sci. 259, 159–175.

    Article  Google Scholar 

  • Barendregt, H.P., Eekelen, M.C.J.D. van, Plasmeijer, MJ., Hartel, P.H., Hertzberger, L.O., Vree, W.G., (1987), ‘The Dutch Parallel Reduction Machine Project’, Intern. Conf. on Frontiers in Computing, Amsterdam, Dec. 1987.

    Google Scholar 

  • Barendregt, H.P., Eekelen, M.CJ.D. van, Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., Sleep, M.R. (1988). ‘Towards an Intermediate Language based on Graph Rewriting’. Revised version. Journal of Parallel Computing 9 with selected papers of the conference on Parallel Architectures and Languages Europe (PARLE), Eindhoven, The Netherlands. North-Holland 163–177.

    Google Scholar 

  • Brus, T., Eekelen, M.C.J.D. van, Leer, M. van, Plasmeijer, M.J. (1987). Clean–A Language for Functional Graph Rewriting. Proc. of the Third International Conference on Functional Programming Languages and Computer Architecture (FPCA ‘87), Portland, Oregon, USA, Springer Lec. Notes on Comp.Sci. 274, 364–384.

    Article  Google Scholar 

  • Burstall, R.M., MacQueen, D.B., and Sanella, D.T. (1980). Hope: An Experimental Applicative Language. Proceedings of the 1980 LISP Conference, 136–143.

    Google Scholar 

  • Eekelen, M.C.J.D. van, (1988). Parallel Graph Rewriting, Some Contributions to its Theory, its Implementation and its Application. University of Nijmegen. Ph.D. Thesis.

    Google Scholar 

  • Eekelen, M.C.J.D. van, Plasmeijer, M.J., Smetsers, J.E.W., (1989b). Communicating Functional Processes. University of Nijmegen. Technical Report 89–3.

    Google Scholar 

  • Eekelen M.C.J.D. van, Nöcker E.G.J.M.H., Plasmeijer M.J., Smetsers J.E.W., (1990). ‘Concurrent Clean, version 0.6’, Technical Report 90–21, University of Nijmegen, December 1990.

    Google Scholar 

  • Eekelen, M.C.J.D. van, Plasmeijer, M.J., Smetsers, J.E.W., (1991). Parallel Graph Rewriting on Loosely Coupled Machine Architectures’ proceedings of the workshop on CTRS’90. Montreal Canada. To appear in 1991.

    Google Scholar 

  • Eekelen, M.C.J.D. van, Plasmeijer, M.J., (1990). ‘Concurrent Functional Programming’. Proceedings of the conference on Unix zhaohuan Parallelism, NLUUG, may 1990, pp 75–98.

    Google Scholar 

  • Glauert, J.R.W., Kennaway, J.R., Sleep, M.R., (1987), ‘DACTL: A Computational Model and Compiler Target Language Based on Graph Reduction’, ICL Technical Journal, May 1987.

    Google Scholar 

  • Groningen J. van. (1990). ‘Implementing the ABC-machine on M680x0 based architectures’. Master Thesis, University of Nijmegen, November 1990.

    Google Scholar 

  • Johnsson Th. (1987). ‘Compiling Lazy Functional Programming languages’. Dissertation at Chalmers University, Götenborg, Sweden. ISBN 91–7032–280–5.

    Google Scholar 

  • Kesseler M., (1990), ‘Concurrent Clean on Transputers’, Master Thesis, University of Nijmegen, November 1990.

    Google Scholar 

  • Koopman, P.W.M., Nöcker, E.G.J.M.H. (1988), ‘Compiling functional languages to Term Graph Rewriting Systems’. Technical Report 88–1, University of Nijmegen.

    Google Scholar 

  • Koopman P.W.M., Eekelen M.C.J.D. van, Nöcker E.G.J.M.H., Smetsers S., Plasmeijer M.J. (1990). ‘The ABC-machine: A Sequential Stack-based Abstract Machine For Graph Rewriting’. Technical Report, University of Nijmegen.

    Google Scholar 

  • McBurney, D, Sleep, R. (1990), ‘Concurrent Clean on Zapp’, Proceedings of the Second International Workshop on Implementations of Functional Languages on Distributed Architectures, University of Nijmegen, November 1990.

    Google Scholar 

  • Milner, R.A. (1978). Theory of Type Polymorphism in Programming. Journal of Computer and System Sciences, Vol. 17, no. 3, 348–375.

    Article  MathSciNet  Google Scholar 

  • Mycroft, A. (1984). Polymorphic type schemes and recursive definitions. Proc. of the 6th Int. Conf. on Programming, Springer Lec. Notes Comp. Sci. 167, 217–228.

    Google Scholar 

  • Nöcker E.GJ.M.H., (1989). ‘The PABC Simulator, v0.5. Implementation Manual’. University of Nijmegen, Technical Report 89–19.

    Google Scholar 

  • Nöcker E.G.J.M.H. (1990). ‘Strictness Analysis based on Abstract Reduction’, in Proceedings of the Second International Workshop on Implementation of Functional Languages on Parallel Architectures, pp. 297–321, Technical Report no. 90–16, October 1990, University of Nijmegen.

    Google Scholar 

  • Nöcker E.GJ.M.H., Smetsers J.E.W., (1990). Partially Strict Data Types’, Proceedings of the Second International Workshop on Implementations of Functional Languages on Distributed Architectures, University of Nijmegen, November 1990.

    Google Scholar 

  • Peyton Jones S.L, Salkild J. (1989). ‘The Spineless Tagless G-machine’. Proceedings of the Conference on Functional Programming Languages and Computer Architectures, Addison Wesley, pp 184–201.

    Google Scholar 

  • Plasmeijer, M.J., Eekelen, M.C.J.D. van (1989). Functional Programming and Parallel Graph Rewriting. Lecture notes, University of Nijmegen, to appear at Addison Wesley 1991.

    MATH  Google Scholar 

  • Smetsers J.E.W., (1989). ‘Compiling Clean to Abstract ABC-Machine Code’. University of Nijmegen, Technical Report 89–20.

    Google Scholar 

  • Smetsers, J.E.W., Eekelen, M.C.J.D. van, Plasmeijer, M.J., (1991). Operational semantics of Concurrent Clean. University of Nijmegen. Technical Report in preparation.

    MATH  Google Scholar 

  • Turner D.A. (1985), ‘Miranda: A non-strict functional language with polymorphic types’. Proc. of the conference on Functional Programming Languages and Computer Architecture, Springer Lec. Notes Comp. Sci. 201, 1–16.

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nöcker, E.G.J.M.H., Smetsers, J.E.W., van Eekelen, M.C.J.D., Plasmeijer, M.J. (1991). Concurrent Clean. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds) Parle ’91 Parallel Architectures and Languages Europe. Lecture Notes in Computer Science, vol 505. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-25209-3_39

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-25209-3_39

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-23206-4

  • Online ISBN: 978-3-662-25209-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics