Technical Report CSI-0058

Projectional Editing in support of Agent-Based Modelling and Network Science Simulation

D. S. Fleming and K. A. Hawick

Archived: 2017

Abstract

Domain Specific Language(DSL) development allows compact and elegant specification of applications domain problems to be specified by users rather than programming experts. New tools and approaches for accelerating development of DSL concepts are however becoming necessary. The notion of Projectional Editing (PE), whereby users' editing actions directly manipulate the abstract syntax tree without the necessity of a parser, is a powerful one for both flexible notations and less restricted language composition for domain alignment and model driven development. PE offers the hope for reducing the environmental comlexity of both building and maintaining software based on external domain specific languages. We explore and evaluate PE systems and approaches based on two applications domain areas - agent-based models that are typically on regular hypercubic data structures, and network science simulations based on irregular graph-based data structures. We discuss practical gains from a PE approach in terms of lowering development and programming environmental complexity.

Keywords: projectional editing; environmental complexity; domain specific languages; agent based models; network science

Full Document Text: Not yet available.

Citation Information: BiBTeX database for CSI Notes.

BiBTeX reference:

@TechReport{CSI-0058,
        Title = {Projectional Editing in support of Agent-Based Modelling and Network Science Simulation},
        Author = {D. S. Fleming and K. A. Hawick},
        Institution = {Computer Science, University of Hull},
        Year = {2017},
        Address = {Cottingham Road, Hull, HU6 7RX, UK},
        Month = {August},
        Number = {CSI-0058},
        Type = {CSI},
        Keywords = {projectional editing; environmental complexity; domain specific languages; agent based models; network science},
        Owner = {kahawick},
        Timestamp = {2017.08.23}
}