|
ABSTRACT
We propose a framework to construct web-oriented user interfaces in a high-level way by exploiting declarative programming techniques. Such user interfaces are intended to manipulate complex data in a type-safe way, i.e., it is ensured that only typecorrect data is accepted by the interface, where types can be specified by standard types of a programming language as well as any computable predicate on the data. The interfaces are web based, i.e., the data can be manipulated with standard web browsers without any specific requirements on the client side. However, if the client's browser has JavaScript enabled, one could also check the correctness of the data on the client side providing immediate feedback to the user. In order to release the application programmer from the tedious details to interact with JavaScript, we propose an approach where the programmer must only provide a declarative description of the requirements of the user interface from which the necessary JavaScript programs and HTML forms are automatically generated. This approach leads to a very concise and maintainable implementation of web-based user interfaces. We demonstrate an implementation of this concept in the declarative multi-paradigm language Curry where the integrated functional and logic features are exploited to enable the high level of abstraction proposed in this paper.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
E. Albert, M. Hanus, F. Huch, J. Oliver, and G. Vidal. Operational Semantics for Declarative Multi-Paradigm Languages. Journal of Symbolic Computation, Vol. 40, No. 1, pp. 795--829, 2005.
|
| |
2
|
|
 |
3
|
|
 |
4
|
|
| |
5
|
|
| |
6
|
S. Antoy and M. Hanus. Overlapping Rules and Logic Variables in Functional Logic Programs. In Proceedings of the 22nd International Conference on Logic Programming (ICLP 2006), pp. 87--101. Springer LNCS 4079, 2006.
|
| |
7
|
|
 |
8
|
|
| |
9
|
D. Cabeza and M. Hermenegildo. Internet and WWW Programming using Computational Logic Systems. In Workshop on Logic Programming and the Internet, 1996. See also http://clip.dia.fi.upm.es/Software/pillow/.
|
| |
10
|
J. Correas, J. M. Gómez, M. Carro, D. Cabeza, and M. Hermenegildo. A Generic Persistence Model for (C)LP Systems (and Two Useful Implementations). In Proc. of the Sixth International Symposium on Practical Aspects of Declarative Languages (PADL'04), pp. 104--119. Springer LNCS 3057, 2004.
|
| |
11
|
D. Coutts, D. Stewart, and R. Leshchinsky. Rewriting Haskell Strings. In Proc. 9th International Symposium on Practical Aspects of Declarative Languages (PADL 2007), pp. 50--64. Springer LNCS 4354, 2007.
|
 |
12
|
|
| |
13
|
|
| |
14
|
J. Giesl, P. Schneider-Kamp, and R. Thiemann. AProVE 1.2: Automatic Termination Proofs in the Dependency Pair Framework. In Proceedings of the 3rd International Joint Conference on Automated Reasoning (IJCAR '06), pp. 281--286. Springer LNCS 4130, 2006.
|
| |
15
|
M. Hanus. The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming, Vol. 19&20, pp. 583--628, 1994.
|
 |
16
|
|
| |
17
|
|
| |
18
|
M. Hanus. Dynamic Predicates in Functional Logic Programs. Journal of Functional and Logic Programming, Vol. 2004, No. 5, 2004.
|
| |
19
|
M. Hanus. CurryBrowser: A Generic Analysis Environment for Curry Programs. In Proc. of the 16th Workshop on Logic-based Methods in Programming Environments (WLPE'06), pp. 61--74, 2006.
|
| |
20
|
M. Hanus. Reporting Failures in Functional Logic Programs. In Proc. of the 15th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2006), pp. 49--62, 2006.
|
 |
21
|
|
| |
22
|
M. Hanus, S. Antoy, B. Braßel, M. Engelke, K. Höppner, J. Koj, P. Niederau, R. Sadre, and F. Steiner. PAKCS: The Portland Aachen Kiel Curry System. Available at http://www.informatik.uni-kiel.de/~pakcs/, 2007.
|
| |
23
|
|
| |
24
|
M. Hanus (ed.). Curry: An Integrated Functional Logic Language (Vers. 0.8.2). Available at http://www.informatik.uni-kiel.de/~curry, 2006.
|
| |
25
|
|
| |
26
|
|
| |
27
|
D. A. Ladd and J. C. Ramming. Programming the Web: An Application-Oriented Language for Hypermedia Services. In 4th International World Wide Web Conference, 1995.
|
| |
28
|
|
| |
29
|
|
| |
30
|
S. Peyton Jones, editor. Haskell 98 Language and Libraries -The Revised Report. Cambridge University Press, 2003.
|
| |
31
|
R. Plasmeijer and P. Achten. The Implementation of iData -A Case Study in Generic Programming. In Proc. of the 17th International Workshop on Implementation and Application of Functional Languages (IFL 2005). Trinity College, University of Dublin, Technical Report TCD-CS-2005-60, 2005.
|
| |
32
|
R. Plasmeijer and P. Achten. iData for the World Wide Web - Programming Interconnected Web Forms. In Proc. of the 8th International Symposium on Functional and Logic Programming (FLOPS 2006), pp. 242--258. Springer LNCS 3945, 2006.
|
 |
33
|
|
| |
34
|
|
| |
35
|
|
 |
36
|
|
|