1,086 research outputs found
Attempto - From Specifications in Controlled Natural Language towards Executable Specifications
Deriving formal specifications from informal requirements is difficult since
one has to take into account the disparate conceptual worlds of the application
domain and of software development. To bridge the conceptual gap we propose
controlled natural language as a textual view on formal specifications in
logic. The specification language Attempto Controlled English (ACE) is a subset
of natural language that can be accurately and efficiently processed by a
computer, but is expressive enough to allow natural usage. The Attempto system
translates specifications in ACE into discourse representation structures and
into Prolog. The resulting knowledge base can be queried in ACE for
verification, and it can be executed for simulation, prototyping and validation
of the specification.Comment: 15 pages, compressed, uuencoded Postscript, to be presented at EMISA
Workshop 'Naturlichsprachlicher Entwurf von Informationssystemen -
Grundlagen, Methoden, Werkzeuge, Anwendungen', May 28-30, 1996, Ev. Akademie
Tutzin
SAGA: A project to automate the management of software production systems
The Software Automation, Generation and Administration (SAGA) project is investigating the design and construction of practical software engineering environments for developing and maintaining aerospace systems and applications software. The research includes the practical organization of the software lifecycle, configuration management, software requirements specifications, executable specifications, design methodologies, programming, verification, validation and testing, version control, maintenance, the reuse of software, software libraries, documentation, and automated management
On Language Processors and Software Maintenance
This work investigates declarative transformation tools in the context of software maintenance. Besides maintenance of the language specification, evolution of a software language
requires the adaptation of the software written in that language as well as the adaptation of the software that transforms software written in the evolving language. This co-evolution is studied to derive automatic adaptations of artefacts from adaptations of the language specification.
Furthermore, AOP for Prolog is introduced to improve maintainability of language specifications and derived tools.Die Arbeit unterstützt deklarative Transformationswerkzeuge
im Kontext der Softwarewartung. Neben der Wartung der
Sprachbeschreibung erfordert die Evolution einer Sprache
sowohl die Anpassung der Software, die in dieser Sprache geschrieben ist als auch die Anpassung der Software, die diese Software transformiert. Diese Koevolution wird untersucht, um automatische Anpassungen
von Artefakten von Anpassungen der Sprachbeschreibungen abzuleiten. Weiterhin wird AOP für Prolog eingeführt, um die Wartbarkeit von Sprachbeschreibungen und den daraus abgeleiteten Werkzeugen zu erhöhen
Transformation of logic programs: Foundations and techniques
AbstractWe present an overview of some techniques which have been proposed for the transformation of logic programs. We consider the so-called “rules + strategies” approach, and we address the following two issues: the correctness of some basic transformation rules w.r.t. a given semantics and the use of strategies for guiding the application of the rules and improving efficiency. We will also show through some examples the use and the power of the transformational approach, and we will briefly illustrate its relationship to other methodologies for program development
Using Prolog techniques to guide program composition
It is possible to build complex programs by repeated combination of pairs of simpler
programs. However, naive combination often produces programs that are far too inefficient.
We would like to have a system that would produce the optimal combination of two
programs, and also work with minimal supervision by the user. In this thesis we make a
significant step towards such an ideal, with the presentation of an interactive system based
on program transformation complemented with knowledge of the program development.
No single method is known that will combine all programs efficiently and so a variety of
different combination methods must be used. However, to get good results it is necessary
that the methods have access to knowledge about the program structure. To provide this
knowledge we have decided to require that the initial programs be constructed in a spe¬
cialised editor which embodies knowledge of certain standard Prolog practices (techniques)
to aid the program construction, but more importantly can record pertinent parts of the
program development into a structure called the program history. This program history
contains the initial control flow (skeleton) and the techniques that the user applied in the
construction of the program. Hence it carries knowledge about the program that would
otherwise be very difficult to extract from just the program itself.
The first contribution of this thesis is to recognise that knowledge contained in the program
history can be used in program transformation, reducing the need for user interaction. The
interactive composition system presented can automatically take major decisions, such as
the selection of which subgoal should be unfolded or the laws to be applied in order to
get a more efficient combined program. Furthermore, a component of our system called
the selection procedure can decide automatically which is the most suitable combination
method by analysing the characteristics of the initial pair of programs as given by their
program histories. Approaches that do not use the program history suffer from the problem
that it is not always practical to extract the required information about the structure of
the program.
Our second contribution is to provide a range of new methods which exploit the program
history in order to produce more efficient programs, and to deal with a wider range of
combination problems. The new methods not only combine programs with the same control
flow, but can also deal with some cases in which the control flows are different. All of these
methods are completely automatic with the exception of our "mutant" method in which
the combined clause needs to be approved by the user.
The third contribution is to present relevant properties in our composition system. These
properties fall into the following three groups: (i) properties which hold after applying each
combination method, (ii) properties about the type of program which is obtained after
the combination, (iii) properties of the join specification which defines the characteristics
of the combined program
- …