A4 Refereed article in a conference publication

Manipulating GUI Structures Declaratively




AuthorsKnut Anders Stokke, Mikhail Barash, Jaakko Järvi

EditorsMartin Erwig, Jeff Gray

Conference nameACM SIGPLAN International Conference on Generative Programming

PublisherAssociation for Computing Machinery

Publication year2020

Book title GPCE 2020: Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences

First page 63

Last page69

ISBN978-1-4503-8174-1

DOIhttps://doi.org/10.1145/3425898.3426956(external)

Web address https://doi.org/10.1145/3425898.3426956(external)

Self-archived copy’s web addresshttps://research.utu.fi/converis/portal/detail/Publication/50581836(external)


Abstract
GUIs often contain structures that are incidental, not properly manipulatable through well-defined APIs. For example, modifying a list of items in a GUI's model may require extraneous bookkeeping operations in the view, such as adding and removing event handlers, and updating the menu structure. Observing GUIs in practice gives an indication that programmers may find it difficult or tedious to implement complete and convenient sets of operations for manipulating various structures: useful operations for adding, inserting, swapping, or reordering elements are often missing, inconsistent, or limited. This paper introduces a DSL for programming operations that manipulate such incidental structures. The programmer specifies structures via relations between elements, concretely by defining methods that unestablish and establish a relation. This gives the programmer an ability to describe structural transformations via rules that control which relations should hold before and after a rule is applied. The API for structure manipulation is generated from these rules. Our DSL can give an abstract view on ad-hoc structures, making it easier to provide the necessary set of operations for their convenient manipulation.

Downloadable publication

This is an electronic reprint of the original article.
This reprint may differ from the original in pagination and typographic detail. Please cite the original version.





Last updated on 2024-26-11 at 19:41