Persistence, Hyper-Programming and Beyond

Dr Richard Connor - University of St Andrews

Orthogonal persistence means that values manipulated by a programming language are treated independently of the length of time of their existence. The immediate benefits of persistence are a reduction in code size and complexity, achieved by the elision of any code necessary to translate data between traditional long and short-term environments.

Within an integrated persistent system, however, further benefits are possible. Direct bindings are possible between source code and other values within the persistent space, allowing statically typed programs in the format of hyper-text.

A prototype hyper-programming system has been constructed by the persistence research group at St Andrews University; the seminar will demonstrate some of the advantages of this new programming paradigm.


Computer Science in the Age of Interactive Systems

Dr William Newman - Rank Xerox Research Centre

In recent years, interactive systems have gained widespread acceptance from the public and have become a mainstay of the computer industry. Why has this radical shift in computing not been reflected in mainstream Computer Science teaching and research? Why do most Computer Science departments still offer no courses in Human Computer Interaction (HCI) or user interface design?

I will present some observations about HCI and about mainstream Computer Science, which suggest that any attempt to marry these two topics will fail. I will consider the possible role of Software Engineering in overcoming this problem, and will conclude with some suggestions on how Interactive Computing might become part of the computing mainstream.


Improving Code Inspection by Automatic Defect Detection

Keith Paton

In code inspection a team of inspectors examines legal code in an attempt to find errors, i.e. places where the code fails to achieve what the design requires. Fagan (1986) has shown that such code inspection lowers the cost of software development. However such code inspection is expensive is unreliable is in part unnecesary

Automatic Defect Detection (ADD) is a prelude to traditional code inspection. In ADD the code is examined automatically and flags are raised at places where the code contravenes certain rules. These pieces of code are then revised by the author and the revised code submitted to traditional code inspection. The revised code is clearer than the original and some types of error have been found and removed already. Thus the traditional code inspection is cheaper, more reliable and more focused on the things that only people can find.

The rules used by ADD are drawn from guidebooks on system development and from the observations of working programers. As soon as an error type has been entered in the rule base, ADD ensures that all future examples of this error will be flagged. ADD does not prevent us from making errors; it warns us when we make them and gives us a chance to correct them at an early stage.

Since the rules used by ADD can be modified on site, ADD makes it possible for a company to enforce a house style, a sense of "this is the way we develop systems at company X" without stifling the creativity of individual prgrammers.


Teleporting - Making Applications Mobile

Tristan Richardson - Olivetti Research Ltd, Cambridge

The rapid emergence of mobile computers as a popular, and increasingly powerful, computing tool is presenting new challenges. This subject is already being widely addressed within the computing literature. A complementary and relatively unexplored notion of mobility is one in which application interfaces, rather than the computer on which the applications run, are able to move.

This talk will describe the ORL Teleporting System, a tool for experiencing such `mobile applications'. It operates within the X Window System, and allows users to interact with their existing X applications at any X display within a building. In addition, the talk will outline how the ORL Active Badge location system simplifies the process of controlling the teleporting system.


Passivity and Linear Types

John Reynolds - Imperial College & Carnegie Mellon University

In various proposals (e.g. by Lafont, Wadler, and Abramsky) for programming languages based on intuitionistic linear logic, linear types describe values that are used exactly once, so that destructive operations are possible, while the "of course" type-constructor describes values that can be copied or discarded, as well as being used destructively.

One would expect that imperative languages could be translated into these linear-typed languages in such a way that state transformations become linear functions, reflecting the fact that states are never copied in imperative langauges. Such a translation, however, cannot deal with expressions that read parts of the same state concurrently.

To overcome this difficulty, we propose additional "passive" constructors describing values that can be copied or discarded, but are only subject to nondestructive "read-only" operations. Such values are obtained by temporarily "freezing" values of linear type.

In contrast to earlier proposals by Wadler, Odersky, and Swarup, Reddy, and Ireland, our language is an extension of a conventional language based on intuitionistic linear logic. To handle the unfreezing of passive values, it uses "regions" in a way suggested by Tofte's treatment of storage allocation in ML.


Software Configuration Management using an Object-Oriented Database

Mick Jordan - Sun Microsystems Laboratories

Current software development environments are still largely based on file systems and "make-based" tools, despite the inherent limitations of these systems for handling the size and complexity of contemporary software projects. This talk will describe an experimental software development environment that integrates configuration management, editing and system building and is built on top of a commercially available object-oriented database.


The Use of Formal Methods in Commercial Organisations

Dr Nico Plat - Cap Volmac, The Netherlands

The use of formal methods in commercial organisations is limited and -- even in situations in which their use can clearly provide significant benefits -- their introduction is never easy. The Dutch company Cap Volmac is coordinator of the ESPRIT-III project Afrodite, in which technology transfer of formal methods is approached by providing an adequate and easy-to-use support environment (Venus) for a combination of `classical' and `formal' techniques (in this case Rumbaugh's OMT and the formal specification language VDM++: an object oriented extension of VDM-SL), thus making a more gradual introduction of formal methods into existing software processes possible. In Afrodite, VDM++ and Venus are tested on a number of applications (CERN's `second level trigger' systems for the LHC, ship load balancing software, an ATC system and the possibility of transforming VDM++ specifications into hardware description languages). Background and contents of the Afrodite project will be discussed, including the results so far and remaining problems.