The Napier Type System

  • R. Morrison
  • A. Brown
  • R. Carrick
  • R. Connor
  • A. Dearle
  • M. P. Atkinson
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


Persistent programming is concerned with the construction of large and long lived systems of data. In designing and building persistent object systems, we are attempting to regularise the activities that are performed on data by programming languages, operating systems, database management systems and file systems. We have identified the following areas of research which we are investigating in the context of persistent systems. They are: controlling complexity, protection of data, orthogonal persistence, controlled system evolution and concurrent computation.

In this paper, we describe the data modelling facilities of the Napier type system. We also demonstrate the flexible and incremental nature of the type checking mechanism that is required for persistent programming. The type system is central to the nature of the Napier language and we will demonstrate how it has been designed to solve problems in the five areas identified above.


Type System Software Reuse Type Check Type Constructor Abstract Data Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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.MATHGoogle Scholar
  2. 2.
    Atkinson, M.P., Morrison, R. & Pratten, G.D. “Designing a persistent information space architecture”. Proc. of the 10th IF IP World Congress, Dublin, September 1986, pp. 115–120, North-Holland, Amsterdam.Google Scholar
  3. 3.
    Atkinson, M.P. & Morrison, R. “Types, bindings and parameters in a persistent environment”. Proc. of the Appin Workshop on Data Types and Persistence, Universities of Glasgow and St Andrews, PPRR-16, August 1985, pp. 1–25. In Data Types and Persistence (Eds Atkinson, Buneman & Morrison), Springer-Verlag, 1988, pp. 3-20.Google Scholar
  4. 4.
    Atkinson, M.P. & Morrison, R. “Polymorphic Names, Types, Constancy and Magic in a Type Secure Persistent Object Store”. Proc. of the 2nd International Workshop on Persistent Object Systems, Universities of Glasgow and St Andrews PPRR-44, Appin, August 1987, pp. 1–12.Google Scholar
  5. 5.
    Atkinson, M.P., Buneman, O.P. & Morrison, R. “Binding and Type Checking in Database Programming Languages”, The Computer Journal. 31, 2, 1988, pp. 99–109.CrossRefMATHGoogle Scholar
  6. 6.
    Cardelli, L. “A semantics of multiple inheritance”. In Lecture Notes in Computer Science. 173, Springer-Verlag (1984), pp. 51–67.Google Scholar
  7. 7.
    Cardelli, L. & Wegner, P. “On understanding types, data abstraction and polymorphism”. ACM Computing Surveys 17, 4, December 1985, pp. 471–523.CrossRefGoogle Scholar
  8. 8.
    Dearie, A. & Brown, A.L. “Safe browsing in a strongly typed persistent environment”. The Computer Journal, 31, 2 (1988), pp. 540–545.Google Scholar
  9. 9.
    Dearie, A. “Environments: a flexible binding mechanism to support system evolution”. Proc. HICSS-22, Hawaii, January 1989, pp. 46–55.Google Scholar
  10. 10.
    Dijkstra, E.W. “The structure of THE multiprogramming system”. Comm ACM 11, 5, May 1968, pp.Google Scholar
  11. 11.
    Dijkstra, E.W. “Cooperating sequential processes”. In Programming Languages (editor F. Genuys), Academic Press, London, 1968, pp. 43–112.Google Scholar
  12. 12.
    Fredrich, M. & Older, W. “HELIX: the architecture of a distributed file system”. Proc. 4th Conf. on Distributed Computer Systems,. May 1984, pp. 422–431.Google Scholar
  13. 13.
    Gammage, N.D., Kamel, R.F. & Casey, L.M. “Remote Rendezvous”. Software, Practice & Experience 17,10, 1987, pp. 741–755.CrossRefGoogle Scholar
  14. 14.
    Gunn, H.I.E. & Morrison, R. “On the implementation of constants”. Information Processing Letters 9, 1, 1979, pp. 1–4.CrossRefGoogle Scholar
  15. 15.
    Hoare, C.A.R. “Communicating sequential processes”. Comm ACM 21, 8, August 1978, pp. 666–677.CrossRefMATHMathSciNetGoogle Scholar
  16. 16.
    Ichbiah et al., “The Programming Language Ada Reference Manual”. In Lecture Notes in Computer Science. 155. Springer-Verlag, 1983.Google Scholar
  17. 17.
    Krablin, G.L. “Building flexible multilevel transactions in a distributed persistent environment”. Proc. of Data Types and Persistence Workshop, Appin, August 1985, pp. 86–117. In Data Types and Persistence (Eds Atkinson, Buneman & Morrison) Springer-Verlag, 1988, pp. 213-234.Google Scholar
  18. 18.
    McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P. & Levin, M.I. “The Lisp Programmers Manual”. MIT Press, Cambridge, Massachusetts, 1962.Google Scholar
  19. 19.
    Matthews, D.C.J. “Poly manual”. Technical Report 65, 1985, University of Cambridge, U.K.Google Scholar
  20. 20.
    Milner, R. “A theory of type polymorphism in programming”. J ACM 26, 4, pp. 792–818.Google Scholar
  21. 21.
    Milner, R. “A proposal for standard ML”. Technical Report CSR-157-83. University of Edinburgh.Google Scholar
  22. 22.
    Mitchell, J.C. & Plotkin, G.D “Abstract types have existential type”. Proc POPL 1985.Google Scholar
  23. 23.
    Morrison, R. “S-algol Reference Manual”. CS 79/1 University of St Andrews, 1979.Google Scholar
  24. 24.
    Morrison, R. “On the development of algol”. Ph.D. thesis, University of St Andrews, 1979.Google Scholar
  25. 25.
    Morrison, R., Brown, A.L., Carrick, R., Connor, R.C., Dearie, A. & Atkinson, M.P. “Polymorphism, persistence and software reuse in a strongly typed object-oriented environment”. Software Engineering Journal, December 1987, pp. 199–204.Google Scholar
  26. 26.
    Morrison, R., Brown, A.L., Dearie, A. & Atkinson, M.P. “Flexible Incremental Binding in a Persistent Object Store”. ACMSigplan Notices, 23, 4, April 1988, pp. 27–34.Google Scholar
  27. 27.
    Morrison, R., Brown, A.L., Carrick, R., Connor, R. & Dearie, A. “Napier88 Reference Manual”. PPRR-77-89. Universities of St Andrews and Glasgow. (1989).Google Scholar
  28. 28.
    Morrison, R., Brown, A.L., Carrick, R., Connor, R.C. & Dearie, A. “On the Integration of Object-Oriented and Process-Oriented Computation in Persistent Environments”. Proc. 2nd International Workshop on Object-Oriented Database Systems, West Germany, 1988. In Lecture Notes in Computer Science, 334. Springer-Verlag, September 1988, pp. 334–339.Google Scholar
  29. 29.
    Morrison, R., Dearie, A. & Marlin, CD. “Adaptive Data Stores”. Proc. AI’88 Conference, Adelaide, November 1988, pp. 135–145.Google Scholar
  30. 30.
    Schmidt, J.W. “Some high level language constructs for data of type relation” ACM.TODS 2, 3,1977, pp. 247–261.CrossRefGoogle Scholar
  31. 31.
    PS-algol reference manual. 4th Edition. Universities of Glasgow and St Andrews PPRR-12, July 1987.Google Scholar

Copyright information

© British Computer Society 1990

Authors and Affiliations

  • R. Morrison
    • 1
  • A. Brown
    • 1
  • R. Carrick
    • 1
  • R. Connor
    • 1
  • A. Dearle
    • 1
  • M. P. Atkinson
    • 2
  1. 1.University of St AndrewsUK
  2. 2.University of GlasgowUK

Personalised recommendations