Chapter 3. the Persistent Programming Language, PS-Algol

Total Page:16

File Type:pdf, Size:1020Kb

Chapter 3. the Persistent Programming Language, PS-Algol 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
Recommended publications
  • Validated Products List, 1995 No. 3: Programming Languages, Database
    NISTIR 5693 (Supersedes NISTIR 5629) VALIDATED PRODUCTS LIST Volume 1 1995 No. 3 Programming Languages Database Language SQL Graphics POSIX Computer Security Judy B. Kailey Product Data - IGES Editor U.S. DEPARTMENT OF COMMERCE Technology Administration National Institute of Standards and Technology Computer Systems Laboratory Software Standards Validation Group Gaithersburg, MD 20899 July 1995 QC 100 NIST .056 NO. 5693 1995 NISTIR 5693 (Supersedes NISTIR 5629) VALIDATED PRODUCTS LIST Volume 1 1995 No. 3 Programming Languages Database Language SQL Graphics POSIX Computer Security Judy B. Kailey Product Data - IGES Editor U.S. DEPARTMENT OF COMMERCE Technology Administration National Institute of Standards and Technology Computer Systems Laboratory Software Standards Validation Group Gaithersburg, MD 20899 July 1995 (Supersedes April 1995 issue) U.S. DEPARTMENT OF COMMERCE Ronald H. Brown, Secretary TECHNOLOGY ADMINISTRATION Mary L. Good, Under Secretary for Technology NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY Arati Prabhakar, Director FOREWORD The Validated Products List (VPL) identifies information technology products that have been tested for conformance to Federal Information Processing Standards (FIPS) in accordance with Computer Systems Laboratory (CSL) conformance testing procedures, and have a current validation certificate or registered test report. The VPL also contains information about the organizations, test methods and procedures that support the validation programs for the FIPS identified in this document. The VPL includes computer language processors for programming languages COBOL, Fortran, Ada, Pascal, C, M[UMPS], and database language SQL; computer graphic implementations for GKS, COM, PHIGS, and Raster Graphics; operating system implementations for POSIX; Open Systems Interconnection implementations; and computer security implementations for DES, MAC and Key Management.
    [Show full text]
  • Computer Conservation Society
    Issue Number 88 Winter 2019/20 Computer Conservation Society Aims and Objectives The Computer Conservation Society (CCS) is a co-operative venture between BCS, The Chartered Institute for IT; the Science Museum of London; and the Science and Industry Museum (SIM) in Manchester. The CCS was constituted in September 1989 as a Specialist Group of the British Computer Society. It is thus covered by the Royal Charter and charitable status of BCS. The objects of the Computer Conservation Society (“Society”) are: To promote the conservation, restoration and reconstruction of historic computing systems and to identify existing computing systems which may need to be archived in the future; To develop awareness of the importance of historic computing systems; To develop expertise in the conservation, restoration and reconstruction of historic computing systems; To represent the interests of the Society with other bodies; To promote the study of historic computing systems, their use and the history of the computer industry; To publish information of relevance to these objectives for the information of Society members and the wider public. Membership is open to anyone interested in computer conservation and the history of computing. The CCS is funded and supported by a grant from BCS and from donations. There are a number of active projects on specific computer restorations and early computer technologies and software. Younger people are especially encouraged to take part in order to achieve skills transfer. The CCS also enjoys a close relationship with the National Museum of Computing. Resurrection The Journal of the Computer Conservation Society ISSN 0958-7403 Number 88 Winter 2019/20 Contents Society Activity 2 News Round-Up 9 The Data Curator 10 Paul Cockshott From Tea Shops to Computer Company: The Improbable 15 Story of LEO John Aeberhard Book Review: Early Computing in Britain Ferranti Ltd.
    [Show full text]
  • Lecture Notes in Computer Science
    Orthogonal Persistence Revisited Alan Dearle, Graham N.C. Kirby and Ron Morrison School of Computer Science, University of St Andrews, North Haugh, St Andrews, Fife KY16 9SX, Scotland {al, graham, ron}@cs.st-andrews.ac.uk Abstract. The social and economic importance of large bodies of programs and data that are potentially long-lived has attracted much attention in the commercial and research communities. Here we concentrate on a set of methodologies and technologies called persistent programming. In particular we review programming language support for the concept of orthogonal persistence, a technique for the uniform treatment of objects irrespective of their types or longevity. While research in persistent programming has become unfashionable, we show how the concept is beginning to appear as a major component of modern systems. We relate these attempts to the original principles of orthogonal persistence and give a few hints about how the concept may be utilised in the future. 1 Introduction The aim of persistent programming is to support the design, construction, maintenance and operation of long-lived, concurrently accessed and potentially large bodies of data and programs. When research into persistent programming began, persistent application systems were supported by disparate mechanisms, each based upon different philosophical assumptions and implementation technologies [1]. The mix of technologies typically included naming, type and binding schemes combined with different database systems, storage architectures and query languages. The incoherence in these technologies increased the cost both intellectually and mechanically of building persistent application systems. The complexity distracted the application builder from the task in hand to concentrate on mastering the multiplicity of programming systems, and the mappings amongst them, rather than the application being developed.
    [Show full text]
  • Persistent Programming and Object Oriented Databases
    l.l Persistent Programming and Object Oriented Databases Malcolm Atkinson and Ronald Morrison University of Glasgow University of St. Andrews Abstract Persistent Programming Languages are defined as those languages which allow any of their values to have lives of any duration. The first ten years of research into those languages are reviewed. The motivation for such languages has increased. There are significant technological developments pertinent to their implementation. To obtain the ir benefits requires a radical revision of the architecture of computer systems, and a major comm itment to the parad igm . Their potential as a foundation for im plementing operating systems and database systems is described, as well as their obvious use for writing long-lived and large scale applications. The paper concludes by examining some aspects of object orientation, to consider the solutions offered by the persistent paradigm. 1 Introduction It is now ten years since a group in Scotland began the implementation of a persistent programming language. This paper reviews the progress in those ten years, and then suggests the next major step in persistent programming research. The review concludes that persistent programming languages have the capability of supporting applications programs and many components currently thought of as system components. The next step will demonstrate the value of persistent languages as a foundation for system software. It will also realise the target of 'seamless' computing which that research began to explore ten years ago, and provide efficient implementation of this class of languages. Such a seamless system is expected to yield very large productivity improvements for the implementers of large app lication systems.
    [Show full text]
  • Napier88 Reference Manual Release 2.2.1
    Napier88 Reference Manual Release 2.2.1 July 1996 Ron Morrison Fred Brown* Richard Connor Quintin Cutts† Alan Dearle‡ Graham Kirby Dave Munro University of St Andrews, North Haugh, St Andrews, Fife KY16 9SS, Scotland. *Department of Computer Science, University of Adelaide, South Australia 5005, Australia. †University of Glasgow, Lilybank Gardens, Glasgow G12 8QQ, Scotland. ‡University of Stirling, Stirling FK9 4LA, Scotland. This document should be referenced as: “Napier88 Reference Manual (Release 2.2.1)”. University of St Andrews (1996). Contents 1 INTRODUCTION ............................................................................. 5 2 CONTEXT FREE SYNTAX SPECIFICATION.......................................... 8 3 TYPES AND TYPE RULES ................................................................ 9 3.1 UNIVERSE OF DISCOURSE...............................................................................................9 3.2 THE TYPE ALGEBRA..................................................................................................... 10 3.2.1 Aliasing............................................................................................................... 10 3.2.2 Recursive Definitions............................................................................................. 10 3.2.3 Type Operators...................................................................................................... 11 3.2.4 Recursive Operators ..............................................................................................
    [Show full text]
  • Writing Cybersecurity Job Descriptions for the Greatest Impact
    Writing Cybersecurity Job Descriptions for the Greatest Impact Keith T. Hall U.S. Department of Homeland Security Welcome Writing Cybersecurity Job Descriptions for the Greatest Impact Disclaimers and Caveats • Content Not Officially Adopted. The content of this briefing is mine personally and does not reflect any position or policy of the United States Government (USG) or of the Department of Homeland Security. • Note on Terminology. Will use USG terminology in this brief (but generally translatable towards Private Sector equivalents) • Job Description Usage. For the purposes of this presentation only, the Job Description for the Position Description (PD) is used synonymously with the Job Opportunity Announcement (JOA). Although there are potential differences, it is not material to the concepts presented today. 3 Key Definitions and Concepts (1 of 2) • What do you want the person to do? • Major Duties and Responsibilities. “A statement of the important, regular, and recurring duties and responsibilities assigned to the position” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/classifierhandbook.pdf • Major vs. Minor Duties. “Major duties are those that represent the primary reason for the position's existence, and which govern the qualification requirements. Typically, they occupy most of the employee's time. Minor duties generally occupy a small portion of time, are not the primary purpose for which the position was established, and do not determine qualification requirements” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/positionclassificationintro.pdf • Tasks. “Activities an employee performs on a regular basis in order to carry out the functions of the job.” SOURCE: https://www.opm.gov/policy-data-oversight/assessment-and-selection/job-analysis/job_analysis_presentation.pdf 4 Key Definitions and Concepts (2 of 2) • What do you want to see on resumes that qualifies them to do this work? • Competency.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • ICL Technical Journal Volume 5 Issue 3
    TECHniCAl j o u m n i Volume 5 Issue 3 May 1987 Published by INTERNATIONAL COMPUTERS LIMITED at OXFORD UNIVERSITY PRESS iCL The ICL Technical Journal is published twice a year by TECHniCRl International Computers Limited at Oxford University jouRnfli Press. Editor J. Howlett ICL House, Putney, London SW15 ISW, UK Editorial Board J. Howlett (Editor) F.F. Land H.M. Cropper (F International) (London School of Economics & D.W. Davies, FRS Political Science) G.E. Felton K.H. Macdonald M.D. Godfrey M R. Miller C.H.L. Goodman (British Telecom Research (Standard Telephone Laboratories) Laboratories and Warwick J.M. Pinkerton University) E.C.P. Portman All correspondence and papers to be considered for publication should be addressed to the Editor. The views expressed in the papers are those of the authors and do not necessarily represent ICL policy. 1987 subscription rates: annual subscription £32 UK, £40 rest of world, US $72 N. America; single issues £17 UK, £22 rest of world, US $38 N. America. Orders with remittances should be sent to the Journals Subscriptions Department, Oxford University Press, Walton Street, Oxford 0X2 6DP, UK. This publication is copyright under the Berne Convention and the Interna­ tional Copyright Convention. All rights reserved. Apart from any copying under the UK Copyright Act 1956, part 1, section 7, whereby a single copy of an article may be supplied, under certain conditions, for the purposes of research or private study, by a library of a class prescribed by the UK Board of Trade Regulations (Statutory Instruments 1957, No. 868), no part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means without the prior permission of the copyright owners.
    [Show full text]
  • Persistent Programming: a Programming Language and Database Integration Technology
    v PERSISTENT PROGRAMMING: A PROGRAMMING LANGUAGE AND DATABASE INTEGRATION TECHNOLOGY R Morrison Rapporteur: Robert Allen and Dr Robert Stroud V.2 V. 3 PERSISTENT PROGRAMMING: A PROGRAMMING LANGUAGE AND DATABASE INTEGRATION TECHNOLOGY R Morrison, R C H Connor, Q I Cutts, G N C Kirby & D Munro School of Mathematical and Computational Sciences, University of St Andrews, North Haugh, St Andrews KY16 9SS, Scotland [email protected] M P Atkinson Department of Computer Science, University of Glasgow, Glasgow G 12 8QQ, Scotland [email protected] ABSTRACT Persistent programming is concerned with creating and manipulating data in a manner that is independent of its lifetime. The persistence abstraction yields a number of advantages in terms of orthogonal design and programmer productivity. One major advantage is that the abstraction integrates the database view of information with the programming language view. For this reason persistent programming languages are sometimes called database programming languages. A number of design principles have been devised for persistent systems. Following these rules, languages may provide persistence as a basic abstraction. In this paper the motivation for persistence is reviewed along with the above mentioned design rules for orthogonal persistence. Three examples of the integration of programming languages and databases through the persistence abstraction are given along with a discussion of their benefits. The examples are linguistic reflection, concurrency control and a new technology only available in persistent systems, called hyper-programming. 1 Introduction The aim of persistent programming is to support the activity of applications construction. Currently the technology underlying applications building relies on a number of disparate mechanisms and philosophical assumptions for support and efficient implementation.
    [Show full text]
  • ICL Systems Journal
    Volume 12 Issue 1 May 1997 Edition Journal ICL Systems Journal Editor Prof. V.A.J. Mailer ICL Professor Department of Computer Studies, Loughborough University, Loughborough, Leicestershire, LE11 3TU. Editorial Board V.A.J. Mailer (Editor) C.J. Mailer (Board Secretary) A.J. Boswell M.R. Miller (BT Laboratories) P.J. Cropper W. O'Riordan D.W. Davies FRS J.V. Panter G.E. Felton J.M.M. Pinkerton PFL Forbes E.C.P. Portman J. Flowlett A. Rowley N. Kawato (Fujitsu) M.J. Rigg M.H. Kay B. C. Warboys (Univ. of Manchester) F.F. Land P.G. Wharton All correspondence and papers to be considered for publication should be addressed to the Editor. The views expressed in the papers are those of the authors and do not nec­ essarily represent ICL policy. Published twice a year by Research and Advanced Technology, ICL, Bracknell. 1997 subscription rates (including postage & packing): UK and Europe Rest of World Annual subscription £72 $120 Single issues £43 $72 © 1997 International Computers Limited, Registered Office, ICL House, 1 High Street, Putney, London SW15 1SW. Registered in England 96056 ISSN 1364-310X ICL Systems Journal Volume 12 Issue 1 Contents Editorial i Java™—An overview 1 Nic Holt Mobile Agents—The new paradigm in computing 14 L. L. Thomsen and B. Thomsen The SY Node Design 41 G. Allt, P. DeSyllas, M. Duxbury, K. Hughes, K. Lo, J. Lysons and P.V. Rose Discovering associations in retail transactions using 73 Neural Networks O.V.D. Evans Methods for Developing Manufacturing Systems Architectures 89 S. Murgatroyd and R.
    [Show full text]
  • Orthogonally Persistent Object Systems
    VLDBJournal,4~ 319-401 (1995), Malcolm Atkinson, Editor 319 QVLDB Orthogonally Persistent Object Systems Malcolm Atkinson and Ronald Morrison Received June, 1993; revised version received, March, 1995; accepted April, 1995. Abstract. Persistent Application Systems (PASs) are of increasing social and eco- nomic importance. They have the potential to be long-lived, concurrently ac- cessed, and consist of large bodies of data and programs. Typical examples of PASs are CAD/CAM systems, office automation, CASE tools, software engineer- ing environments, and patient-care support systems in hospitals. Orthogonally persistent object systems are intended to provide improved support for the de- sign, construction, maintenance, and operation of PASs. Persistence abstraction allows the creation and manipulation of data in a manner that is independent of its lifetime, thereby integrating the database view of information with the program- ming language view. This yields a number of advantages in terms of orthogonal design and programmer productivity which are beneficial for PASs. Design prin- ciples have been proposed for persistent systems. By following these principles, languages that provide persistence as a basic abstraction have been developed. In this paper, the motivation for orthogonal persistence is reviewed along with the above mentioned design principles. The concepts for integrating programming languages and databases through the persistence abstraction, and their benefits, are given. The technology to support persistence, the achievements, and future directions of persistence research are then discussed. Key Words. Orthogonal persistence, persistent programming languages, database programming languages, persistent application systems. 1. Introduction This paper presents a broad review of current research and achievements in or- thogonally persistent object systems.
    [Show full text]
  • ICL Technical Journal Volume 7 Issue 2
    ICL TECHNICAL JOURNAL Volume 7 Issue 2 November 1990 Published by International Computers Limited at Oxford University Press AN STC COMPANY iCL TECHNICAL JOURNAL The ICL Technical Journal is published twice a year by International Computers Limited at Oxford University Press. Editor J.M.M. Pinkerton ICL, Lovelace Road, Bracknell, Berks RG12 4SN Editorial Board J.M.M. Pinkerton (Editor) A. Rowley P.J. Cropper M.R. Miller D.W. Davies FRS (British Telecom Research G.E. Felton Laboratories) P. Galais (ICL France) E.C.P. Portman M.D. Godfrey (Imperial College, B.C. Warboys (University London University) of Manchester) J. Howlett H.J. Winterbotham F.F. Land (STC Technology Ltd.) (London Business School) All correspondence and papers to be considered for publication should be addressed to the Editor. The views expressed in the papers are those of the authors and do not necessarily represent ICL policy. 1990 subscription rates: annual subscription £40 UK, £44 EEC, £48 rest of world, US $95 N. America; single issues £22 UK, £25 EEC, £27 rest of world, US $52 N. America. Orders with remittances should be sent to the Journals Subscriptions Department, Oxford University Press, Pinkhill House, Southfield Road, Eynsham, Oxford 0X8 1JJ. This publication is copyright under the Berne Convention and the Inter­ national Copyright Convention. All rights reserved. Apart from any copying under the UK Copyright Act 1956, part 1, section 7, whereby a single copy of an article may be supplied, under certain conditions, for the purposes of research or private study, by a library of a class prescribed by the UK Board of Trade Regulations (Statutory Instruments 1957, No.
    [Show full text]