Is GUI programming a database research problem?
- 1 June 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMOD Record
- Vol. 25 (2) , 517-528
- https://doi.org/10.1145/235968.233369
Abstract
Programming nontrivial GUI applications is currently an arduous task. Just as the use of a declarative language simplified the programming of database applications, we ask whether we can do the same for GUI programming? Can we then import a large body of knowledge from database research? We answer these questions by describing our experience in building nontrivial GUI applications initially using C++ programming and subsequently using Logic++, a higher order Horn clause logic language on complex objects with object-oriented features. We abstract a GUI application as a set of event handlers. Each event handler can be conceptualized as a transition from the old screen/program state to a new screen/program state. We use a data centric view of the screen/program state ( i.e., every entity on the screen corresponds to proxy datum in the program) and express each event handler as a query dependent update, albeit a complicated one. To express such complicated updates we use Logic++. The proxy data are expressed as derived views that are materialized on the screen. Therefore, the system must be active in maintaining these materialized views. Consequently, each event handler is conceptually an update followed by a fixpoint computation of the proxy data. Based on our experience in building the GUI system, we observe that many database techniques such as view maintenance, active DB, concurrency control, recovery, optimization as well as language concepts such as higher order logic are useful in the context of GUI programming.Keywords
This publication has 4 references indexed in Scilit:
- Supporting distributed, concurrent, one-way constraints in user interface applicationsPublished by Association for Computing Machinery (ACM) ,1995
- Optimizing toolkit-generated graphical interfacesPublished by Association for Computing Machinery (ACM) ,1994
- Implementation of the CORAL deductive database systemPublished by Association for Computing Machinery (ACM) ,1993
- Language features for interoperability of databases with schematic discrepanciesPublished by Association for Computing Machinery (ACM) ,1991