Skip to main content

The Implementation of Interactive Local State Transition Systems in Clean

  • Conference paper
Implementation of Functional Languages (IFL 1999)

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

Included in the following conference series:

Abstract

The functional programming language Clean offers an extensive library, the object I/O library, to programmers to create interactive applications that use Graphical User Interfaces (GUI). Programs are constructed by composition of interactive objects. Interactive objects share state. To support modular programming it is also possible to provide objects with local state. Hierarchies of stateful objects are defined by means of algebraic specifications. Good use is made of the fact that Clean is a strongly typed language. In this paper we show how the evaluation of interactive objects is implemented in the object I/O library. The evaluation can be handled elegantly using lazy evaluation.

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

  1. Achten, P.M., van Groningen, J.H.G., Plasmeijer, M.J.: High Level Specification of I/O in Functional Languages. In: Launchbury, J., Sansom, P. (eds.) Proceedings Glasgow Workshop on Functional Programming, Workshops in Computing, Ayr, Scotland, July 6-8, pp. 1–17. Springer, Berlin (1992)

    Google Scholar 

  2. Achten, P.M., Plasmeijer, M.J.: The ins and outs of Clean I/O. Journal of Functional Programming 5(1), 81–110 (1995)

    Article  MATH  Google Scholar 

  3. Achten, P.M., Plasmeijer, M.J.: Interactive Functional Objects in Clean. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 304–321. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  4. Achten, P.M., Wierich, M.: A Tutorial to the Clean Object I/O Library - version 1.1. Internal Report, Department of Functional Programming, University of Nijmegen, The Netherlands (1999), Available on Internet: ftp://ftp.cs.kun.nl/pub/Clean/supported/ObjectIO/doc/tutorial.11.ps.gz.

  5. Barendsen, E., Smetsers, J.E.W.: Uniqueness Type Inference. In: [10], pp. 189–206

    Google Scholar 

  6. Bjørner, D., Broy, M., Pottosin, I.V. (eds.): PSI 1996. LNCS, vol. 1181. Springer, Heidelberg (1996)

    Google Scholar 

  7. Brus, T., van Eekelen, M.C.J.D., Leer, M.O., Plasmeijer, M.J.: Clean: A Language for Functional Graph Rewriting. In: Kahn, G. (ed.) FPCA 1987. LNCS, vol. 274, pp. 364–384. Springer, Heidelberg (1987)

    Google Scholar 

  8. Carlsson, M., Hallgren, T.: FuDGETS - A Graphical User Interface in a Lazy Functional Language. In: Proceedings of Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 9-11, pp. 321–330. ACM Press, New York (1993)

    Chapter  Google Scholar 

  9. Frauenstein, T., Grieskamp, W., Pepper, P., Südholt.: Communicating Functional Agents and Their Application to Graphical User Interfaces. In: [6], pp. 386–397

    Google Scholar 

  10. Hermenegildo, M., Swierstra, S.D. (eds.): PLILP 1995. LNCS, vol. 982. Springer, Heidelberg (1995)

    Google Scholar 

  11. Jones, M.P.: A system of constructor classes: overloading and implicit higher-order polymorphism. In: Proceedings of Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 9-11, pp. 52–61. ACM Press, New York (1993)

    Google Scholar 

  12. Noble, R., Runciman, C.: Gadgets: Lazy Functional Components for Graphical User Interfaces. In: [10], pp. 321-340

    Google Scholar 

  13. Nöcker, E.G.J.M.H., Smetsers, J.E.W., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Concurrent Clean. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds.) PARLE 1991. LNCS, vol. 506, pp. 202–219. Springer, Heidelberg (1991)

    Google Scholar 

  14. Plasmeijer, M.J., van Eekelen, M.C.J.D.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley Publishing Company, Reading (1993)

    MATH  Google Scholar 

  15. Scholz, E.: PlDGETS - Unifying Pictures and Widgets in a Constraint-Based Framework for Concurrent GUI Programming. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 363–377. Springer, Heidelberg (1996)

    Google Scholar 

  16. Smetsers, J.E.W., Barendsen, E., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Guaranteeing Safe Destructive Updates through a Type System with Uniqueness Information for Graphs. In: Ehrig, H., Schneider, H.-J. (eds.) Dagstuhl Seminar 1993. LNCS, vol. 776, pp. 358–379. Springer, Heidelberg (1994)

    Google Scholar 

  17. Vullinghs, T., Schulte, W., Schwinn, T.: The Design of a Functional GUI Library Using Constructor Classes. In: [6], pp. 398–408

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Achten, P., Plasmeijer, R. (2000). The Implementation of Interactive Local State Transition Systems in Clean. In: Koopman, P., Clack, C. (eds) Implementation of Functional Languages. IFL 1999. Lecture Notes in Computer Science, vol 1868. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722298_7

Download citation

  • DOI: https://doi.org/10.1007/10722298_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67864-9

  • Online ISBN: 978-3-540-44658-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics