A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Computing Surveys (CSUR)
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for dynamic Web documents
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of the ACM (JACM)
ACM Transactions on Internet Technology (TOIT)
PowerForms: Declarative client-side form field validation
World Wide Web
WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Functional Logic Design Patterns
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Server side web scripting in Haskell
Journal of Functional Programming
Innocent Code: A Security Wake-Up Call for Web Programmers
Innocent Code: A Security Wake-Up Call for Web Programmers
A functional logic database library
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Declarative programming with function patterns
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Lazy Database Access with Persistent Predicates
Electronic Notes in Theoretical Computer Science (ENTCS)
Reporting Failures in Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Putting declarative programming into the web: translating curry to javascript
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Topes: reusable abstractions for validating data
Proceedings of the 30th international conference on Software engineering
The Essence of Form Abstraction
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Declarative Programming of User Interfaces
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Applications of Declarative Programming and Knowledge Management
Communications of the ACM
ICWE'07 Proceedings of the 7th international conference on Web engineering
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
High-level database programming in curry
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Journal of Visual Languages and Computing
KiCS2: a new compiler from Curry to Haskell
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
New functional logic design patterns
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An ER-based framework for declarative web programming
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.02 |
This paper proposes a new technique for the high-level construction of type-safe web-oriented user interfaces. Our approach is useful to equip applications processing structured data with interfaces to manipulate these data in an efficient and maintainable way. The interfaces are web-based, i.e., the data can be manipulated with standard web browsers without any specific requirements on the client side. In order to support type-safe user interfaces, i.e., interfaces where users can only input type-correct data (types can be standard types of a programming language as well as any computable predicate on the data), we propose a set of type-oriented building blocks from which interfaces for more complex types can be easily constructed. This technique leads to a very concise and maintainable implementation of web-based user interfacesWe show an implementation of this concept in the declarative multi-paradigm language Curry. In particular, its integrated functional and logic features are exploited to enable the high level of abstraction proposed in this paper.