Skip to main content

A Functional Logic Programming Approach to Graphical User Interfaces

  • Conference paper
  • First Online:
Practical Aspects of Declarative Languages (PADL 2000)

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

Included in the following conference series:

Abstract

We show how the features of modern integrated functional logic programming languages can be exploited to implement graphical user interfaces (GUIs) in a high-level declarative style. For this purpose, we have developed a GUI library in Curry, a multi-paradigm language amalgamating functional, logic, and concurrent programming principles. The functional features of Curry are exploited to define the graphical structure of an interface and to implement new graphical abstractions, and the logic features of Curry are used to specify the logical dependencies of an interface. Moreover, the concurrent and distributed features of Curry support the easy implementation of GUIs to distributed systems.

This research has been partially supported by the German Research Council (DFG) under grant Ha 2457/1-1 and by the DAAD under the PROCOPE programme.

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. S. Antoy, R. Echahed, and M. Hanus. A Needed Narrowing Strategy. In Proc. 21st ACM Symposium on Principles of Programming Languages, pp. 268–279, 1994.

    Google Scholar 

  2. M. Carlsson and T. Hallgren. Fudgets — A Graphical User Interface in a Lazy Functional Language. In Conference on Functional Programming and Computer Architecture (FPCA’93). ACM Press, 1993.

    Google Scholar 

  3. K. Claessen, T. Vullinghs, and E. Meijer. Structuring graphical paradigms in TkGofer. In Proc. of the International Conference on Functional Programming (ICFP’97), pp. 251–262. ACM SIGPLAN Notices Vol. 32,No. 8, 1997.

    Article  Google Scholar 

  4. L. Damas and R. Milner. Principal type-schemes for functional programs. In Proc. 9th Symposium on Principles of Programming Languages, pp. 207–212, 1982.

    Google Scholar 

  5. S. Finne and S. Peyton Jones. Composing Haggis. In Proc. of the Fifth Eurographics Workshop on Programming Paradigms for Computer Graphics. Springer, 1995.

    Google Scholar 

  6. M. Hanus. The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming, Vol. 19&20, pp. 583–628, 1994.

    Article  MathSciNet  Google Scholar 

  7. M. Hanus. A Unified Computation Model for Functional and Logic Programming. In Proc. 24th ACM Symposium on Principles of Programming Languages, pp. 80–93, 1997.

    Google Scholar 

  8. M. Hanus. Distributed Programming in a Multi-Paradigm Declarative Language. In Proc. of the International Conference on Principles and Practice of Declarative Programming (PPDP’99), pp. 376–395. Springer LNCS 1702, 1999.

    Google Scholar 

  9. M. Hanus, S. Antoy, J. Koj, R. Sadre, and F. Steiner. PACS: The Portland Aachen Curry System. Available at http://www-i2.informatik.rwth-aachen.de/~hanus/pacs/, 1999.

  10. M. Hanus and F. Steiner. Controlling Search in Declarative Programs. In Principles of Declarative Programming (Proc. Joint International Symposium PLILP/ALP’98), pp. 374–390. Springer LNCS 1490, 1998.

    Google Scholar 

  11. M. Hanus (ed.). Curry: An Integrated Functional Logic Language (Vers. 0.5). Available at http://www-i2.informatik.rwth-aachen.de/~hanus/curry, 1999.

  12. S. Janson, J. Montelius, and S. Haridi. Ports for Objects in Concurrent Logic Programs. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.

    Google Scholar 

  13. G. Krasner and S. Pope. A Cookbook for using the Model-View-Controller User Interface in Smalltalk-80. Journal of Object-Oriented Programming, Vol. 1,No. 3, pp. 26–49, 1988.

    Google Scholar 

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

    Google Scholar 

  15. J. Peterson et al. Haskell: A Non-strict, Purely Functional Language (Version 1.4). Technical Report, Yale University, 1997.

    Google Scholar 

  16. M. Renschler. Configuration Spreadsheet for Interactive Constraint Problem Solving. In Proc. of the ComputlogNet Industrial Conference on Advanced Software Applications, Manchester, 1998.

    Google Scholar 

  17. V.A. araswat. Concurrent Constraint Programming. MIT Press, 1993.

    Google Scholar 

  18. E. Shapiro and A. Takeuchi. Object Oriented Programming in Concurrent Prolog. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, volume 2, pp. 251–273. MIT Press, 1987.

    Google Scholar 

  19. T. Vullinghs, D. Tuijnman, and W. Schulte. Lightweight GUIs for Functional Programming. In Proc. 7th Int. Symp. on Programming Languages, Implementations, Logics and Programs (PLILP’95), pp. 341–356. Springer LNCS 982, 1995.

    Chapter  Google Scholar 

  20. P. Wadler. How to Declare an Imperative. ACM Computing Surveys, Vol. 29,No. 3, pp. 240–263, 1997.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hanus, M. (1999). A Functional Logic Programming Approach to Graphical User Interfaces. In: Pontelli, E., Santos Costa, V. (eds) Practical Aspects of Declarative Languages. PADL 2000. Lecture Notes in Computer Science, vol 1753. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46584-7_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-46584-7_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66992-0

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics