Contact us Heritage collections Image license terms
HOME ACL ACD C&A INF SE ENG Alvey Transputers Literature
Further reading □ OverviewContentsIntroductionProjectsSummaryPanel
CCD CISD Harwell Archives Contact us Heritage archives Image license terms

Search

   
InformaticsLiteratureReportsSoftware Technology Initiative
InformaticsLiteratureReportsSoftware Technology Initiative
ACL ACD C&A INF CCD CISD Archives
Further reading

Overview
Contents
Introduction
Projects
Summary
Panel

Project Descriptions

INDEX

Bath

Dr P J L Wallis

Development of the Interactive Bath Program Improvement System, IBIS

Belfast

Dr M Clint

Verification of Pascal Programs

Bradford

Dr R J Thomas

Micro-PS2 and the SERC Software Technology Initiative

Bristol

Dr C J Burgess

Automatic Generation of Compiler Test Programs

Cambridge

Dr M J C Gordon

Theory and Practice of Type Specification

Dr M J C Gordon

Support for Functional Programming

Dr A J Herbert

An Object-based Program Support Environment

Dr A J Herbert

A Distributed Software Support Environment

Edinburgh

Prof R M Burstall

Specification Implementation and Categorical Programming

Prof R M Burstall, Prof A J R G Milner and Dr M P Atkinson

Infrastructure Support for Software Engineering

Dr M C B Hennessy

The Behaviour of Concurrent Systems

Prof A J R G Milner

Methodological Studies in Description and Verification

A Mycroft

Tools for the Construction of Efficient and Verifiable Languages

Keele

Dr N H White and Dr K H Bennett

Pascal Run-Time Diagnostics on a Perq Computer

Kent

Prof P J Brown

Software Tools Centre

Prof P J Brown

Dynamic Documentation

Dr F K Hanna

Specification and Verification of Digital Systems

Dr T R Hopkins

Fortran Libraries for the Common Base

London - Imperial College

S Abramsky and Dr T S E Maibaum

Foundations of Parallelism and Non-Determinism in Declarative Programming

Dr T S E Maibaum

Abstract Data Types and Applications to Programming Methodology and Database Theory

Liverpool

Dr M A Hennell

Investigations into the Theoretical Aspects of functional Testing Techniques

Manchester

Dr H Barringer and Prof C B Jones

A Formal Specification and Development Method for Parallel Programs

Dr H Barringer, I 0 Cottam and Prof C B Jones

The Provision of VAX Machines as Research Structure for Software Technology

I 0 Cottam and Prof C B Jones

An Environment for Rigorous Software Development

Dr F N Teskey and S C Holden

Integrated Information Systems

Manchester UMIST

B J Edwards, P M Livingstone and J M Triance

Computer Aided Program Design for the Commercial Programmer

R M Gallimore

A Workbench for the Construction of Verified Software

R M Gallimore and D Coleman

Software Tools for the Construction of Verified Software

J M Triance

COBOL Language Enhancement Facility

Newcastle upon Tyne

Dr C R Snow

Integrated Tools for Hardware/Software Debugging

Oxford

Prof C A R Hoare, J E Stoy and B Sufrin

Software Engineering

Paisley

Dr 0 G Jenkins and Dr M K Crowe

Development of an Incremental Compiler with Integrated Software Quality Assurance Functions.

Plymouth

Prof K 0 Baker

Software Engineering Workstation Environments for Flight Simulator System Design

Stirling

Prof P Henderson

Embedded Languages for Software Development

Strathclyde

Prof A 0 McGettrick

Towards an Implementation of Anna

York

Prof 1 C Wand

UNIX X25 Communications Software

Prof I C Wand

York ADA Workbench Compiler

PROJECTS

DR P J L WALLIS, UNIVERSITY OF BATH

DEVELOPMENT OF THE INTERACTIVE BATH PROGRAM IMPROVEMENT SYSTEM, IBIS

April 83 - Dec 85

Background and Nature of Research

This project is a continuation of an earlier one on Fortran/Ada conversion. its purpose is to enable Bath to experiment with a general-purpose transformer in combination with a Perq display to discover what program transformations are most useful to practising programmers in various contexts.

Research Goals

The short term objectives of the project include the design of a high-level language conversion system using internal tree representation.

Medium term objectives are to identify program transformations useful in such systems.

In the long term the group aims to identify kinds of program transformation tool most useful to programmers working interactively via bit-mapped display.

Achievements

The earlier system as described in the published paper [1] is now available both on Multics and on Perq under POS. The Karlsruhe GAG system [2] has also been transferred to a Perq under POS for use as a tool for the generation of attributed trees.

Work in Hand

A general Purpose Transformer for IBIS using attribute grammar is currently being designed.

Applicability

The work is likely to find its first applications in selecting transformations to be incorporated in high-level language conversion systems. Discussions with potential Alvey partners are in progress.

Further Information

Contact - Dr P J L Wallis

References

  1. J.K.Slape and P.J.L.Wallis. Conversion of Fortran to Ada using an intermediate Tree Representation. Computer Journal No. 26. pp. 344-353. November 1983.
  2. U. Kastens, B.Hutt and E. Zimmerman, GAG: a Practical Compiler Generator, Lecture Notes in Computer Science 141, Springer-Verlag, Heidelberg, 1982.
  3. P.J.L. Wallis, Towards the Design of a Toolset for Manipulating Ada Packages, Proc Ada-Europe/AdaTEC Joint Conference, Brussels March 1983.
  4. J.K. Slape and P.J.L. Wallis, A Modification of Sale's Algorithm to Accommodate Fortran 77, submitted for publication.

DR M CLINT, QUEENS UNIVERSITY, BELFAST

VERIFICATION OF PASCAL PROGRAMS

Oct 82 - Sept 85

Background and Nature of Research

This project is concerned with

  1. the development of a specification language and a verification methodology for Pascal programs
  2. the construction of a software tool to aid in the verification process.

The tool will be based on a verification condition generator for a Pascal-based language developed at QUB by M A Malik as part of his Ph.D. project.

Research Goals

The primary short-term goals of the project are to provide

  1. languages for the specification and annotation of programs which are as attractive and easy for programmers to use as a well-designed programming language;
  2. a large collection of small Pascal programs and their proofs to illustrate the practicability and benefits of rigorous program development
  3. facilities to relieve programmers of the tedium of verification condition generation.

The long-term goals are to investigate how appropriate are the techniques developed for the correct construction of large software products and perhaps completely mechanise the verification process.

Achievements

Work on the project commenced on 1 July 1983. An investigation of the use of effect clauses to capture the semantics of procedure and function calls, iterative constructs and constructs with abnormal exits was undertaken. The use of these clauses as an annotational mechanism is closely related to the decision that the specification language should be functional. A paper on this aspect of the work is currently being prepared. Malik's system has been extended to accommodate this method of annotation and proof rules have been incorporated to deal with further statement and data types.

Work in Hand

Drs R and T Nicholl have resigned from their posts as research assistants on the project on 31 December 1983 to take up lectureships at the New University of Ulster. Replacements are currently being sought. However the Nicholl's are continuing to contribute to the project and an investigation of the specification of programs in terms of effects on abstract data types is under way. Extension of the verification condition generator is continuing. Dr Gray of QUB, whose main interest is in functional programming, is giving helpful advice.

Applicability

It is hoped that the software tools will prove to be valuable in educational establishments where a formal approach to the development of programs is taken and that the study of the collection of case studies will allow novice programmers to acquire and develop the skills necessary for the successful pursuit of their discipline.

Further Information

For further information please contact Dr M Clint.

DR R J THOMAS, UNIVERSITY OF BRADFORD

MICRO-PSL AND THE SERC SOFTWARE TECHNOLOGY INITIATIVE

Aug 83 - July 84

Micro-PSL is a software tool which is used during the requirements specification stage of the Information System Life Cycle. It provides computer assistance to check the consistency and completeness of a System Specification before embarking on the subsequent Design and Implementation phases.

Micro-PSL is a micro/mini computer version of the large mainframe PSL/PSA system developed by the ISDOS group at the University of Michigan, USA.

Research Goals

The primary short-term goal has been to develop a version of Micro-PSL for the PERQ running under PNX, which would include the complete PSL (Problem Statement Language) used by the Michigan PSL/PSA system. The first PERQ version has been designed to accept Information Systems Requirements specified in PSL, check them for consistency and completeness against a database of previously defined requirements and subsequently provide detailed analysis of the contents of the requirements database.

All input is keyboard oriented and all output is lineprinter oriented. The long-term goals of the project are to define and develop tools, like Micro-PSL, which are more user friendly (ie. graphical input/output, voice input), and also to develop tools which will assist in the prototyping of systems (eg. systems defined in PSL could be prototyped in Ada).

Achievements

A preliminary version of Micro-PSL has been implemented on the PERQ under PNX which accepts 95% of the language PSL from ISDOS. The ISDOS group has been approached for their permission to release the software to participants in the SERC Software Technology Initiative since PSL/PSA is a proprietary product. Such permission is expected shortly, at which time Micro-PSL will be available to interested parties.

Work in Hand

Investigation of a graphical front-end to Micro-PSL is now in progress. A detailed specification of such a front-end to be implemented on the PERQ should be completed be the end of April. Prototyping of systems defined in PSL by automatic translation from PSL to Ada is also under investigation.

Applicability

Micro-PSL has been used to define Business Information System Requirements both within the Computer Science Department and in a limited number of external commercial systems. Its use need not be limited to commercial systems, however. (PSL/PSA is used in commercial, military and industrial environments to define requirements for a great variety of types of system).

Further Information

For further information please contact the following people: Dr R J Thomas or Mr J A Kirkham.

References

  1. R.J. Thomas and J.A. Kirkham, Structured Systems Analysis and Micro-PSL, Computer Bulletin, June 1983.
  2. PSL/PSA User Reference Manual, July 1982, ISDDS Project, Department of Industrial and Operational Engineering, University of Michigan.

DR C J BURGESS, UNIVERSITY OF BISTOL

AUTOMATIC GENERATION OF COMPILER TEST PROGRAMS

Oct 82 - Sept 85

Background and Nature of Research

It is essential during the development and testing of a compiler to have available a good set of test programs. The purpose of this project is to construct an automatic generator of test programs to complement existing hand-coded ones.

Research Goals

A short term goal is to construct a suitable specification language for expressing the input to the automatic generator. This language is based on a grammar using attributes. The aim is to enable the generator to construct programs which not only compile, but also execute meaningfully.

The long term goals involve constructing a suite of software tools, written in Pascal and running under Unix, which can be used to test particular parts of a compiler.

Achievements

After some early experiments using a simple BNF type description of the grammar and a generator driven by a random number generator, a preliminary version of the specification language has been designed.

Work in Hand

A pre-processor is currently being implemented which will convert the input, written in the specification language, to a set of tables to drive the generator. Some of the main ideas for the generator have already been tried out during the preliminary trials and it is hoped very soon to start work on the generator itself.

Applicability

The final product may be of use to anyone interested in the production and testing of compilers. Most of the work initially will be based on testing aspects of Pascal compilers, but the suite will be designed to be applicable to a wide variety of programming languages.

Further Information

For further information contact either Dr C J Burgess or Dr C L James.

References

  1. Celento et al, Compiler Testing using a Sentence Generator, Software Practice and Experience, Vol. 10, pp. 897-918, 1980.
  2. R. Purdom, A Sentence Generator for Testing Parsers, BIT pp. 366-375, 1972.
  3. H. Seyfer, 'A Bibliography on Compiler Assessment', Sigplan Notices, Vol. 18, No.3, pp. 14-21, 1983.

DR M J C GORDON, UNIVERSITY OF CAMBRIDGE

THEORY AND PRACTICE OF TYPE SPECIFICATION

Jan 82 - Dec 84

Background and Nature of Research

This project involves the design and construction of a programming environment built around a novel programming language. This language, called Poly, allows objects such as editors and compilers to be given types, and uses of them to be type-checked. A persistent storage system is used to provide permanent storage for objects so that there is no need for converting between a disc storage form and a main memory form. The research is being carried out by D C J Matthews; M J C Gordon is the grant-holder.

Research Goals

The long term aim is to develop an integrated environment in which all objects have a type and all operations are type checked. The immediate goals involve completing the persistent storage system which will be used as the basis of a filing system for the environment. The next stage is to develop some of the tools, such as a structure editor, to operate on objects in the environment.

Achievements

Cambridge have a working compiler written in Poly which is used to create new objects in the persistent storage system. The persistent storage system itself is nearly complete, requiring only a transaction system to ensure consistency.

Work in Hand

The transaction system for the persistent store is being developed and it is being tuned to improve performance. A typed filing system is being constructed using a system of nested environments (set of name-object pairs).

Applicability

A non-persistent version of the system is available for use. Cambridge expect to be able to release a version based on the persistent storage system soon. Although Poly is a single-language system, Cambridge expect the ideas to be applicable to integrated environments supporting multiple languages.

Further Information

For further information contact D C J Matthews (dcjm@camjenny), Cambridge University Computer Laboratory, Corn Exchange Street, Cambridge, CB2 3QG.

References

  1. D.J.C. Matthews, Poly Report', Technical Report No 28, Computer Laboratory, University of Cambridge.
  2. D.J.C. Matthews, Introduction to Poly, Technical Report No. 29, Computer Laboratory, University of Cambridge.

DR M J C GORDON, UNIVERSITY OF CAMBRIDGE

SUPPORT FOR FUNCTIONAL PROGRAMMING

Aug 83 - Aug 84

Background and Nature of Research

To provide practica1 support (on Acorn 68000 system) for the high performance functional programming language Ponder [1] (Polymorphic data types, normal order evaluation). The research being carried out by J Fairbairn and S Wray; M J C Gordon is the grant holder.

Research Goals

To show that, for a wide variety of tasks, industrial scale functional programs are not only possible, but clearer and more reliable than imperative ones.

Achievements

An implementation of Ponder has been produced which runs at about 7000 functions calls a second on the 68000 [2]. This is around the same speed as compiled Lisp.

Work in Hand

An interactive colour graphics interface (with a mouse) is under development. Further improvements to the implementation are in progress.

Applicability

The Ponder system is a research tool, not a product. Nevertheless its current performance is comparable to commercially available imperative languages.

Further Information

Contact Jon Fairbairn or Stuart Wray at the Computer Laboratory, Cambridge.

References

  1. J. Fairbairn, Ponder and its Type System, Technical Report No 31, Cambridge University Computer Laboratory.
  2. J. Fairbairn and S. Wray, Optimisations for Lazy Evaluators, Paper submitted to 3rd ACM Symposium on Lisp and Functional programming.

Both available from Jon Fairbairn and Stuart Wray above.

DR A J HERBERT, UNIVERSITY OF CAMBRIDGE

AN OBJECT-BASED PROGRAM SUPPORT ENVIRONMENT

Oct 83 - Sept 86

Background and Nature of Research

One of the major problems in the design of a programming environment is the representation of structural links between the several representations of a program module - its source code, binary, specification, etc., - and maintaining consistency between these representations as the various modules in a program are written and edited. To this end Cambridge have developed the entity system as a kernel to sustain the development of a variety of programming environments.

Entities are data types for representing information about program modules. An entity has a base type which includes its storage class. The latter describes how the entity is to be stored on disc. One entity may keep links to other entities in its stored representation, typically to describe the dependency relationships between modules. In addition to the base class, an entity may define a series of projection classes. These serve to define externally accessible forms of an entity, derived from the data stored in the base class. Thus a projection class is a list of procedures that can be invoked on the entity. When a software tool wishes to access some part of an entity it must approach the kernel giving the name of the entity and a perspective class. The perspective class will be a list of procedures the tool wishes to invoke, and the data types of the arguments and results of those procedures. The kernel will attempt to find a path through the projection procedures of the entity to construct a set of procedures that can satisfy the perspective. Typically, projections correspond to functions such as compiling and linking that convert between the various representations of a program module.

Projections are a very powerful and general mechanism. With them the entity system can describe the rules governing bindings between versions of program modules, specifications, edit histories and documentation. Procedures can be defined that implement entity naming schemes to provide directories or catalogues to help the user move around the pieces of a large program. The checking implied by the use of data types gives a high degree of integrity by ensuring that tools and data are compatible. Data types include time-stamps so that multiple or revised implementations of tools can be distinguished and automatically correlated with the stored form of entities on which they operate. The results of projection can be cached to improve the speed of access to frequently accessed components. The cached results can be held in volatile storage, since they can always be recomputed by projection form the permanently stored base classes.

Achievements

A prototype entity system has been written in Modula 2 for a VAX-11/750 running Berkeley 4.1 Unix. A first cut at a programming environment implementation supporting the Unix Modula 2 toolset is in its early stages, using the prototype entity system. Subsequent plans include the reimplementation of a revised kernel within the Unix operating system for greater efficiency and the writing of programming environments with tools that exploit the facilities of the entity system to its full power. In the first instance this will be done for Modula 2 and then for CLU in order to demonstrate that the kernel can support multiple languages.

A large bibliography of papers and articles on programming environments and related issues has been collected online for access via the Unix refer-package.

The project is presently staffed by the grant holder, one R.A. and a SERC-supported research student.

Further Information

For further information on either project, please contact Dr A J Herbert at the address above or by SERC mail to HERBERT@CAGA.

DR A J HERBERT, UNIVERSITY OF CAMBRIDGE

A DISTRIBUTED SOFTWARE SUPPORT ENVIRONMENT

Jan 84 - Dec 86

Background and Nature of Research

