Abstract
This paper proposes a declarative description of user interfaces that abstracts from low-level implementation details. In particular, the user interfaces specified in our framework are executable as graphical user interfaces for desktop applications as well as web user interfaces via standard web browsers. Thus, our approach combines the advantages of existing user interface technologies in a flexible way without demands on the programmer’s side. We sketch an implementation of this concept in the declarative multi-paradigm programming language Curry and show how the integrated functional and logic features of Curry are exploited to enable a high-level implementation of this concept.
This work was partially supported by the German Research Council (DFG) under grant Ha 2457/5-2.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Antoy, S., Echahed, R., Hanus, M.: A Needed Narrowing Strategy. Journal of the ACM 47(4), 776–822 (2000)
Antoy, S., Hanus, M.: Functional Logic Design Patterns. In: Hu, Z., Rodríguez-Artalejo, M. (eds.) FLOPS 2002. LNCS, vol. 2441, pp. 67–87. Springer, Heidelberg (2002)
Braßel, B., Hanus, M., Müller, M.: High-Level Database Programming in Curry. In: Hudak, P., Warren, D.S. (eds.) PADL 2008. LNCS, vol. 4902, pp. 316–332. Springer, Heidelberg (2008)
Cabeza, D., Hermenegildo, M.: Internet and WWW Programming using Computational Logic Systems. In: Workshop on Logic Programming and the Internet (1996), http://clip.dia.fi.upm.es/Software/pillow/
Claessen, K., Vullinghs, T., Meijer, E.: Structuring graphical paradigms in TkGofer. In: Proc. of the International Conference on Functional Programming (ICFP 1997), vol. 32(8), pp. 251–262. ACM SIGPLAN Notices (1997)
Fischer, S.: A Functional Logic Database Library. In: Proc. of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming (WCFLP 2005), pp. 54–59. ACM Press, New York (2005)
Garrett, J.J.: Ajax: A New Approach to Web Applications (2005), http://AdaptivePath.com
Hanus, M.: A Unified Computation Model for Functional and Logic Programming. In: Proc. of the 24th ACM Symposium on Principles of Programming Languages, Paris, pp. 80–93 (1997)
Hanus, M.: A Functional Logic Programming Approach to Graphical User Interfaces. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 47–62. Springer, Heidelberg (2000)
Hanus, M.: High-level server side web scripting in curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)
Hanus, M.: CurryBrowser: A Generic Analysis Environment for Curry Programs. In: Proc. of the 16th Workshop on Logic-based Methods in Programming Environments (WLPE 2006), pp. 61–74 (2006)
Hanus, M.: Type-Oriented Construction of Web User Interfaces. In: Proceedings of the 8th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2006), pp. 27–38. ACM Press, New York (2006)
Hanus, M.: Multi-paradigm Declarative Languages. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 45–75. Springer, Heidelberg (2007)
Hanus, M.: Putting Declarative Programming into the Web: Translating Curry to JavaScript. In: Proceedings of the 9th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2007), pp. 155–166. ACM Press, New York (2007)
Hanus, M., Antoy, S., Braßel, B., Engelke, M., Höppner, K., Koj, J., Niederau, P., Sadre, R., Steiner, F.: PAKCS: The Portland Aachen Kiel Curry System (2008), http://www.informatik.uni-kiel.de/~pakcs/
Hanus, M., Koj, J.: An Integrated Development Environment for Declarative Multi-Paradigm Programming. In: Proc. of the International Workshop on Logic Programming Environments (WLPE 2001), pp. 1–14, Paphos, Cyprus (2001); Computing Research Repository (CoRR), http://arXiv.org/abs/cs.PL/0111039
Hanus, M. (ed.): Curry: An Integrated Functional Logic Language (Vers. 0.8.2) (2006), http://www.curry-language.org
Leijen, D.: wxHaskell – A portable and concise GUI library for Haskell. In: Proceedings of the 2004 ACM SIGPLAN Workshop on Haskell, pp. 57–68. ACM Press, New York (2004)
López-Fraguas, F., Sánchez-Hernández, J.: TOY: A Multiparadigm Declarative System. In: Narendran, P., Rusinowitch, M. (eds.) RTA 1999. LNCS, vol. 1631, pp. 244–247. Springer, Heidelberg (1999)
Meijer, E.: Server Side Web Scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)
Ousterhout, J.K.: Tcl and the Tk toolkit. Addison-Wesley, Reading (1994)
Peyton Jones, S. (ed.): Haskell 98 Language and Libraries—The Revised Report. Cambridge University Press, Cambridge (2003)
Sadeghi, P.H., Huch, F.: The Interactive Curry Observation Debugger iCODE. Electronic Notes in Theoretical Computer Science, vol. 177, pp. 107–122 (2007)
Sage, M.: FranTk - a declarative GUI language for Haskell. In: Proceedings of the 5th ACM SIGPLAN International Conference on Functional Programming (ICFP 2000), pp. 106–117. ACM Press, New York (2000)
Thiemann, P.: WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)
Vullinghs, T., Tuijnman, D., Schulte, W.: Lightweight GUIs for Functional Programming. In: Swierstra, S.D. (ed.) PLILP 1995. LNCS, vol. 982, pp. 341–356. Springer, Heidelberg (1995)
Wadler, P.: How to Declare an Imperative. ACM Computing Surveys 29(3), 240–263 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hanus, M., Kluß, C. (2008). Declarative Programming of User Interfaces. In: Gill, A., Swift, T. (eds) Practical Aspects of Declarative Languages. PADL 2009. Lecture Notes in Computer Science, vol 5418. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-92995-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-92995-6_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-92994-9
Online ISBN: 978-3-540-92995-6
eBook Packages: Computer ScienceComputer Science (R0)