Skip to main content

The design of a functional GUI library using constructor classes

  • Conference paper
  • First Online:
Perspectives of System Informatics (PSI 1996)

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

Abstract

We present the design rationale of a constructor class-based implementation of a graphical user interface library. This library, named TkGofer, provides a convenient way to write window-oriented applications in the pure, functional programming language Gofer.

The principal contribution of the approach embodied in the library is its flexibility and its type security to specify the appearance and behaviour of individual widgets and their composition.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of I/O in functional languages. In Glasgow Workshop on Functional Programming 1992. Springer Verlag, 1993.

    Google Scholar 

  2. M. Carlsson and Th. Hallgren. Fudgets — a graphical user interface in a lazy functional language. In Conference on Functional Programming and Computer Architecture. ACM Press, 1993.

    Google Scholar 

  3. T. Frauenstein, W. Grieskamp, P. Pepper, and M. Südholt. Functional programming of communicating agents and its application to graphical user interfaces. In Proceedings PSI'96. Springer-Verlag, 1996

    Google Scholar 

  4. M. Hermenegildo and S.D. Swierstra, editors. Programming Languages: Implementations, Logics and Programs. 7th International Symposium, PLILP '95, volume 982 of Lecture Notes in Computer Science. Springer-Verlag, September 1995.

    Google Scholar 

  5. P. Hudak, S.L. Peyton Jones, and Ph. Wadler (eds.). Report on the programming language Haskell, Version 1.2. ACM SIGPLAN Notices, 27(5), 1992.

    Google Scholar 

  6. M. Jones. Release notes for Gofer 2.28, 1993. Included as part of the standard Gofer distribution.

    Google Scholar 

  7. M.P. Jones. An introduction to Gofer (draft), 1993. Included as part of the standard Gofer distribution.

    Google Scholar 

  8. M.P. Jones. Functional programming with overloading and higher-order polymorphism, volume 925 of Lecture Notes in Computer Science, pages 97–136. Springer-Verlag, 1995.

    Google Scholar 

  9. E. Moggi. Computational lambda-calculus and monads. In Symposium on Logic in Computer Science, pages 14–23, Washington DC, 1989. IEEE.

    Google Scholar 

  10. R. Noble and C. Runciman. Gadgets: Lazy functional components for graphical user interfaces. In Hermenegildo and Swierstra [4], pages 321–340.

    Google Scholar 

  11. J.K. Ousterhout. Tcl and the Tk toolkit. Addison Wesley, 1994.

    Google Scholar 

  12. S.L. Peyton Jones and Ph. Wadler. Imperative functional programming. In Proc. 20th ACM Symposium on Principles of Programming Languages, Charlotte, North Carolina, January 1993.

    Google Scholar 

  13. T. Vullinghs, D. Tuijnman, and W. Schulte. Lightweight GUIs for functional programming. In Hermenegildo and Swierstra [4], pages 341–356.

    Google Scholar 

  14. Ph. Wadler. Comprehending monads. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dines Bjørner Manfred Broy Igor V. Pottosin

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vullinghs, T., Schulte, W., Schwinn, T. (1996). The design of a functional GUI library using constructor classes. In: Bjørner, D., Broy, M., Pottosin, I.V. (eds) Perspectives of System Informatics. PSI 1996. Lecture Notes in Computer Science, vol 1181. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62064-8_33

Download citation

  • DOI: https://doi.org/10.1007/3-540-62064-8_33

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62064-8

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics