Chapter 3. the Persistent Programming Language, PS-Algol
Total Page:16
File Type:pdf, Size:1020Kb
https://theses.gla.ac.uk/ Theses Digitisation: https://www.gla.ac.uk/myglasgow/research/enlighten/theses/digitisation/ This is a digitised version of the original print thesis. Copyright and moral rights for this work are retained by the author A copy can be downloaded for personal non-commercial research or study, without prior permission or charge This work cannot be reproduced or quoted extensively from without first obtaining permission in writing from the author The content must not be changed in any way or sold commercially in any format or medium without the formal permission of the author When referring to this work, full bibliographic details including the author, title, awarding institution and date of the thesis must be given Enlighten: Theses https://theses.gla.ac.uk/ [email protected] On The Utilisation of Persistent Programming Environments Richard Cooper A thesis submitted to the Faculty of Science, University of Glasgow For the degree of Doctor of Philosophy September, 1989 © R. L. Cooper, 1989 ProQuest Number: 10999281 All rights reserved INFORMATION TO ALL USERS The quality of this reproduction is dependent upon the quality of the copy submitted. In the unlikely event that the author did not send a com plete manuscript and there are missing pages, these will be noted. Also, if material had to be removed, a note will indicate the deletion. uest ProQuest 10999281 Published by ProQuest LLC(2018). Copyright of the Dissertation is held by the Author. All rights reserved. This work is protected against unauthorized copying under Title 17, United States C ode Microform Edition © ProQuest LLC. ProQuest LLC. 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, Ml 48106- 1346 Declaration The material presented in this thesis, except where stated below, is the product of my own independent research carried out at the Department of Computing Science, University of Glasgow under the supervision of Professor Malcolm Atkinson. Sections 4.2, 4.4, 6.1, 7.1 and some of section 4.1 represent work carried out by other workers in the persistent programming projects, which is used in this thesis to elicit a common methodology. Any published or unpublished material used by me has been given full acknowledgement in the text. Acknowledgements I would like first of all to thank ICL Ltd. for their financial support for the major part of this work. I would also like to acknowledge the assistance of my colleagues in the PISA project at Glasgow who proved stimulating co-workers: Jack Campin, who so often finds a simple way to put a complex idea, Paul Philbrow, who was always eager to fix problems and facilitate other people’s work, and Francis Wai, a much-interrupted room-mate. My indebtedness extends to our colleagues at the University of St. Andrews for many useful conversations, for their excellent hospitality and for providing PS-algol systems which while being experimental exhibited a remarkable degree of robustness and efficiency. In particular, I would like to acknowledge the example of A1 Dearie, both for introducing me to diving and for the title for the thesis borrowed from him (an indication of the quality I would like to find in my own work), and of Professor Ron Morrison for illuminating shafts of sanity when the murky waters of confusion thickened. I would also like to acknowledge my other colleagues in Glasgow too numerous to mention in total, but in particular David Harper, Phil Gray, Kevin Waite, Kieran Clenaghan, Phil Trinder and Ray Welland, from each of whom I gained insights into some part of the work presented here. Some of the work was performed collaboratively with Djamel Abderrahme and Zhenzhou Qin, whose collaboration I acknowledge with gratitude. The work in Chapter 8 benefited both from the advice of Dr. Chris Marlin and from many discussions with David Kerr, while Prof. John McLeish gave me a great deal of confidence boosting assistance at the beginning of my thesis. My principal thanks however are due to two people. My supervisor, Malcolm Atkinson, showed support for me and a commitment to my work far exceeding all reasonable expectation. Every meeting with him has resulted in some growth in my research work and my working life. My wife, Rosemary McLeish, has also shown a level of love and support which is exceptional and without which this thesis would not have come to be. Abstract There is a growing gap between the supply and demand of good quality software, which is primarily due to the difficulty of the programming task and the poor level of support for programmers. Programming is carried out using software tools which do not match very well either real world understanding of a problem or even the other tools which need to be used. In every phase of software production, the programmer must master new tools which function in a different way from each other. The Persistent Programming Paradigm attempts to reduce these problems by providing a programming environment which gives consistent methods of accessing program values of various kinds. Long-term and short-term data are treated in the same way. Numbers, text, graphical values and even program objects are all referred to in the same consistent way. Languages which support persistence provide considerable power within a simple environment, so that programmers can perform most if not all parts of the programming task in a coherent and uniform manner. This thesis tests the hypothesis that programmers do in fact derive some benefit from this - the simplification of the program and faster implementation of complex programs. The persistent language PS-algol is introduced and used to build: user-interface and compiler tools; a database application; some data modelling tools, both relational and semantic; a rapid prototyping system; an object-oriented language; and software support systems. In doing so, the thesis demonstrates the breadth of work which can be achieved using a Persistent Programming Language, and the ease with which these various projects can be implemented. Further, the thesis derives the beginnings of a methodology for using such a language and analyses how PS-algol could be improved. In doing so, the work aims to put the Persistent Programming Paradigm on a firm basis following significant use and experimentation. Table of Contents Chapter 1. Introduction ................................................................................................................. 1 1.1 The Software Engineering Crisis .............................................................................1 1.2 The Claim of Persistent Programming ..................................................................3 1.3 The Programming System Used ................................................................................ 6 1.4 The Need for a Culture, Methodology and Support Environment ................7 1.5 The Thesis Statement................................................................................................ 7 1.6 An Outline of the Experiments and the Structure of the Thesis .....................8 Chapter 2. A Survey of Approaches ............................................................................................11 2.1 Three Approaches .........................................................................................................11 2.1.1 The Development of Better Programming Languages ..........................11 2.1.2 The Development of Better Database Systems ....................................... 14 2.1.3 Software Engineering Solutions ................................................................. 16 2.2 Some Relevant Approaches ..................................................................................... 17 2.2.1 The Semantic Data Modelling Approach ................................................ 17 2.2.1.1 The Semantic Binary Data Model ...............................................19 2.2.1.2 The Entity Relationship Model ...................................................19 2.2.1.3 The Semantic Data Model .............................................................20 2.2.1.4 The Functional Data Model ..........................................................21 2.2.1.5 TAXIS................................................................................................23 2.2.1.6 The IFO Data Model .......................................................................25 2.2.1.7 The Event Model ............................................................................26 2.2.1.8 Summary ......................................................................................... 27 2.2.2 The Object-Oriented Approach .................................................................. 28 2.2.2.1 Simula - a first step towards Object-Orientation ..................... 29 2.2.2.2 Smalltalk...........................................................................................30 2.2.2.3 C Extensions .................................................................................... 32 2.2.2.4 Eiffel.................................................................................................. 32 2.2.2.5 Object-Oriented Database Systems .............................................. 33 2.2.2.6 Summary ......................................................................................... 35 2.2.3 Database Programming Languages ............................................................37 2.2.3.1 Relational Programming Languages ......................................... 37 2.2.3.2 Galileo ...............................................................................................38