Temporal and Graphical Primitives for Declarative Graphics Systems

- Final Report for EPSRC Grant GR/K69148 -

Chris Johnson and Meurig Sage

Department of Computing Science,University of Glasgow, Glasgow G12 8QQ.

{johnson, meurig}@dcs.gla.ac.uk,



The generation of complex images requires high levels of skill and expertise. This is partly due to the fact that most graphics languages rely upon procedural implementations. Programmers must maintain a number of internal data structures in addition to the generating procedures in order to represent the attributes of display objects. For instance, the commands that are used to draw a line have little or no relationship to the instructions that must be performed to determine whether or not the user has selected that line. Further problems stem from the way in which programs often rely upon side effects. For instance, many images are determined not only by the instructions that are used to generate the image but also by the order in which those instructions are written. If a single instruction is ommited or placed out of sequence then the entire image will be corrupted. This is a significant problem when each display may require thousands, or hunders of thousands, of instructions. A reliance on side-effects can also prevent other developers from following the manner in which an image is generated. Declarative techniques provide an attractive alternative to these procedural approaches. Recent work in functional programming and executable logic has enabled programmers to simplify the relationship between display objects and their internal representation. There is no distinction between the structures that are used to generate an image and those that record its other attributes. They also avoid some side effects that complicate procedural graphics, such as implicit orderings in graphical hierarchies.

Unfortunately, many declarative systems rely upon an arbitrary set of mechanisms, such as the assert and retract facilities in Prolog, to implement changes in an image. These features complicate the relationship between the objects on the screen and the internal data structures. This, in turn, increases the burdens upon programmers who are faced with the increasing complexity of modern graphical user interfaces. We have solved these problems. In collaboration with Microsoft Research, we have developed FranTk. This language successfully builds upon Elliot's functional reactive animation to allow the creation of complex, multi-user interactive systems. FranTk was released to the research community in August 1999. The code and user manuals are available from the Haskell repository at http://haskell.cs.yale.edu/FranTk/

We were concerned to avoid the `toy' examples that have been used to validate work in this area. Our initial work focussed on the development of a highly interactive computer game, this application is typical of the sorts of systems that involve the development of multiple, complex data structures to both create and animate interactive graphics. We developed a prototype in which each alien ship was implemented using a different thread. This relied upon the `explicit concurrency' extensions to the Glasgow Haskell Compiler. Message passing provided an elegant means of informing our alien adversaries that the user had destroyed them! The implementation benefits of a declarative approach helped us to make rapid changes to the structure and appearance of this prototype as user testing identified flaws in the initial design.

Our subsequent work focussed on the development of a prototype multi-sector, data-link, air traffic control system in collaboration with National Air Traffic Services (NATS). Data link systems use radio transceivers on aircraft to reduce the amount of communication between the crew and the controllers. Our development of this prototype demonstrated that declarative graphics systems could scale up to support the demands imposed by the simultaneous presentation of multiple shared and independent views upon dynamic data. Our work with NATS not only demonstrated the feasibility and scalability of the approach, we were also able to design a widget for tactical message composition that has been recommended for inclusion with NATS' EOLIA implementation.


[1] M. Sage and C.W. Johnson , Formally Verified Rapid Prototyping for Air Traffic Control. In Veronique de Keyser and Denis Javaux (editors) Proceedings of the Third Workshop on Human Error, Safety and Systems Development, Psychologie du Travail et des Entreprises, Universite de Liege, Liege, Belgium, 1999.

[2] M. Sage and C.W. Johnson, A Declarative Prototyping Environment for Multi-user, Safety-Critical Systems. In J. Dixon (ed.), Proceedings of the 17th International Systems Safety Conference, Orlando, Florida, USA, September 1999.

[3] C.W. Johnson, Representing the Impact of Time on Human Error and Systems Failure, Interacting with Computers, 11:53-86, 1998.

[4] C.W. Johnson, Expanding The Role Of Formal Methods In CSCW Systems, In M. Beaudouin-Lafon (ed.), Trends in Computer Supported Cooperative Work, J. Wiley and Sons, Chichester, United Kingdom, 221-256, 998.

[5] C.W. Johnson, The Impact of Time and Risk on the Design of Human Computer Interfaces. In V. De Keyser , G. d'Ydewalle and A. Vandierendonck (eds.) Time and the Dynamic control of Behaviour, Hogrefe and Huber, Seattle, United States of America, 233-256, 1998.

[6] C.W. Johnson and M.D. Dunlop, Subjectivity and Notions of Time and Value in Information Retrieval, Interacting with Computers, 10: 67-75, 1998.

[7] M. Sage and C.W. Johnson, Pragmatic Formal Design: A Case Study of Integrating Formal Methods into the HCI Development Cycle. In P. Markopoulos and P Johnson (eds.) Proceedings of the Eurographics Workshop on the Design, Specification and Verification of Interactive Systems, Springer Computer Science, 134 – 155, 1998.

[8] C.W. Johnson, The Impact of Utility and Time on Distributed Information Retrieval, In H. Thimbleby, B. O'Conaill and P. Thomas (eds.), People and Computers XII: Proceedings of HCI'97, Springer Verlag, London, United Kingdom, 191-204, 1997.

[9] C.W. Johnson, The Impact of Time and Place on the Operation of Mobile Computing Devices. In H. Thimbleby, B. O'Conaill and P. Thomas (eds.), People and Computers XII: Proceedings of HCI'97, Springer Verlag, London, United Kingdom, 175-190, 1997.

[10] M. Sage and C.W. Johnson, Interacting with Haggis: Implementing Agent Based Specifications in a Functional Style. In S. Howard, J. Hammond and G. Lindgaard (eds.) Proceedings of Interact’97, Chapman and Hall, London, United Kingdom, 126-133, 1997.

[11] M. Sage and C.W. Johnson, Interactors and Haggis: Executable Interface Specifications. In M. Harrison and J-C Torres (eds.), Proceedings of the Eurographics Workshop on the Design, Specification and Verification of Interactive Systems '97, Springer Verlag, Germany, 1997.

[12] C.W. Johnson, The Impact Of Working Environment On Human-Machine Dialogues: A Formal Logic For The Integrated Specification Of Physical and Cognitive Ergonomic Constraints On User Interface Design, Ergonomics, (39)3:512-530, 1996.

[13] C.W. Johnson and P. Gray, Temporal Aspects of Usability, SIGCHI Bulletin, (28)2:32-33, 1996.

[14] C.W. Johnson and P. Gray, Assessing the Impact of Time on User Interface Design, SIGCHI Bulletin (28)2:33-36, 1996.

[15] C.W. Johnson, The Evaluation Of User Interface Design Notations. In F. Bodart and J. Vanderdonk (eds.) Proceedings of the Eurographics Workshop on the Design, Specification and Verification of Interactive Systems '96, Springer Verlag, Berlin, Germany, 188-206, 1996

[16] M. Sage, FranTk - A Declarative GUI language for Haskell, in Proceedings of Fifth ACM SIGPLAN International Conference on Functional Programming, ICFP'2000, September 2000, p106-118, Montreal, Canada : ACM Press.

Last modified 2/5/2001