Skip to main content

A Program Development Environment Based on Persistence and Abstract Data Types

  • Conference paper

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

This paper describes the design of a program development system used for teaching undergraduate students. The system started life as an experiment with ideas associated with a type domain designed as part of a persistent [1] programming environment [11]. The aim of the experiment was to apply these ideas to the description of facilities usually associated with file-based operating systems, and to find out how well ideas designed to cope with “fine grain” persistent objects, would cope with the kind of “coarse grain” persistent objects usually represented by “files”.

In this paper, objects of type program are defined by an abstract data type supporting the operations, edit, parse, make executable and run. The program development process is controlled through the notion of abstract states which constrain the order of application of the available operations. In addition, the type program may be parametrised by objects of type language.

A more complex type called system is provided. Systems support the same operations as simple programs, but are represented by hierarchies of programs and modules. A set of navigation operations are supported and the abstract state of a system or subsystem is a composition of the abstract states of its components. Users interact with systems as if they were using an interactive, incremental version of the UNIX make command [3].

In addition to the predefined object types described above, the environment supports user defined object types through a mechanism which formalises the concept of a suite of programs, e.g. the new type document might be installed and described by an appropriate set of operations and abstract states.

The system is described in terms of the type domain supported by the Paradox persistent machine [11]. A version of the programming environment has been used by classes of 100 or more students at UMIST since October 1987.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atkinson, M.P., Bailey, P.J., Chisholm, K.J., Cockshott, W.P. & Morrison, R. “An Approach to Persistent Programming”. The Computer Journal 26, 4, November 1983, pp. 360–365.

    MATH  Google Scholar 

  2. Bouch, G., “Software Engineering with Ada”. Computing and Information Sciences Series, Benjamin/Cummings Publishing Company, 1983, pp. 202–205.

    Google Scholar 

  3. Bourne, S.R., “The UNIX System”, International Computer Science Series, Addison-Wesley, 1982.

    Google Scholar 

  4. Brinch Hansen, P. “Distributed Processes: A Concurrent Programming Concept”. In Concurrent Programming, ed. Gehani, N. & McGettrick, A.D. Addison-Wesley, 1988, pp. 216–233.

    Google Scholar 

  5. Campbell, R.H. & Haberman, A.N. “The Specification of Process Synchronisation by Path Expressions”. Lecture Notes in Computer Science 16, Springer-Verlag, New York, 1974, pp. 89–102.

    Google Scholar 

  6. Goldberg, A. & Robinson, D. “SmallTalk-80: The Language and its Implementation”. Addison-Wesley, 1983.

    Google Scholar 

  7. Martin, J.J., “Data Types and Data Structures”. Series in Computer Science, ed. Hoare, C.A.R., Prentice-Hall International, 1986, pp. 59–60.

    Google Scholar 

  8. Milner, R., “A Calculus of Communicating Systems”. In Lecture Notes in Computer Science, 92, Springer-Verlag, 1980.

    Google Scholar 

  9. Powell, M.S., “Strongly Typed User Interfaces in an Abstract Data Store”. Software Practice & Experience, Vol 17, No 4,1987.

    Google Scholar 

  10. Powell, M.S., “An Input/Output Primitive for Object Orientated Systems”. Information & Software Technology, Vol 30, No 1, 1988.

    Google Scholar 

  11. Powell, M.S., “Incremental Compilation, Partial Evaluation and Persistence”. Proc. of the 2nd International Workshop on Persistent Object Systems, Universities of Glasgow and St. Andrews, PPRR-44, August 1987.

    Google Scholar 

  12. Tye, S.T., “A Prototype Abstract Data Store”. PhD Thesis, University of Manchester, 1985, Computation Department, UMIST.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 1990 British Computer Society

About this paper

Cite this paper

Powell, M.S. (1990). A Program Development Environment Based on Persistence and Abstract Data Types. In: Persistent Object Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3173-1_3

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3173-1_3

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19626-6

  • Online ISBN: 978-1-4471-3173-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics