Declarative Programming of User Interfaces

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.

[1]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[2]  Meurig Sage FranTk - a declarative GUI language for Haskell , 2000, ICFP '00.

[3]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[4]  Michael Hanus,et al.  A unified computation model for functional and logic programming , 1997, POPL '97.

[5]  Philip Wadler,et al.  How to declare an imperative , 1997, CSUR.

[6]  Michael Hanus,et al.  Type-oriented construction of web user interfaces , 2006, PPDP '06.

[7]  Sebastian Fischer A functional logic database library , 2005, WCFLP '05.

[8]  Michael Hanus,et al.  Curry: an integrated functional logic language (version 0 , 2003 .

[9]  J. Davenport Editor , 1960 .

[10]  Rachid Echahed,et al.  A needed narrowing strategy , 2000, JACM.

[11]  Ramin Sadre,et al.  Pakcs: The portland aachen kiel curry system , 2000 .

[12]  Francisco Javier López-Fraguas,et al.  TOY: A Multiparadigm Declarative System , 1999, RTA.

[13]  Erik Meijer Server side web scripting in Haskell , 2000, J. Funct. Program..

[14]  Peter Thiemann,et al.  WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms , 2002, PADL.

[15]  Ton Vullinghs,et al.  Lightweight GUIs for Functional Programming , 1995, PLILP.

[16]  Michael Hanus,et al.  Putting declarative programming into the web: translating curry to javascript , 2007, PPDP '07.

[17]  M. Hanus A Generic Analysis Environment for Curry Programs , 2007, ArXiv.

[18]  Manuel V. Hermenegildo,et al.  The PiLLoW/Ciao library for INTERNET/WWW programming using computational logic systems , 1996 .

[19]  Michael Hanus,et al.  A Functional Logic Programming Approach to Graphical User Interfaces , 2000, PADL.

[20]  J. S anchez Hern andez TO Y: A Multiparadigm Declarative System ? , 1999 .

[21]  Michael Hanus,et al.  Functional Logic Design Patterns , 2002, FLOPS.

[22]  Frank Huch,et al.  The Interactive Curry Observation Debugger iCODE , 2007, WFLP.

[23]  Jesse James Garrett Ajax: A New Approach to Web Applications , 2007 .

[24]  Michael Hanus,et al.  High-Level Database Programming in Curry , 2008, PADL.

[25]  Michael Hanus,et al.  An Integrated Development Environment for Declarative Multi-Paradigm Programming , 2001, WLPE.

[26]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[27]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[28]  Michael Hanus,et al.  High-Level Server Side Web Scripting in Curry , 2001, PADL.

[29]  Michael Hanus,et al.  Multi-paradigm Declarative Languages , 2007, ICLP.

[30]  M. Hanus,et al.  Curry: An Integrated Functional Logic Language , 2003 .

[31]  Michael Hanus,et al.  Dynamic Predicates in Functional Logic Programs , 2004, J. Funct. Log. Program..

[32]  Daan Leijen,et al.  wxHaskell: a portable and concise GUI library for haskell , 2004, Haskell '04.

[33]  Koen Claessen,et al.  Structuring graphical paradigms in TkGofer , 1997, ICFP '97.

[34]  Pieter H. Hartel,et al.  Programming Languages: Implementations, Logics, and Programs , 1996, Lecture Notes in Computer Science.