This project seeks to investigate the use of personal computers (namely PERQs as programmer workstations linked by local area network to a central programming environment service. The main thrust of the research is to split the imp1ementation of the programming environment and its software toolset so that highly interactive tasks such as editing and debugging are carried out in the local terminal, while data storage is carried out at a central point. In this respect. the programming environment server is reminiscent of the file servers found in other distributed systems.

This approach simplifies the problems of data management and interlock than would be the case if programmers had replicated copies of the full programming environment stored at their workstation. On the other hand, a central service is not well placed to meet the needs of highly interactive programs such as editors and debuggers, so Cambridge choose to run these locally at the workstation. Cambridge treat the local disc (if any) at a workstation as a volatile cache and rely on the server for permanent storage. Some functions such as compilation could be carried out locally in the terminal, at the server. or even on some other machine allocated dynamically for the purpose.

In addition to the distributed aspects of this research Cambridge also intend to devote some time to exploiting the capabilities of bit-mapped displays for presenting information to the programmer and providing control through pointing and selection actions using a mouse.

Cambridge propose to use the entity system described above as the basis for the central server and to treat projections as the units of distribution. In the early stages of the project Cambridge intend to focus on distributing individual tools, before going on to a more general mechanism.

The project is currently staffed by the grantholder and one RA.

Further Information

For further information on either project, please contact Dr A J Herbert at the address above or by SERC mail to HERBERT@CAGA.

PROF R M BURSTALL, UNIVERSITY OF EDINBURGH

SPECIFICATION IMPLEMENTATION AND CATEGORICAL PROGRAMMING

July 82 - June 85

Background and Nature of Research

The research deals with methods of producing programs which are guaranteed to meet their specifications, aiming to avoid the high cost of bugs in software produced by traditional methods. This has been a major concern of mathematical work on the theory of programming in the last 15 years and is now recognised as a commercial reality for the late 1980s.

Research goals

  1. To study the design of specification languages and their underlying basis in mathematical logic.
  2. To study modular construction methods for specification and programs.
  3. To develop connections between programming and the mathematical theory of categories, with special reference to abstraction in program development and re-usable code.

Achievements

  1. A specification language, ASL, by Sannella (Edinburgh) and Wirsing (Passau) which uses ideas from Clear to tackle behavioural equivalence and implementation of algebraic specifications.
  2. Development of the idea of institutions as a means of providing modularity in specification languages independent of the underlying logic (using categorical semantics), and an abstract definition of behavioural equivalence of implementations in an arbitrary institution (Tarlecki, Edinburgh).
  3. Development with Rydeheard (now at Manchester University) of a categorical algorithm for unification as an example of categorical programming.
  4. Definition of a kernel language, an extended typed lambda calculus, for expressing various forms of abstract data types, parameterised modules and generic values in a uniform notation, by Burstall and Lampson (Xerox PARC, now at DEC research).
  5. Production of an ML compiler in ML (Scott, working with Mitchell on Hennessy's grant).
  6. Application of ideas from Clear to the problem of structuring theories in the Edinburgh LCF theorem-proving system (Burstall and Sannella).

Work in Hand

Work on modularity and behavioural equivalence (Sannella and Schoett), institutions and liberality (Tarlecki), a method of proving that a logic is an institution using free algebra semantics (Burstall and Goguen SRI). Thinking about mechanical verification systems, esp. LCF and Cornell's PRL which Edinburgh have just got running on VAX 750, continuing interest in developing ML, especially for modularity.

Applicability

There has been considerable interest in Edinburgh's work on specification and in ML (support from ICL). BP have supported Burstall with a one-year Research Fellowship. Consultancy to ICL, IBM, Xerox PARC, SRI.

Further Information

Contact: Mrs. D. McKie for Deptl. Research Reports, Miss E.Kerse for other publications, Professor R. Burstall for technical matters, Dr. J. Scott about ML system.

SERC net address:R.M.Burstall@EDXA (soon to move to VAX).

References

  1. D. Sannella, and M. Wirsing, A Kernel Language for Algebraic Specification and Implementation. Edinburgh report CSR-131-83, extended abstract in: Proc Intl Conf on Foundations of Computation Borgholm, Sweden, August 1983. Springer LNCS 158.
  2. D. Sannella, and A. Tarlecki, Building Specifications in an Arbitrary Institution, In: Proc Intl Symp On Semantics Sophia-Antipolis, France June 1984, Springer LNCS (to appear).
  3. R. Lampson, and R. Burstall, A Kernel Language for Types and Modules In: Proc Intl On Semantics Sophia-Antipolis, France, June 1984. Springer LNCS (to appear)
  4. D. Sannella, and R. Burstall, Structured Theories in LCF, in Proc 8th Colloq on Trees in Algebra and Programming, L'Aquila, Italy, Springer LNCS 159.

PROF R M BURSTALL, A J R G MILNER and DR M P ATKINSON, UNIVERSiTY OF EDINBURGH

INFRASTRUCTURE SUPPORT FOR SOFTWARE ENGINEERING

July 83 - June 84

Purpose

The grant is to support a computer, and the salary of. a computer manager, to support software engineering research in the grant-holders' projects, The official start date was April 1, 1984.

Progress

With the help of George Cleland, CS Department Manager, a computer configuration was soon decided, and permission to purchase was granted by SERC on November 7. This machine was installed in March this year. its current configuration is:

It runs Berkeley Unix BSD 4.2. Both the hardware and software have provided reliable and initial problems experienced with the York X25 networking software have now been remedied. A user population of about 30 is supported with typically 5 to 15 users on the machine concurrently.

Dr G.D.M. Ross was appointed as Manager/Systems Programmer (full-time) from June 1, 1984.

The Data Curator group, under the direction of Malcolm Atkinson, are working, in collaboration with the University of St. Andrews, on a portable Unix implementation of PS-algol.

A number of systems, notably LCF, PRL, Unix ML have been imported on to the machine and are being actively used by the Theory of Computation group at Edinburgh. A port of Edinburgh ML from VAX/VMS is also being carried out.

DR M C B HENNESSY, UNIVERSITY OF EDINBURGH

THE BEHAVIOUR OF CONCURRENT SYSTEMS

July 83 - June 85

Background and Nature of Research

The general aim of this project is to develop and investigate various proof methodologies for concurrent systems.

Research Goals

A proof methodology must be based on a sound semantic theory of processes. One goal of the project is to formulate such theories and investigate their significance. Edinburgh have two candidates, called bisimulation equivalence and testing equivalence. Both theories lead to different notions of the behaviour of systems and consequently lead to different proof techniques. Edinburgh plan to apply these to medium scale examples taken from the fields of protocol specification and VLSI systems. To help in this endeavour Edinburgh plan to implement a workbench to help people use these proof techniques and more generally help them to evaluate their ideas of what proof techniques are more suited to specific problem domains.

Work in Hand

Implementing ML on the Perq has turned out to be very difficult due to limitations in the operating system which were not initially apparent, and for the moment has been abandoned. On the other hand, the attempt has led to a version of ML in ML and Edinburgh have started to provide a more sophisticated user environment for the language. Edinburgh have recently written a CCS simulator in ML and plan to augment it, giving the user more control over the execution of specifications. Some progress has been made at the theoretical level and these are reported in the references below.

Further Information

Please contact either M. Hennessy or K. Mitchell, Dept of Computer Science, University of Edinburgh.

References

  1. Modelling Fair Processes, to be presented at 16th ACM Symposium on the Theory of Computing, Washington D. C., April 1984.
  2. The Power of the Future Perfect in Programming Logics, with C. Sterling, to be presented at Mathematical Foundations of Computer Science, Prague, September 1984.
  3. Synchronous and Asynchronous Experiments on Processes, presented at International Federation of Information Processing World Congress, Paris, September 1983.
  4. Testing Equivalences for Processes, with R. de Nicola, presented at the International Colloquium on Automata, Languages and Programming, Barcelona, July 1983.

PROF A J R G MILNER, UNIVERSITY OF EDINBURGH

METHODOLOGICAL STUDIES IN DESCRIPTION AND VERIFICATION

Jan 82 - Dec 84

Aims

The project aims to extend the study of LCF, a system for conducting formal proofs with computer assistance, both by application studies and by extending its methodology (based upon the use of proof tactics). More generally, it aims to test the hypothesis that a functional programming language forms a good medium for machine-assisted formal studies in computing.

Personnel

David Schmidt left the project on December 1, 1983, to resume his teaching post at Kansas State University.

Larry Paulson took up a teaching post at Cambridge University on October 1, 1983, but remains actively involved with the project.

Lincoln Wallen, from the Artificial Intelligence Department at Edinburgh joined the project for one year starting April 1, 1984.

Work Done

Michael Gordon has been verifying hardware. His Logic for Sequential Machines (LSM) [l] extends the logic of LCF to handle bit-strings and communication lines; a logical term can then stand for a device with many inputs and outputs, and a binding mechanism specifies the connections among devices. In particular Gordon has shown [2] that a simple l6-bit computer, with ALU, memory, registers and microcode controller, meets its specification.

David Schmidt devoted most of his efforts to understanding different styles of tactical (= goal-directed) proof. In particular [3] he showed how, in a particular problem domain, interactive proofs are more naturally constructed if the axioms of that domain are presented not as axioms, but as inference rules; this especially eases the tactical proof style. He also generalised the existing tactic-machinery in the LCF systems, into a notation for expressing control algorithms for tactical theorem provers [4]. This work aims to clarify the nature of the basic elements from which a goal-directed proof assistant is built.

Lincoln Wallen is pursuing two separate aims. The first concerns proofs in resolution; he has found an efficient general strategy utilising unification and matings. Secondly, he is investigating the use of tactics in the PRL system of Constable at Cornell and taking it a stage further; this leads to a tactical calculus in which tactics are viewed not as subgoaling functions, as is normally done in LCF, but (more generally) as functions which manipulate proofs. This work, which also extends Schmidt's, will be documented soon.

Larry Paulson completed a large case study: the machine-assisted verification of the Unification algorithm [5]. This study, among others, has led him to make several improvements to the LCF implementation; the resulting Cambridge LCF running on VAX under Unix is now the best version. Several of his papers [6-8] are largely concerned with improvements. They involve changes to the underlying logic, which make proofs - in particular the derivation of a wide class of induction rules within the logic significantly easier; they also involve enhancements of the implementation, for example a more flexible tool for applying simplification (=rewriting) rules.

References

  1. M.J.C. Gordon, LCF-LSM: A System for Specifying and Verifying Hardware, Report 41, Computing Lab, Cambridge, 1983.
  2. M.J.C. Gordon, Proving a Computer Correct with the LCF-LSM Hardware Verification System, Report 42, Computing Lab, Cambridge, 1983.
  3. D. Schmidt, Natural-deduction Theorem Proving in Set Theory, report CSR-142, Computer Science Department, Edinburgh University, 1983.
  4. D. Schmidt, A Programming Notation for Tactical Reasoning, in Proc 7th Conference on Automated Deduction, Springer LCNS 170, pp 445-459, 1984.
  5. L. Paulson, Verifying the Unification Algorithm in LCF, Report 50 Computing Lab, Cambridge, 1984. (to appear in Science of Computer Programming)
  6. L. Paulson, The Revised Logic PPLAMBDA; A Reference Manual, Report 36, Computing Lab, Cambridge, 1983.
  7. L. Paulson, Tactics and Tacticals in Cambridge LCF, Report 39, Computing lab, Cambridge, 1983.
  8. L. Paulson, Deriving Structural Induction in LCF, in Proc. International Symposium on Data Types, Springer LNCS 173, pp 1-97---214, 1984.

A MYCROFT, UNIVERSITY OF EDINBURGH

TOOLS FOR THE CONSTRUCTION OF EFFICIENT AND VERIFIABLE LANGUAGES

Dec 81 - July 83

Background and Nature of Research

For a few years declarative (i.e. functional and logic) languages have been proposed as ways of solving the software crisis by concentrating on correctness rather than efficiency. Unfortunately such languages are far from current machine architecture and hence quite inefficient. This work addresses theoretical and practical issues in improving this.

Research Goals

The project set out to extend and enlarge upon the investigator's PhD thesis [3] on efficient applicative language implementation by developing

  1. tools which can perform more efficient translation to current machine architectures
  2. investigations into the theoretical issues involved.

The program became extended by the inclusion of logic programming languages (e.g. Prolog)

Achievements

  1. A polymorphic type system for Prolog was designed and implemented [7] {collaboration with R.A. O'Keefe).
  2. More understanding was gained on the semantics of exceptions, forthcoming.
  3. A formal semantics (operational and denotational) of Prolog (with cut) [2] (collaboration with N.D. Jones).
  4. Extension of dataflow analysis for functional languages [6] collaboration with F. Nielson).
  5. A formal model of failure and partial computations of Prolog using 3-valued logic [4] (work completed at Chalmers).

Work in Hand

The investigator is now working with the program methodology group at the address below who provide a very stimulating environment. Current work involves exploration of one aspect of Milner's polymorphic type system for HOPE-like languages [5] and the relationship of different models of currency (in particular CCS and Petri-nets [l]).

Applicability

The work on type checking Prolog is immediately applicable, contact the authors [7] for source code. Given a research assistant much more of the work could be mechanised.

Further Information

Current address/contact A. Mycroft, Inst. for Informationsbehandling, Chalmers TH, S-412 96 Gothenburg, Sweden.
SERCnet Address mycroft%chalmers@YKXA
uucp Address... !mcvax!enea!chalmers!mycroft

References

  1. U. Goltz and A. Mycroft, On the Relationship of CSS and Petri Nets, Springer-Verlag LNCS: Proc 11th Intl Colloq on Automata Languages and Programming, Antwerp 1984.
  2. N.D. Jones, and A. Mycroft, Stepwise Development of Operational and Denotational Semantics for Prolog,Proc IEEE Logic Programming Cond,, Atlantic City 1984.
  3. A. Mycroft, Abstract Interpretation and Optimising Transformations of Functional Programs, PhD. Thesis CST-15-81, Dept of Comp Science, Edinburgh University, 1981.
  4. A. Mycroft, Logic Programs and Many-valued Logics, Springer-Verlag LNCS: Proc 1st STACS, Paris, 1984.
  5. A. Mycroft, Polymorphic Type Schemes and Recursive definitions, Springer-Verlag LNCS: Proc.6th intl Symp on Programming, Toulouse 1984.
  6. A. Mycroft, and F. Nielson, Strong Abstract Interpretation using Power Domains, Springer-Verlag LNCS 154: Proc 10th Intl. Colloq. on Automata, Languages and Programming, Barcelona 1983.
  7. A. Mycroft, and R.A. O'Keefe, A Polymorphic Type System for Prolog, Research Report, Dept of AI, Edinburgh University, 1983. To appear in "Artificial Intelligence".

DR N H WHITE and DR K H BENNETT, UNIVERSITY OF KEELE

PASCAL RUN-TIME DIAGNOSTICS ON A PERQ COMPUTER

Jan 82 - Nov 84

Background and Nature of Research

This project is for the development of a run-time diagnostics system for the Pascal language on the Perq. The implementation is derived from a similar system written at Keele for the GEC 4000 series machines.

Research Goals

The first goal is to implement the basic diagnostics system PRTDS (Pascal Run-Time Diagnostics System) on the Perq in the form it currently exists on GEC machines.

The second goal is to enhance PRTDS considerably to make full use of the Perq graphics capabilities and add sophisticated run-time program monitor/control features.

Achievements

The equipment required for this project did not arrive at Keele until July 1983. The software required for the project consists of PNX 2.00 and several source programs concerned with the Pascal system on the Perq. These are still awaited. Such work as is possible without these tools has been fully explored in order to establish a first order representation of programs on the Perq.

Work in Hand

Work is currently held up pending arrival of the required source programs. These are, however, expected in the very near future.

Applicability

The system will provide an extremely powerful tool for program development and program run-time control. The features of data structured display are not restricted to such a diagnostics system and should easily find themselves to be of more general applicability. While the system is to be written for the Perq Pascal, the general principles and the majority of the product is neither specific to the Perq nor to Pascal.

Further Information

For further information please contact the following people: Dr N H White, Dr K H Bennett or Mr G Haylett.

References

  1. N H White, Run-Time Diagnostics in Programming Languages with Data-Structuring Facilities, University of Keele Ph.D thesis 1980.
  2. N H White and K H Bennett, Run-Time Diagnostics in Pascal, Internal paper awaiting consideration for publication in Software Practice and Experience.
  3. N H White and K H Bennett, PRTDS - A Pascal Run-Time Diagnostics System (internal paper awaiting consideration for publication in Software Practice and Experience.

PROF P J BROWN, UNIVERSITY OF KENT

SOFTWARE TOOLS CENTRE

Oct 83 - Sept 86

Background and Nature of Research

The Software Tools Centre provides tools for the Common Base, particularly tools that exploit the graphic facilities of a raster display with mouse.

Research Goals

The original philosophy of Unix was geared to glass teletypes. Currently the main way PNX (the Common Base Unix) exploits the PERQ screen is to allow several glass teletypes, each in a separate window. Only a few programs (eg. spy) actually use the mouse or any of the graphical facilities. The goal of the research is to fill this gap. This can only be done by a fundamental redesign of the way a program interacts with its user (eg. spy is not an adapted version of ed; instead it represents, as it must do, an entirely different conceptual model).

Not only will the Tools Centre develop its own tools, but will also validate tools from elsewhere.

Achievements

The first two projects were concerned with infrastructure: support of communications and an archiving mechanism to aid recovery from disk corruption. In addition the Centre has produced a menu generator, which greatly facilitates the construction and layout of structured menus: a designer of a program simply draws the menu he wants, and the menu generator produces a file that can be incorporated in the program.

Work in Hand

Current projects are

  1. production of debugging aids
  2. work on Unix argument passing via conventional commands and/or menus
  3. graphic user interface tools, including the display of file structuring and attributes.

Applicability

The whole purpose of the Centre is to produce tools that are applicable to the Common Base Community. Tools will be released by arrangement with the Rutherford Laboratory.

Further Information

Information is available from: Software Tools Centre, The University, Canterbury, Kent, CT2 7NF. Tel: 0227-66822 contacts are John Bovey (ext 7690), Peter Simon (ext 7690) or Peter Brown (ext 636).

PROF P J BROWN, UNIVERSITY OF CANTERBURY AT KENT

DYNAMIC DOCUMENTATION (Special Replacement Fellowship)

Sept 83 - Aug 86

Background and Nature of Research

For the first part of his Special Replacement Fellowship, Professor Brown has chosen to work on the use of computers to display documentation.

Research Goals

Current documentation stored in the computer is usually a direct reproduction of manuals that were previously printed on paper. The goal of the research is to examine ways to exploit the medium of computer-stored documentation, so that documentation can adapt dynamically to the needs of the reader.

Achievements

A prototype system, called doc, has been implemented. The user can evoke this to display the documentation that is of interest to him - this could range from a description of a text-editor to information about repairing a bicycle. Doc first displays a brief summary of its material, together with some icons. By selecting appropriate icons the user can adapt the documentation as he wishes. Examples are:

  1. expand the material under a certain heading (Tell more about regular expressions)
  2. give an example relating to a concept or method (Show me some regular expressions)
  3. explain a jargon term to looking it up in a glossary (What is a cotter pin?)
  4. edit the document so that the user can add his own comments (On my bicycle, this screw has a left-handed thread).

All these except the last, are implemented by simple mechanisms for expanding pre-written material - doc has no pretensions in AI.

Work in Hand

In the current stage of the project, the emphasis is on writing real documentation, investigating how this can exploit the new dynamic mode of operation, and obtaining feed-back on how the prototype doc system can be developed.

In the longer term there is interest in the incorporation of graphics in the text, and in a database of documentation, with an intelligent front-end to aid traversal of the database.

Applicability

The ideas are immediately applicable to any form of textual information stored on the computer.

DR F KHANNA, UNIVERSITY OF KENT

SPECIFICATION AND VERIFICATION OF DIGITAL SYSTEMS

Sept 82 - Aug 85

Overview

The aim of this project is to demonstrate an approach that has been developed for enabling one to specify the behavioural properties a digital system is required to exhibit and to verify that a proposed implementation would in fact possess these properties.

The behavioural properties of a digital system are described in terms of the relationship which obtains between a11 possible sets of waveforms that could be present at the ports of the system. An important feature of this approach is that the specifications are partial, that is to say, they can allow for the imprecision and indeterminacy inherently associated with physical systems.

A proposed implementation of a behavioural specification is described in terms of the behavioural specifications of each of its component parts, together with a structural specification (eg. a circuit diagram, or mask layout) defining their structural interrelationship.

Verifying that a proposed implementation (eg. a ripple adder) is correct simply means checking that the desired behavioural properties (eg. that it adds binary numerals) are logically implied by the behavioural properties of its parts, and the interrelationships between these behaviours implied by the structural specification.

Technical Aspects

Waveforms in digital systems are represented by partial functions. A behavioural specification of a device is a relation on a tuple of waveforms. Such specifications form a lattice, and the usual lattice operators have useful properties.

Specification (both structural and behavioural) are described in a structured way by using combinators to express composition of various kinds. The underlying logic used is a higher-order, structured, sorted predicate logic. A sharp distinction is made between the formal logic and its possible interpretations for different digital technologies. Proofs are computationally checked for soundness using interactive proof checking techniques.

Work in Hand

A set of specifications (in the form of axiomatic theories (for describing the properties of digital waveforms and simple digital devices was produced in 1981. A formal proof of the properties of simple digital circuits (eg. a S-R flipflop) was computationally verified using a prototype proof checker in 1983. Work is presently underway on software tools to assist with proof creation.

Applicability

In digital systems where human life would be hazarded by incorrect designs, formal verification techniques can be usefully employed to enhance the certainty of a design being correct. In the longer term, the use of formal verification techniques is likely to provide a more economical approach to the design of digital systems, especially those realised using VLSI.

Further Information

Please contact N Daeche or F K Hanna.

The following internal reports are availab1e:

DR T R HOPKINS, UNIVERSITY OF KENT AT CANTERBURY

FORTRAN LIBRARIES FOR THE COMMON BASE

June 83 - May 86

Background and Nature of Research

To give the Fortran users within the Common Base access to the wide variety of currently available software covering both numerical software and software engineering tools. Where possible this software will be tuned to take advantage of the advanced graphical facilities of the PERQ.

Research Goals

The short term goal is to provide a solid foundation of useful Fortran software. Much of this software is written in Fortran 66 and can be improved by partially updating it to Fortran 77. In the longer term the aim is to build up this software base and, where possible, to enhance the software to use the facilities offered by the PERQ whilst minimising the effect this may have on the portability of the code.

Achievements

A number of packages have already been implemented. These include LINPACK (for solving linear problems), AUGMENT (a tool to allow user defined extensions to Fortran), MP (a multiple precision arithmetic package) and the NBS Fortran 77 Analyser which allows the static and dynamic analysis of Fortran 77 programs. Several more are in the pipeline or awaiting licencing agreements to be finalised.

Work in Hand

Work is in hand to enhance the NBS Fortran 77 Analyser to produce graphical rather than numerical results, to implement some of the large number of routines available from CACM and to investigate the use of a graphical version of NITPACK to produce a numerical help system. It is hoped that work will commence shortly, in association with NAG, on the PERQ implementation of TOOLPACK.

Applicability

Upgrading software to use the new facilities in Fortran 77 can increase the reliability and portability of the code. It would be expected that much of the basic software would be valuable to industry and could now be more easily ported to other machines.

Further Information

For further information please contact the following people: Dr T R Hopkins or Mr M A Broom.

S ABRAMSKY and DR T S E MAIBAUM, IMPERIAL COLLEGE

FOUNDATIONS OF PARALLELISM AND NON-DETERMINISM IN DECLARATIVE PROGRAMMING

April 84 - March 87

Background and Nature of Research

In conventional programming languages, great emphasis is placed on instructing the machines how the required effect is to be computed. As a result, what the required effect is easily becomes obscured. Declarative programming stresses the what rather than the how. Its aim is to stay as close to the initial problem specification as possible, while still effectively describing a computational solution. The main formalisms currently available for declarative programming are the functional and logic programming language families, eg HOPE, KRC, LISPKIT, PROLOG, OBJ1. Over the past few years, it has become increasingly accepted that declarative programming will play a key role in addressing the software crisis, in allowing the effective exploitation of parallel architectures, and as an enabling technology for Intelligent Knowledge-Based Systems.

DR T S E MAIBAUM, IMPERIAL COLLEGE

ABSTRACT DATA TYPES AND APPLICATIONS TO PROGRAMMING METHODOLOGY AND DATABASE THEORY

Nov 82 - Oct 85

Background and Nature of Research

The aim of the project is the development of a theory of specification and implementation which is motivated by the requirements and practices of programming. The conventional approaches based on equational logic and the use of initially (ie. uniqueness concepts) have been abandoned as the former constrains one's ability to state properties concisely and the latter imposes proof obligations which are much more stringent than would seem to be required by the practice of programming. The language of first order logic was chosen both because of its greater flexibility and because it is already used in programming practice (eg. in verification systems, transformation systems). The project is also meant to address the problems of database specification and modelling. Databases are seen as prototypical examples of so-called object oriented views.

Research Goals

The short term aims of the project are to develop the foundations for a theory of data types, first put forward in [l], and to extend or modify the ideas therein to deal with database specification. Longer term goals include, on the one hand, the laying of foundations for theories of specification (what are the basic requirements for any theory of specification?), construction of support environments for the process of specification and implementation, and interfacing such a system with particular programming languages. On the other hand, theories of database specification will be augmented with the development of general purpose query and update languages and understanding of such concepts as transactions, views, incomplete information, deductive databases, etc.

Achievements

The theory put forward in [l] was based on using first order logic with non-Tarskian semantics-only namable (finitely generated, reachable) values allowed. An object on a structure must be the value of a variable free term in the language of the structure. Thus, for example, non standard models of the natural members are disallowed. Furthermore, specifications are structured so that this structure constrains the way in which models are built. Thus, if X[Y] is a specification, then models of X[Y] are those which can be obtained by extending the models of Y, thus protecting components (Y) from disturbance by the addition of superstructure (X).

The first major achievement of this project was to give a simple proof theoretic account of these semantic constraints. This was done by extending first order logic to a fragment of Lwlw, a logic which al lows infinitary disjunctions and conjunctions and rules of inference with infinitary premises.

Based on this idea, straightforward accounts have been given for the standard notations of implementation, enrichment, parameterisation, and error handling. As to work on databases, an approach based on modal logics has been adopted [2]. A database state is seen as a first order theory (with the functions and predicates of the language as the application dependent, primitive query operations). Updates are seen as functions which map states to states (theories to theories) and are characterised in terms of modal operators in logics similar to programming logics (eg. Hoare logics, predicate transformer logics). A general purpose query language has been developed and its implementation in terms of dataflow computation is being explored [8].

Work in Hand

Further refinement of the logic theory of specification is being undertaken in a number of areas. Of primary importance is the characterisation of Lwlw, which Imperial are using. Also of importance are questions concerning the machine support required for using such theory in practice. A number of properties of institutions suitable for specification have also been observed, and these ideas need to be characterised. On the database side, the work of the gen~ra1 purpose query language should be carried forward to provide a toy implementation. The nature of the general purpose update language also has to be explored. The important question here is: what combinators are useful in constructing updates from the primitive, application dependent ones? The problems of associating views with databases (or even constructing the database to support a pre-defined set of views), the appearance of partial or inconsistent information, and the nature of deductive information retrieval are also being explored by a research student associated with the project.

Applicability

Program development is an ill understood process. Since the activities of specification and implementation (stepwise refinement) are universally acknowledged as being part of this process, it is hoped that the work outlined above will contribute to the construction of a well-founded program support environment based on powerful theorem proving tools used to support these activities. The claim that the particular theory used is better suited to software engineering practice should be tested by trials of these ideas in industrial scale projects. As to database work, the use of abstraction implicit in the ideas being put forward can be seen as a development analogous to the introduction of abstract data types into programming. This freed software engineers from thinking about data purely in terms of their representations in the programming language in use. Today's database designer has not yet been liberated and it is tied to thinking in terms of his adopted programming language - ie. the conventional data model (relational, hierarchical, etc.) he has chosen to use.

Further Information

For further information, please contact the following: T.S.E. Maibaum, F. Golshani, M.R. Sadler, or S. Khosla.

References

  1. T.S.E. Maibaum and P.A.S. Veloso, A Logical Theory of Data Types Motivated by Programming, Science of Computer Proqramming, to appear.
  2. F. Golshani, T.S.E. Maibaum and M.R. Sadler, A Modal System of Algebras for Database Specification and Query/Update Language Support, Proceedings of International Conference on Very Large Databases, October, 1983.
  3. T.S.E. Maibaum, Logical Specification. November, 1982.
  4. T.S.E. Maibaum and P.A.S. Veloso, Bridging the Gap: A Theory of Abstract Data Types for Program Development, July, 1983.
  5. T.S.E. Maibaum and P.A.S. Veloso,Errors Considered Dispensable but Tolerable: Incomplete Specifications for Abstract Data Types, November, 1983.
  6. T.S.E. Maibaum, M.R. Sadler and P.A.S. Veloso, Logical Specification and Implementation, September, 1983.
  7. T.S.E. Maibaum, M.R. Sadler and P.A.S.Veloso, A Straightforward Approach to Parameterisation.
  8. F. Golshani, A Dataflow Model of Computation for Query Processing.

DR M A HENNELL, UNIVERSITY OF LIVERPOOL

INVESTIGATIONS INTO THE THEORETICAL ASPECTS OF FUNCTIONAL TESTING TECHNIQUES

Oct 82 - Sept 85

The project aims to find an understanding of the process of functional testing which is widely advocated as beneficial. Experiments have shown that software developers are extremely bad at identifying software functions.

Research Goals

The first step is to identify where the problem lies. For this purpose, a number of software systems have been analysed in order to attempt identification and characterisation of those components which were missed by functional testing strategies. Currently, knowledge concerning the untested code has been acquired and preliminary analyses have been made. It has been demonstrated that most of the unexecuted code concerns housekeeping tasks introduced during the design stage. In the samples selected, such tasks are implemented by approximately half the total code.

Work in Hand

At present detailed analyses of the major design methods are in hand with a view to developing an understanding of how testing strategy can be developed to ensure that all the components are thoroughly tested. The object is to increase the quality of the testing without unnecessarily constraining the designers. Currently, this work is closely co-ordinated with a related project with the European Research Office of the U.S. Army.

Achievements

The achievements to date have been the development of the concept of seeded validatory functions and the organisation of confirmatory functions. The exploitation of these techniques with some specific design methods have also been completed.

Applicability

The techniques developed will, in principle, be applicable over a wide range of software projects. Still to be evaluated and a potential limiting factor are the long term costs.

Further Information

Contact Dr M A Hennell.

References

  1. M.A. Hennell, P. Fairfield and M.U. Shaikh, Functional Testing; Using Confirmatory Functions.
  2. I.J. Riddle and M.J.Hennell, Practical Aspects of Program Mutation Part 2.

DR H BARRINGER and PROF C B JONES, UNIVERSITY OF MANCHESTER

A FORMAL SPECIFICATION AND DEVELOPMENT METHOD FOR PARALLEL PROGRAMS

Feb 83 - Jan 86

Background and Nature of Research

This project concerns the design of formal specification and methods for sequential, parallel and distributed systems. Formal methods for sequential systems are now quite well understood, however, such techniques do not readily transfer to parallel systems; successful techniques for parallel systems must be capable of specifying and documenting the interference between components.

Research Goals

Overall, this project aims to design, investigate and exercise a particular style of formal method suitable for parallel system development, ego a style which follows ideas presented [3]. One of the essential properties of the desired approach is that it supports truly hierarchical development. That is, specifications can be developed independently of each other. Short term goals were to investigate the use of temporal logic in specification and obtain methods based on such logics. Longer term goals are to combine relational and sequence logic approaches aiming to produce a method which is usable and understandable by the non mathematical systems designer.

Achievements

In the last year, major advances have been made in the application of temporal logic in specification. By making simple changes to the underlying computational model for concurrent program execution, a compositional temporal logic specification method has been developed. Compositional proof systems for both shared variables and message based parallel languages are given in the paper [2J. The tempora1 logic specification technique has been successfully applied in a partial development of a packet switching network [l].

Work in Hand

Currently the following areas are being tackled.

  1. Reconciliation of the relational and temporal logic approaches, essentially to achieve simpler proof techniques for sequential aspects of systems.
  2. Investigation of proof theory associated with the particular past time temporal logic currently used; an MSc student is helping with that work.
  3. Investigation of extensions to the temporal logic; although the proof systems is given in [2] are relatively complete, Manchester's current specification style makes restrictions which limit the extensibility. Extensions to the logic can overcome these problems.

Applicability

As distributed processing systems are becoming more important, it is necessary to possess formal development methods to avoid software crises. The results of this project are thus aimed to be applicable in most aspects of parallel and distributed system design and construction. For example, some aspects of the work should be of particular interest to the telecommunications industry.

Further Information

Contact either Howard Barringer, Cliff Jones or Ruurd Kuiper.

References

  1. H. Barringer and R. Kuiper, Towards the Hierarchical, Temporal Logic, Specification of Concurrent Systems, Proc. of the STL/SERC Workshop on the Analysis of Concurrent Systems Cambridge, September 1983.
  2. H. Barringer, R. Kuiper and A Pnueli. Now You May Compose Temporal Logic. Specifications, Proc. of the 16th ACM Symposium on the Theory of Computing, Washington, May 1984.
  3. C. B. Jones, Specification and Design of (Parallel) Programs, Proc IFIP 83, Paris, North Holland, 1983, pp 321-332.

DR H BARRINGER, I D COTTAM and PROF C B JONES, UNIVERSITY OF MANCHESTER

THE PROVISION OF VAX MACHINES AS RESEARCH INFRASTRUCTURE FOR SOFTWARE TECHNOLOGY

March 84 - Feb 87

Background and Nature of Research

A large VAX 11/750 computer running Berkeley UNIX 4.1 has been made available to the Manchester group in order that they may successfully pursue software technology research outlined on the Manchester pages. Because of the software which they intend to import, it is essential that the machine is VAX compatible. Additional hardware in the form of local area network (LAN) and wide area network (WAN) connections has been made availab1e.

I D COTTAM and PROF C B JONES, UNIVERSITY OF MANCHESTER

AN ENVIRONMENT FOR RIGOROUS SOFTWARE DEVELOPMENT

Oct 82 - Sept 85

Background and Nature of Research

To provide computer-based support for software engineers developing systems according to some rigorous method (eg. VDM [1]). Methods such as VDM, involve the notions of formal specification, systematic program refinement, and correctness arguments. The support system will be mounted on powerful, single-user, workstations.

Research Goals

The short term goals are to complete the specification of the VDM level; complete the initial version of our user-system interface (based upon the structure-editor paradigm) and generate a first-cut VDM support environment. The long term goals are to provide semi-automatic verification aids of both specification consistency and design correctness. Support for other developments will also be added.

Achievements

By the end of 1983, the underlying database (MDB) had been specified, and implemented on the PERQ. MDB also runs on the other machines available to the project: Apollo Domain and VAX 11/750 both under Unix. Structuring methods had been formulated and included in the VDM state specification. Numerous structure-editor based systems had been studied and evaluated indepth. Following this evaluation and experimentation period the group's own user-system interface design began. Related work includes the development of the specification logic (3-valued), and the use of logic programming for the rapid prototyping of formal specifications. A paper was presented at the York workshop on Formal Specification and Verification, Easter 1983. A later version, contained in [2], is available from the authors.

Work in Hand

Performance tests of MDB are underway. Virtual memory performance on the PERQ is of particular concern. The VDM state has been completely respecified to reflect the group's current thinking regarding the structuring of specification. The user-system interface generator is at the design/coding stage. The project is also supported in various ways by industrial contacts at ICL, STL and STC IDEC.

Applicability

Currently, other research projects at Manchester are using MSB, By mid-1984, it is expected to have a support system that may be of experimental interest to other research groups and, possibly, the aforementioned commercial companies (for internal R&D only).

Further Information

For further information please contact Mr I Cottam, Prof C Jones, Mr A Willis or Mr T Nipkow.

References

  1. D. Bjorner and C.B. Jones, Formal Specification and Software Development, Prentice-Hall International, 1982.
  2. I.D. Cottam, C.B.Jones, T. Nipkow and A.C. Willis, First Annual Report to the SERC - Mule: An Environment for Rigorous Software Development, copies available from the authors c/o the Computer Science Dept, University of Manchester.

DR F N TESKEY and S C HOLDEN, UNIVERSITY OF MANCHESTER

INTEGRATED INFORMATION SYSTEMS

June 83 - May 86

Background and Nature of Research

The aim of this project is to investigate the ways in which the Binary Relationship Model (BRM) can provide a suitable basis for representing visual and textual material in an integrated information system. The model will be evaluated both in its application to more complex intelligent knowledge based systems, and in its requirement for special purpose hardware.

Research Goals

The first stage of the project will be to design and build a simple integrated information system based on the binary relationship model. This will contain free text and structured information retrieval, document preparation aids and simple graphical processing. Further work will centre around incorporating user views and deductive capabilities into the system, as well as monitoring the systems processing requirements.

Achievements

In the six months since the project started, Manchester have outlined the overall design of the system and implemented a preliminary version of the BRM. A number of research students have developed additional software to provide graphical interfaces, and bulk data input.

Work in Hand

The software described above has been developed on a number of different machines, it is now being transferred to the PERQ that Manchester have just received. A preliminary implementation of user views is being implemented. Manchester are looking for suitable user applications on which to test the preliminary system. Manchester are cooperating closely with related groups in this department and at the University of Essex.

Applicability

The results of this project would have obvious application to office automation, library and information services. It is too early to say how they could be best exploited, but Manchester have discussed the project with the British Library and the UK Atomic Energy Authority.

Further Information

For further information contact Dr F N Teskey, Dept of Computer Science, University of Manchester, (SERCnet address - EFMA04@UMPA).

References

  1. F.N. Teskey, Implementing the Basic Functions of Free Text Information Retrieval Using Binary Relationships, Journal of Information Service, Vol. 6, pp. 165-172, 1983.

B J EDWARDS, P M LIVINGSTONE and J M TRIANCE, UNIVERSITY OF MANCHESTER INSTITUTE OF SCIENCE AND TECHNOLOGY

COMPUTER AIDED PROGRAM DESIGN FOR THE COMMERCIAL PROGRAMMER

Feb 83 - Feb 86

Background and Nature of Research

This project addresses the problem of supporting the task of program design for data processing applications. The aim is to specify a workbench which can be used to design, code, test, document and maintain data processing programs.

Research Goals

The main research goals are to formalise commercial program design sufficiently to define an automation process. These goals include:

  1. Formalisation of the Jackson Program Design Method
  2. Automation of these formalised rules
  3. Formalisation of documentation and maintenance methods
  4. Defining a user interface for program design

Achievements

By January 1984 much of the formalisation of JSP was complete. Many of these ideas have been communicated and confirmed through the vehicle of the Automated Aids Working Party which is a subgroup of the Jackson User Group. The automation of this formalisation is now underway. The definition of the user interface for diagram drawing, editing and program structure generation is almost complete and the interface for the subsequent stages of program design (eg. backtracking, elementary operation definition, condition definition and structure clashes) is underway. To date a full diagram editor, supported by a data dictionary representing the stored structures, is implemented on the PERQ under POS. The automation of correspondences is the next stage for implementation. More of the system would have been implemented but for the problems encountered trying to use Pascal under PNX. The group has now abandoned any thought of using PNX in the foreseeable future!

Work in Hand

Further implementation is the short term aim together with the research required to formalise the many other aspects described above. A possible contact with industry is also currently being considered for the development of some ideas. Contact is retained with the Automated Aids Group to act as a sounding board for ideas.

Applicability

The prototype is now availab1e to create and edit structure diagrams on the PERQ. In the near future hardcopy output will be available. Diagram drawing, which is merely the start of the research, is valuable to a large number of potential users of computers whether they be commercial users or not. The longer term applicability is aimed directly at Commerce. One Software House is already expressing great interest in the future product based upon the groups ideas.

R M GALLIMORE AND D COLEMAN, UNIVERSITY OF MANCHESTER INSTITUTE OF SCIENCE AND TECHNOLOGY

SOFTWARE TOOLS FOR THE CONSTRUCTION OF VERIFIED SOFTWARE and A WORKBENCH FOR THE CONSTRUCTION OF VERIFIED SOFTWARE

Aug 83 - June 86

Background and Nature of Research

The purpose of the projects is to develop computer tools to support the rigorous design of reliable software. This relies on the exploitation of mathematical formalism. The use of formal specification language makes it possible to record the design stages of a program's development and to prove its correctness. The use of an executable specification language enables software to be prototyped and large specifications to be debugged.

Research Goals

The long term goals of the projects are to implement the executable specification language OBJ; then design and implement as associated proof assistant for verifying the correctness of specifications and programs; and to investigate the role of formal specification in rigorous design methods. The immediate goals are to complete the implementation of OBJ, and to experiment with its use in the construction of software.

Achievements

The UMIST Proof Checker, which is a prototype for the proof assistant, has been considerably enhanced on the ICL Perq. The current version allows the semi-automatic production of proofs for theorems about OBJ-like abstract data type specifications. A subset of OBJ has been implemented in Pascal under Perq/PNX and VAX/VMS. The subset is sufficiently powerful to be used in the development of practical and executable specifications. The UMIST Proof Checker and the initial OBJ implementation were demonstrated at the Royal Society Discussion Meeting on Mathematical Logic and Programming Languages held in February 1984.

Work in Hand

The immediate task is to develop a Pascal implementation of full OBJ using the first generation of tools. The initial subset of OBJ has been found to be very powerful for developing formal and executable specifications. The use of one generation of tools in the construction of the next provides very valuable feedback about the functionality and performance of tools as well as refining ideas on design methods. Simultaneously with the implementation work on a preparatory study of proof techniques applicable to OBJ is being carried out.

Applicability

OBJ is we1l suited to the task of specifying Ada programs since both languages are based on data abstraction. It is expected that the tools developed under the projects will form suitable foundations for a second generation APSE in which the power of OBJ could be exploited to prototype Ada programs.

Further Information

Please contact Robin Gallimore or Derek Coleman.

Network Address

ARPAnet - GALL@UCL-CS (Gallimore and Coleman)

J M TRIANCE, UNIVERSITY OF MANCHESTER INSTITUTE OF SCIENCE AND TECHNOLOGY

COBOL LANGUAGE ENHANCEMENT FACILITY

Nov 82 - March 85

Background and Nature of Research

The COBOL Language Enhancement Facility (CLEF) is a compiler-integrated syntax macro facility intended to provide users with the opportunity to specify the precise dialect(s) of COBOL which they require their compiler to support. It has been designed by a BCS working party, and a pilot implementation of CLEF has been the subject of a previous SERC-funded project at UMIST.

Research Goals

The goal of the current project is the incorporation of the CLEF facility into an existing ICL COBOL compiler. This involves:

  1. conversion of the syntax analysis phase of the compiler from procedural-driven to table-driven operation;
  2. implementation of special CLEF features such as macro-recognition, property table access, output of generated-text etc. Together with the necessary additional supporting software.

Achievements

On the compiler side, achievements to date have centred on the solution of design problems (eg. control of macro matching; generated-text scheduling and input file switching; and accommodation of out-of-order entries in the symbol table and intermediate text) associated with the incorporation of a powerful macro facility to severe space constraints. In addition, considerable progress has been made with the supporting software, and facilities now exist for the generation of the syntax table needed to drive the compiler.

Work in Hand

The table-driven parser is being designed, together with the action processor and the scheduler which is responsible for handling generated text. Interfaces are being specified in close collaboration with ICL.

Applicability

The attraction of CLEF lies in its potential capacity to upgrade existing compilers to support features such as structured programming, database etc.

Further Information

For further information please contact the following people: Dr P J Layzell or Dr K M Wynne, Computation Department, UMIST, P.O. Box 88, Manchester, M60 lQD.

References

  1. P.J. Layzell and J.M.Triance, Implementation of a COBOL Language Enhancement Facility, Computation Dept Report No. 274, 1983.
  2. P.J.Layzell and J.M.Triance, Syntax Driven COBOL Compilers - An Assessment, Software Practice and Experience, No. 13, pp. 1141-1155.
  3. J.M.Triance and P.J.Layze11, 'CLEF - A COBOL Language Enhancement Facility', Computation Dept Report No. 273, 1983.

DR C R SNOW, UNIVERSITY OF NEWCASTLE UPON TYNE

INTEGRATED TOOLS FOR HARDWARE/SOFTWARE DEBUGGING

Sept 83 - Aug 86

Aims

To investigate the extent to which the techniques used for debugging hardware might be applied to the debugging of software and vice versa, and to develop debugging tools which can be applied equally well to hardware and software. Following this, it is hoped to construct a system which will be able to monitor the progress of a computation by appropriate hardware and software instrumentation.

Short Term Objectives

The PERQ is to be used to support a host system providing debugging facilities for a program running in a remote microprocessor system, at present a Motorola M6809 system. The debugger is display-oriented, and will provide for cross-assembly (or compilation) and linking of programs, and down-line loading to the target system. As the program runs, the system will allow the usual debugging activities such as breakpoint setting and clearing, starting and stopping the processor, single stepping, etc. The host system will maintain all the necessary data structures for the user to communicate with the target system in source language terms.

The PERQ is also to be used to provide a friendly interface to traditional hardware instrumentation such as a logic analyser. The host system will provide the necessary communication via the GPIB to control the actions of the instrument and to receive the results of the monitoring. This data will again be presented in a display-oriented fashion, making use of user-level representations of the target hardware held within the host.

Long Term Objectives

The main aim of the project is to develop an environment in which microprocessor systems may be debugged where both the hardware and the software are being designed and constructed in parallel. New techniques in debugging will be developed out of existing hardware and software techniques, and a unified environment will be developed and built.

Work in Hand

The software debugger is at an advanced stage of development, at least as far as the communication with the target is concerned. Cross-assembly is being provided at present, together with source level specification of debugging information, and consideration is also being given to the use of high-level languages. On the hardware side, investigations are in progress to decide upon and to purchase the most suitable instrument available for the needs of the project, and at the same time various hardware description languages are being assessed as candidates for the purpose of providing a representation of the target hardware within the host.

PROF C A R HOARE, J E STOY and B SUFRIN, UNIVERSITY OF OXFORD

SOFTWARE ENGINEERING

Sept 81 - Aug 87

Background and Nature of Research

The project is aimed at the development and promulgation of an engineering method applicable to the construction of computer based systems. Much of the complexity, unreliability, and the cost of these systems can be accounted for by the late discovery (during programming) of errors introduced at the design stage. The imprecision inherent in informally-expressed system specifications allows major errors to go undetected at the stage in the system construction process where they can be most economically corrected. The investigators believe that the application of formal (mathematically-based) methods in the design and development process will play an important part in reducing the cost and increasing the quality of systems.

Research Goals

Important barriers to widespread acceptance of development methods based on formal principles still remain. The long term goal is to overcome some of the fear of applying formal methods still expressed by programmers and designers working in industry.

Medium term goals are threefold:

  1. To continue to apply the proposed methods in an industrial environment with a view to the immediate transfer of technology;
  2. to develop and propagate automated tools to assist the formulation, consistency-checking and publishing specifications, and the verification of designs;
  3. to continue the investigation of the foundations of the set theory based notation, Z, which is the basis of our method.

Achievements

By late 1983 collaborative projects had been established, with industrial partners (ICL, IBM) and with the Distributed Computing project which is underway in the same laboratory. Both the ICL and IBM projects involve applying Z to the description of software products which have grown so large as to be difficult to comprehend by their development and maintenance teams. In each case the purpose of the collaboration has been to develop descriptions of the products which are sufficiently accurate as to capture the essence of the product's intended behaviour, but sufficiently abstract that a newcomer to the development team can be introduced to the product without being overwhelmed by the implementation details.

Staff on the Distributed Computing project have applied the proposed method from the very beginning of their work. Each of the services provided by their experimental local area network has been designed and documented using Z. For further details see [l].

An editing system to support the production of high quality multi-font documents, containing formal material and diagrams has been constructed on the PERQ. It has been made available to a few academic institutions and is also being exploited commercially.

Work in Hand

Work on the proof checker for the Z logic was hampered by the delayed production of the Common Base Software. A type-checker and prototype proof checker for a large subset of the logic have been completed. these will be moved to the PERQ as soon as an ML implementation becomes available. Design of the specification-support database continues: experience gained in the construction of the above mentioned document editor has been an important source of inspiration in this area.

Applicability

Improved Software Engineering methods are likely to be used in all branches of programming. If the goals of the project are met then an effective and well documented method of attacking one of the fundamental problems which beset the computer industry will become freely available in the public domain.

Further Information

For further information please contact B Sufrin or C A R Hoare.

References

  1. Annual Report of the Coordinated Programme of Research in Distributed Computing Systems, Science and Engineering Research Council, 1983

Bibliography

DR D G JENKINS and DR M K CROWE, PAISLEY COLLEGE OF TECHNOLOGY

DEVELOPMENT OF AN INCREMENTAL COMPILER WITH INTEGRATED SOFTWARE QUALITY ASSURANCE FUNCTIONS

Sept 83 - Aug 86

Background and Nature of Research

This project is for the development of an incremental compiler for Ada [1] with integrated software quality assurance functions. The starting points for the work are the York Ada compiler [2], the EMACS text editor [3], and Unix [4]. Its purpose is to develop tools which assist development of Ada projects from a base of software components.

Research Goals

The provision of suitable programming tools is essential for the proper exploitation of Ada. While incremental compilation for Ada is the long-term goal of the project, subsidiary goals can be listed as follows:

  1. a version control system which is more rigorous and easier to use than SCCS and its variants;
  2. help with imported entities - a modularised tags package for Ada;
  3. a syntax-directed editor for Ada;
  4. a semantics-assisted editor for Ada.

With incorporation of parts of the York Ada compiler beginning at an early stage in this list, it is hoped that this programme will provide a staged mechanism for achieving the main goal of the project, while developing a number of other tools of wider applicability.

Achievements

By February 1984, the version control system and its associated tools was complete. It is called the Project Development Environment (PDE) [5]. A radical approach was adopted, of providing enhancements to the Unix file system at the system-interface level (not altering the Unix kernel). With these enhancements arbitrary file attributes and transparent version selection are supported. In the Ada context the file attribute enhancement is needed to implement the Common Ada Interface Set (CAIS) [6J] under Unix. This approach allows the new file system to exist alongside the usual Unix system, and provides for interoperability: moreover, all the usual Unix tools can be transported (usually without change) onto the new system.

Work in Hand

The new file system is now in use to support the project development itself. With receipt of the first stage of the York Ada compiler, work has begun on the next two parts of the project. Preliminary packages exist for tags and syntax-assistance, and the syntax tree of the York compiler will now be incorporated into the editor. This will be done through development of tools to perform transformations on the York source, inserting the information required for the editor into the attributes of the syntax tree.

Applicability

The enhanced file system and version control tools are of general applicability and will soon be ready for separate release. The relative ease with which CAIS could be supported from this work has caused some interest in the Ada community [7], and some reaction from Unix sites to the version control system is also expected.

Further Information

For further information please contact the following people: Dr M K Crowe, D Mackay, G Ball, M Hughes or D G Jenkins.

References

  1. Reference Manual for the Ada Programming Language, ANSI/MIL 1815A, January 1983.
  2. J.A. Murdie Functional Specification of the York Ada Workbench Compiler Release 0, York Computer Science Report No 54, Dept of Computer Science, University of York, October 1982.
  3. R.M. Stallman, EMACS: The Extensible, Customiseable, Self-Documenting Display Editor, Proc ACM SIGPLAN/SIGOA Conference on Text Manipulation, pp. 147-156 ACM, 1981.
  4. Unix Programmers Manual, Virtual VAX-11 Version, University of California, Berkeley, November 1980.
  5. D. Mackay, The Project Development Environment, Software Tools Research Group Internal Report, Paisley College of Technology, October 1983.
  6. U.S. Dept of Defence and KIT/KITIA CAIS Working Group for the Ada Joint Program Office, Draft Specification of the Common APSE Interface Set (CAIS), 30 Sept 1983 (draft).
  7. M.K. Crowe et al, Supporting the CAIS from Unix, Ada UK News Vol.5 No.1, pp. 48-50, January 1984.

PROF K D BAKER, PLYMOUTH POLYTECHNIC

SOFTWARE ENGINEERING WORKSTATION ENVIRONMENTS FOR FLIGHT SIMULATOR SYSTEM DESIGN

May 83 - Aug 86

Background

The research associated with this grant started with a thorough survey of existing software engineering environments. The findings of the survey have been summarised in a 288 page report [1] which also outlines our proposed research leading to an effective workstation environment to support the development of flight simulators.

Current Status

A six month slip was introduced into the work because of a move from one academic institution to another. Two Research Assistants are now in post the first started in February 1984 and the second started in August 1984. The work is now well underway and the frequency of meetings with the the collaborative industrial partner has increased to a regular pattern.

Progress

There are two major components of the research. Firstly the development of an integrated set of tools in a workstation environment. Secondly, to investigate the introduction of higher level abstractions in the transformation of conceptual design to an implemented system, including both hardware and software. The work is being carried out in conjunction with an industrial partner who has substantial experience in the development of large scale systems. The investigation must therefore take account of the existing environment when considering the framework of new tool developments. Accordingly the work to date has concentrated on gaining an understanding of the processes by which the flight simulator design engineer sets about the design of a simulator sub-system. Initially Plymouth have chosen to focus attention on the Flight/Aero subsystem which uses data supplied by the aircraft manufacturers to provide various inputs to the mathematical model executed by the simulator.

Plymouth have identified the need to provide a satisfactory interactive interface between the manufacturers data and the mathematical model used in the simulation. The form of this interface will allow the designer to manipulate the manufacturers data at the same time as monitoring the output from the execution of the mathematical model used in the simulation. A requirements specification of the toolset for these operations is currently being written.

Associated with this activity is the specification of the form of the workstation to support the interactive tools. Furthermore, the study of one particular subsystem of the existing simulator has been necessary to decide on ways to monitor the output relevant to the design activity. Part of this work is concerned with the identification of the real time information flows between the various components of the subsystem. This will1 form the basis of the work forming the second major focus of the project, namely the development of tools to model systems using higher abstractions above that of the code and hardware.

References

  1. K.D. Baker, Software Engineering and Design Tools.

PROF P HENDERSON, UNIVERSITY OF STIRLING

EMBEDDED LANGUAGES FOR SOFTWARE DEVELOPMENT

Oct 83 - Sept 84

Background and Nature of Research

One of the most important techniques which Stirling use to overcome the complexity inherent in software design is to describe the software at an appropriate level of abstraction. If possible, the abstractions are captured in the software itself by the use of procedures and data types. Functional languages are particularly suited to this software design technique. Quite often however, Stirling make use of abstractions in our design which is not straightforward to represent in the programming language as procedures, or data types; for example, a particular set of concepts for describing parallel activity in an otherwise sequential language. At this point, the software designer would be inclined to develop a new programming language. The development of new programming languages is a more powerful tool than the mere development of libraries of procedures and data types. This project is to investigate the problem of making special purpose programming language design a tool in the software designers' toolkit.

Research Goals

The initial goal is to define a number of applications oriented programming language in order to validate our claim that such languages make the problem of software design simpler. These investigations will hopefully lead to an understanding of how to describe new programming languages in an economical way both for the potential user and for rapid implementation. A longer term goal will be the development of a system for software development, a principal tool in which will be the design of new programming language components particularly suited to the application in hand. The new components would be embedded in a suitable host language using techniques to be developed by the project.

Achievements

To date Stirling have not made an appointment to the RA post on this project. Their investigations have concentrated on the embedding of set notation and logic functional language. The technique used, that of giving a denotational description of the concepts to be embedded, is an obvious one for functional languages. These embedded languages have been used to develop prototypes of a number of simple database programs, in particular a semantic network database, where the host language has been Lispkit [l]. More recently, a simple graphics application has been developed using the same technique, (based on earlier work [2]).

Work in Hand

Stirling are investigating further applications areas for which special purpose languages, suitable for embedding in Lispkit, might be developed. An area of recent attention is a language for writing expert systems.

Another concern has been the use of such techniques with conventional languages such as Pascal. Stirling believe they now know how to embed out set notation in Pascal but need to do the experiments to validate this belief.

Applicability

Stirling hope to exploit these ideas in a related project, jointly engaged in by Stirling and ICL. That projects goals are to investigate the applicability of functional and logic programming to the rapid development of business applications. It builds upon earlier work funded by both SERC and ICL.

Further Information

For further information please contact Peter Henderson, Computing Science Department, University of Stirling, Stirling FK9 4LA. Tel: 0786 3171 ext 2759. Mail address: PHSCS@SGVA or DTSG01@RLGM

References

  1. P. Henderson, G.A. Jones and S.B. Jones, The Lispkit Manual, Oxford University Computing Laboratory, Technical Monograph PRG-32 (2 volumes), 1983.
  2. P. Henderson, Functional Geometry, in 1982 ACM Symposium on Lisp and Functional Programming.
  3. P. Henderson, A Simple Semantic Network Database, University of Stirling, Computer Science Department, FPN-1, 1983.
  4. P. Henderson, A Practical View of Functional Programming, University of Stirling, Computer Science Department, FPN-2, 1983. (Available from author).

PROF A D MCGETTRICK, UNIVERSITY OF STRATHCLYDE

TOWARDS AN IMPLEMENTATION OF ANNA

Oct 83 - Sept 84

Background and Nature of Research

Anna is an annotational language which can be regarded as an extension of Ada. It has been designed almost as a wide spectrum language, to support all phases of the software development process. It includes facilities for formal specification as well as facilities for incorporating the assertions needed to carry out formal verification. A preliminary version of Anna has been superseded by the most recent March 1984 version.

The project is proceeding on three fronts. Anna is being exposed to a variety of applications. From the experience gained in these exercises an assessment is being made of the suitability of the language and of its likely acceptability. Finally issues associated with the implementation of Anna are being considered.

PROF I C WAND, UNIVERSITY OF YORK

UNIX X25 COMMUNICATIONS SOFTWARE

Sept 79 - July 86

Background and Nature of Research

The objective of this project is to develop software to link computers running the Unix operating system to X25 based networks SERCnet (JANET) and the British Telecom PSS service.

Research Goals

The original goal was to link PDP-11 computers running 7th Edition Unix to the X25 networks. That goal was realised in 1982. The present aims are to offer support for sites which are running the York software and to improve further the reliability of the system. Longer term goals include support of more versions of Unix, integration of the Bristol JTMP software, implementation of ISO and other international standards as they become available, a high performance front end (for use with VAXes) and recoding of the front end software to make it compatible with non-DEC hardware.

Achievements

The York Unix - X25 communications package has been implemented using either a FALCON SBC-11/21 or LSI-11/02 front end processor, providing X25 levels 1, 2 (LAPB) and 3, a Transport Service and Host X29/TS29, and a suite of user programs running on the host under Unix. The system can support up to 16 X25 logical channels which are designated (by the user) for use as incoming or outgoing X29/TS29 calls or FTP/MAIL streams.

The COMSYS X25 package, originally from UCL, has been used to provide levels 1, 2 and 3 X25 handling; the Yellow Book Transport Service, X29/TS29 handlers and a protocol to handle the data flow between the front end and Unix, have been developed at York. An additional device driver has been provided for the Unix kernel.

The user programs, all developed at York, include

  1. X29/TS29 PAD program;
  2. spooled NIFTP 80 (P and Q processes);
  3. JNT Mail service;
  4. access control and call logging facilities.

There is full on-line documentation for these programs.

Release 1 was distributed late in 1982. Release 2.0, offering much enhanced user programs and increased reliability, was issued in September 1983.

Work in Hand

Release 2.1, essentially a maintenance release but including support for BSD 4.1 for the first time and system documentation, is scheduled for distribution in mid-April 1984. A release to support PNX 2.0 will be forthcoming this summer, as will support for BSD 4.2. The University of York will be involved with ESPRIT EIES and it is expected that manpower will be provided for the project from this source by mid 1984.

Applicability

About fifty computers have been licenced to run York software so far. Many of these rely of it to provide a network service for their users. Several commercial sites have taken out licences and some are negotiating sublicence rights for the software.

Further Information

For further information, please contact S J Smith.

References

  1. K. S. Ruttle and I. C. Wand, X25 - UNIX: Memo Nine, Design Proposal, Dept of Computer Science, University of York, March 1980.
  2. UNIX - X25 Communications: Release 2 Product Description, Dept of Computer Science, University of York, April 1984.

PROF I C WAND, UNIVERSITY OF YORK

YORK ADA WORKBENCH COMPILER

Jan 80 - Dec 86

Background and Nature of Research

This project involves the development of an Ada compiler, to assess the Ada language and provide a compiler to further progress in Software Technology.

Research Goals

The project set out to evaluate both the Ada language, and the level of technology required to build its compiler. This has remained the long term goal; in the short term, the compiler is being updated to accept the full Ada language, prior to its validation.

Achievements

Two versions of the compiler were made available to British academic institutions, in October 1982 and December 1983; both run under Berkeley Unix version 4.1. The performance of these versions is encouraging; both run at about 600 lines a minute and cope well with programs written in the appropriate subset of Ada. The second release of the compiler is being exploited commercially under agreement with the British Technology Group.

Work in Hand

The compiler is being redesigned to incorporate new language features; in particular, generics and derived types. A major change to the middle of the compiler should result in appreciable performance improvements, in memory requirements and (it is hoped) in speed. The industrial collaborators SSL and SPL are making suitable changes in the compiler to host it on (and target it for) the VAX VMS system.

Applicability

Both releases of the compiler so far, whilst only implementing subsets of the Ada language, have been usable for the construction of software products in Ada. As such, their scope for use and exploitation is very wide, and will broaden as the compiler becomes available on the commercial market.

Further Information

For further information please contact either Prof I C Wand or Dr M D Harrison.

References

  1. J.S. Briggs et al, Ada Workbench Compiler Project 1981, York Computer Science Report No. 48.
  2. J.A. Murdie, Functional Specification of the York Ada Workbench compiler, Release 0, York Computer Science Report No. 54.
  3. J.S. Briggs et a1, Ada Workbench Compiler Project 1981, Computer Science Report No. 59.
  4. J.A. Murdie, Functional Specification of the York Ada Workbench Compiler, Release 1, York Computer Science Report No. 62.
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site