3 research outputs found
Semantics & implementation of computational software families - software development as an inverse process
Software development
is generally thought of as a “forward problem”, where increments (revisions) of
software are developed, often iteratively, to satisfy requirements. However, a
dichotomy exists between “developing efficient” programs, and “efficiently
developing” programs. To “develop efficiently”, programmers may tend to
emphasise on program correctness over program run-time efficiency. As the
complexity of the problem domain and hardware increases, managing software
complexity, and consequently correctness, becomes increasingly difficult. To
“efficiently develop efficient programs” requires the ability to change flow
control and/or architecture whilst retaining the ability to prove its
correctness. Moreover, ideally these changes are automated, without requiring a
programmer to re-introduce optimisations lost by the language constructs used
to manage complexity. <br>
   <br>
   To bridge this dichotomy we propose a new notion – that
software development is actually an “inverse problem”. By considering
increments as parameters to the inverse process, software development becomes
the endeavour to answer the question “which increments best satisfy the
requirements?” Software development as an inverse process has a compelling
property – the engineering process is mathematically described, underpinned by
inverse theory and inverse methods that are well understood. Specifically we
apply a formulation of inversion to software decomposition, where the approach
to software decomposition is determined by the act of parameterisation in the
inversion process. Further, seemingly fine-grained, stakeholder-specified features
are formally mapped to both the intended modularity (one side of the dichotomy)
and for example, the intended computations (the other side of the dichotomy).
We provide this mapping within the one semantic framework, which then permits
us to automate changes, shifting a program written on one side of the dichotomy
to the other. To achieve this, we model the development process as a Bayesian
inference, seeking to discover posterior variants given application data. This
is hence a contribution towards continuum rather than a logical or empirical
approach to reasoning about programs. <br>
   <br>
   This work is a treatise of mathematical foundations of
programming languages given a formal inverse framing to software development. A
new monadic minimal machine – Variational Execution, provides the basis for the
one semantic framework. A new extension to a C-based programming language –
COMputational ASpectS (COMPASS) is given as both formal semantics and as a
tool
Instrument Integration: the key to accessing Science Gateways
Abstract for a demonstration at the International Workshop on Science Gateways at eResearch Australasia 2016 on the topic 'Instrument Integration: the key to accessing Science Gateways
The Australian Store.Synchrotron Data Management Service for Macromolecular Crystallography
Store.Synchrotron is a service for management and publication of diffraction data from the macromolecular crystallography (MX) beamlines of the Australian Synchrotron.<br><br>Proceedings of the 15<sup>th</sup>
International Conference on Accelerator and Large Experimental Control
Systems (ICALEPCS 2015) conference in Melbourne, Australia from 17 - 23 October 2015 at
the Melbourne Convention and Exhibition Centre (MCEC)