1,874 research outputs found
The Larch Environment - Python programs as visual, interactive literature
The Larch Environment' is designed for the creation of programs that take the
form of interactive technical literature. We introduce a novel approach to combined
textual and visual programming by allowing visual, interactive objects
to be embedded within textual source code, and segments of source code to be
further embedded within those objects. We retain the strengths of text-based
source code, while enabling visual programming where it is bene�cial. Additionally,
embedded objects and code provide a simple object-oriented approach
to extending the syntax of a language, in a similar fashion to LISP macros. We
provide a rapid prototyping and experimentation environment in the form of
an active document system which mixes rich text with executable source code.
Larch is supported by a simple type coercion based presentation protocol that
displays normal Java and Python objects in a visual, interactive form. The
ability to freely combine objects and source code within one another allows for
the construction of rich interactive documents and experimentation with novel
programming language extensions
User driven modelling: Visualisation and systematic interaction for end-user programming with tree-based structures
This thesis addresses certain problems encountered by teams of engineers when modelling complex structures and processes subject to cost and other resource constraints. The cost of a structure or process may be ‘read off’ its specifying model, but the language in which the model is expressed (e.g. CAD) and the language in which resources may be modelled (e.g. spreadsheets) are not naturally compatible. This thesis demonstrates that a number of intermediate steps may be introduced which enable both meaningful translation from one conceptual view to another as well as meaningful collaboration between team members. The work adopts a diagrammatic modelling approach as a natural one in an engineering context when seeking to establish a shared understanding of problems.Thus, the research question to be answered in this thesis is: ‘To what extent is it possible to improve user-driven software development through interaction with diagrams and without requiring users to learn particular computer languages?’ The goal of the research is to improve collaborative software development through interaction with diagrams, thereby minimising the need for end-users to code directly. To achieve this aim a combination of the paradigms of End-User Programming, Process and Product Modelling and Decision Support, and Semantic Web are exploited and a methodology of User Driven Modelling and Programming (UDM/P) is developed, implemented, and tested as a means of demonstrating the efficacy of diagrammatic modelling.In greater detail, the research seeks to show that diagrammatic modelling eases problems of maintenance, extensibility, ease of use, and sharing of information. The methodology presented here to achieve this involves a three step translation from a visualised ontology, through a modelling tool, to output to interactive visualisations. An analysis of users groups them into categories of system creator, model builder, and model user. This categorisation corresponds well with the three-step translation process where users develop the ontology, modelling tool, and visualisations for their problem.This research establishes and exemplifies a novel paradigm of collaborative end-user programming by domain experts. The end-user programmers can use a visual interface where the visualisation of the software exactly matches the structure of the software itself, making translation between user and computer, and vice versa, much more direct and practical. The visualisation is based on an ontology that provides a representation of the software as a tree. The solution is based on translation from a source tree to a result tree, and visualisation of both. The result tree shows a structured representation of the model with a full visualisation of all parts that leads to the computed result.In conclusion, it is claimed that this direct representation of the structure enables an understanding of the program as an ontology and model that is then visualised, resulting in a more transparent shared understanding by all users. It is further argued that our diagrammatic modelling paradigm consequently eases problems of maintenance, extensibility, ease of use, and sharing of information. This method is applicable to any problem that lends itself to representation as a tree. This is considered a limitation of the method to be addressed in a future project
A Programming System for End-user Functional Programming
This research involves the construction of a programming system, HASKEU,
to support end-user programming in a purely functional programming language.
An end-user programmer is someone who may program a computer
to get their job done, but has no interest in becoming a computer programmer.
A purely functional programming language is one that does not require
the expression of statement sequencing or variable updating. The end-user is
offered two views of their functional program. The primary view is a visual
one, in which the program is presented as a collection of boxes (representing
processes) and lines (representing data
flow). The secondary view is a textual
one, in which the program is presented as a collection of written function definitions. It is expected that the end-user programmer will begin with the visual
view, perhaps later moving on to the textual view. The task of the programming
system is to ensure that the visual and textual views are kept consistent
as the program is constructed. The foundation of the programming system
is a implementation of the Model-View-Controller (MVC) design pattern as a
reactive program using the elegant Functional Reactive Programming (FRP)
framework. Human-Computer Interaction (HCI) principles and methods are
considered in all design decisions. A usabilty study was made to find out the
effectiveness of the new system
- …