Abstract

Multiway dataflow constraint systems (MDCS) is a programming model where statements are not executed in a predetermined order. Rather, individual methods are selected from specific method sets and then executed to achieve a desired global state. The selection is done by a planner, which typically bases the choice of methods on the history of updates to the global state. MDCS is well suited for describing user interface logic where choosing what code to execute depends in complicated ways on the history of user interactions and on data availability. User interfaces are the domain of examples in this paper.Much of the research into MDCS has been on planning algorithms and their efficiency. Here we investigate a semantic setting for MDCS, introducing dataflow constraints as modules with explicit goals and related method sets. MDCS is defined in a similar manner, with an explicit goal and a set of supporting dataflow constraints. This enables verification and testing of methods and dataflow constraints against the goals. The exposition is based on abstract syntax for an idealised programming language with global variables. On top of this we define a modular reuse mechanism for dataflow constraints based on Goguen-Burstall institution theory. We show how this setup enables reuse in user interfaces; traditionally code that defines user interface logic is almost invariably non-reusable.

Highlights

  • A dataflow constraint describes a relation amongst variables and means to satisfy that relation

  • The one we focus on here is multiway dataflow constraint systems (MDCS), where information can flow in different directions between a set of variables

  • On the one hand they define the semantics of constraint systems, which we apply in examples drawn from the domain of graphical user interface (GUI)

Read more

Summary

Introduction

A dataflow constraint describes a relation amongst variables and means to satisfy that relation. The main contributions of this paper are based on a perspective on constraint systems as a programming model:. On the one hand they define the semantics of constraint systems, which we apply in examples drawn from the domain of GUIs. On the other hand they build towards fitting constraint systems into the institution [13] notion. Institutions are a theoretical framework for understanding model-based logic, but they can be used to explore metalevel design principles for programming languages, such as modular reuse mechanisms.

Motivation: constraint systems in GUIs
Syntax and semantics of a multiple assignment language
Interfaces and expressions
Multiple assignment statements
Semantics for expressions
Semantics for statements
Axioms and propositions for models
Dataflow constraints
Dataflow constraint combinators
Dataflow constraint combinator properties
UI examples
Institution based module system
Categories for constraint systems
Functors
Institutions for constraints
Multiway dataflow constraint systems
Summary and conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call