Napier88 Reference Manual Release 2.2.1

Total Page:16

File Type:pdf, Size:1020Kb

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 ............................................................................................... 11 3.3 TYPE EQUIVALENCE..................................................................................................... 12 3.4 TYPE RULES ............................................................................................................... 12 3.5 FIRST CLASS CITIZENSHIP............................................................................................ 13 4 LITERALS....................................................................................14 4.1 INTEGER LITERALS ...................................................................................................... 14 4.2 REAL LITERALS........................................................................................................... 14 4.3 BOOLEAN LITERALS ..................................................................................................... 14 4.4 STRING LITERALS........................................................................................................ 14 4.5 PIXEL LITERALS.......................................................................................................... 15 4.6 PICTURE LITERAL........................................................................................................ 15 4.7 NULL LITERAL ............................................................................................................ 15 4.8 PROCEDURE LITERALS................................................................................................. 15 4.9 IMAGE LITERAL........................................................................................................... 16 4.10 FILE LITERAL............................................................................................................ 16 5 EXPRESSIONS AND OPERATORS .....................................................17 5.1 EVALUATION ORDER.................................................................................................... 17 5.2 BOOLEAN EXPRESSIONS ............................................................................................... 17 5.3 COMPARISON OPERATORS............................................................................................ 18 5.4 ARITHMETIC EXPRESSIONS........................................................................................... 19 5.5 ARITHMETIC PRECEDENCE RULES ................................................................................. 20 5.6 STRING EXPRESSIONS.................................................................................................. 20 5.7 PICTURE EXPRESSIONS ................................................................................................ 21 5.8 PIXEL EXPRESSIONS .................................................................................................... 22 5.9 THE PERSISTENT STORE ............................................................................................... 23 5.10 PRECEDENCE TABLE .................................................................................................. 23 6 DECLARATIONS............................................................................25 6.1 IDENTIFIERS ............................................................................................................... 25 6.2 VARIABLES, CONSTANTS AND DECLARATION OF DATA OBJECTS ....................................... 25 6.3 DECLARATION OF TYPES .............................................................................................. 26 6.4 SEQUENCES................................................................................................................ 26 6.5 BRACKETS.................................................................................................................. 27 6.6 SCOPE RULES ............................................................................................................. 27 6.7 RECURSIVE OBJECT DECLARATIONS.............................................................................. 27 6.8 RECURSIVE TYPE DECLARATIONS.................................................................................. 28 7 CLAUSES.....................................................................................29 7.1 ASSIGNMENT CLAUSE .................................................................................................. 29 7.2 IF CLAUSE.................................................................................................................. 29 7.3 CASE CLAUSE ............................................................................................................. 30 7.4 REPEAT ... WHILE ... DO CLAUSE.................................................................................... 30 7.5 FOR CLAUSE............................................................................................................... 31 8 PROCEDURES...............................................................................32 8.1 DECLARATIONS AND CALLS .......................................................................................... 32 8.2 RECURSIVE DECLARATIONS.......................................................................................... 33 8.3 POLYMORPHISM ......................................................................................................... 33 8.4 EQUALITY AND EQUIVALENCE ....................................................................................... 34 9 AGGREGATES...............................................................................35 9.1 VECTORS ................................................................................................................... 35 9.1.1 Creation of Vectors................................................................................................ 35 9.1.2 upb and lwb.......................................................................................................... 36 9.1.3 Indexing............................................................................................................... 37 9.1.4 Equality and Equivalence......................................................................................... 37 9.2 STRUCTURES.............................................................................................................. 37 9.2.1 Creation of Structures............................................................................................. 37 9.2.2 Indexing............................................................................................................... 38 9.2.3 Equality and Equivalence......................................................................................... 38 9.3 IMAGES...................................................................................................................... 39 9.3.1 Creation of Images................................................................................................. 39 9.3.2 Raster Operations .................................................................................................. 39 9.3.3 Indexing............................................................................................................... 41 9.3.4 Depth Selection..................................................................................................... 41 9.3.5 Equality and Equivalence......................................................................................... 42 10 VARIANTS..................................................................................43 10.1 VARIANT TYPES ........................................................................................................ 43 10.2 VARIANT VALUES ...................................................................................................... 43 10.3 IS AND ISNT............................................................................................................... 43 10.4 PROJECTION OUT OF VARIANTS ..................................................................................
Recommended publications
  • S-Algol Reference Manual Ron Morrison
    S-algol Reference Manual Ron Morrison University of St. Andrews, North Haugh, Fife, Scotland. KY16 9SS CS/79/1 1 Contents Chapter 1. Preface 2. Syntax Specification 3. Types and Type Rules 3.1 Universe of Discourse 3.2 Type Rules 4. Literals 4.1 Integer Literals 4.2 Real Literals 4.3 Boolean Literals 4.4 String Literals 4.5 Pixel Literals 4.6 File Literal 4.7 pntr Literal 5. Primitive Expressions and Operators 5.1 Boolean Expressions 5.2 Comparison Operators 5.3 Arithmetic Expressions 5.4 Arithmetic Precedence Rules 5.5 String Expressions 5.6 Picture Expressions 5.7 Pixel Expressions 5.8 Precedence Table 5.9 Other Expressions 6. Declarations 6.1 Identifiers 6.2 Variables, Constants and Declaration of Data Objects 6.3 Sequences 6.4 Brackets 6.5 Scope Rules 7. Clauses 7.1 Assignment Clause 7.2 if Clause 7.3 case Clause 7.4 repeat ... while ... do ... Clause 7.5 for Clause 7.6 abort Clause 8. Procedures 8.1 Declarations and Calls 8.2 Forward Declarations 2 9. Aggregates 9.1 Vectors 9.1.1 Creation of Vectors 9.1.2 upb and lwb 9.1.3 Indexing 9.1.4 Equality and Equivalence 9.2 Structures 9.2.1 Creation of Structures 9.2.2 Equality and Equivalence 9.2.3 Indexing 9.3 Images 9.3.1 Creation of Images 9.3.2 Indexing 9.3.3 Depth Selection 9.3.4 Equality and Equivalence 10. Input and Output 10.1 Input 10.2 Output 10.3 i.w, s.w and r.w 10.4 End of File 11.
    [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]
  • This Thesis Has Been Submitted in Fulfilment of the Requirements for a Postgraduate Degree (E.G
    This thesis has been submitted in fulfilment of the requirements for a postgraduate degree (e.g. PhD, MPhil, DClinPsychol) at the University of Edinburgh. Please note the following terms and conditions of use: • This work is protected by copyright and other intellectual property rights, which are retained by the thesis author, unless otherwise stated. • A copy can be downloaded for personal non-commercial research or study, without prior permission or charge. • This thesis 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. EVALUATION OF FUNCTIONAL DATA MODELS FOR DATABASE DESIGN AND USE by KRISHNARAO GURURAO KULKARNI Ph. D. University of Edinburgh 1983 To my wife, Rama and daughter, Bhuvana Acknowledgements I am deeply indebted to my thesis supervisor, Dr. Malcolm Atkinson, for his constant guidance, help, and encouragement. for his highly incisive comments on the writing of this thesis, and for a host of other reasons. It is indeed a great pleasure to acknowledge his contribution. I am also greatly indebted to Dr. David Rees, who supervised me during the initial six months. His help and guidance during that time was invaluable. I am thankful to many of my friends In the Department for their kind advice from time to time. In particular, I would like to thank Paul Cockshott, Ken Chisholm, Pedro Hepp, Segun Owoso, George Ross, and Rob Procter for many useful discussions.
    [Show full text]
  • 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.
    [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]
  • A Conceptual Language for Querying Object Oriented Data
    A Conceptual Language for Querying Ob ject Oriented Data Peter J Barclay and Jessie B Kennedy Computer Studies Dept., Napier University 219 Colinton Road, Edinburgh EH14 1DJ Abstract. Avariety of languages have been prop osed for ob ject oriented database systems in order to provide facilities for ad hoc querying. How- ever, in order to mo del at the conceptual level, an ob ject oriented schema de nition language must itself provide facilities for describing the b ehaviour of data. This pap er demonstrates that with only mo dest extensions, sucha schema de nition language mayserve as a query notation. These extensions are concerned solely with supp orting the interactive nature of ad hoc query- ing, providing facilities for naming and displaying query op erations and their results. 1 Overview Section 2 reviews the background to this work; its ob jectives are outlined in section 3. Section 4 describ es NOODL constructs which are used to de ne behaviour within schemata, and section 5 examines how these may b e extended for interactive use. The resulting query notation is evaluated in section 6. Section 7 outlines some further work and section 8 concludes. 2 Background NOM (the Napier Ob ject Mo del) is a simple data mo del intended to allow ob ject oriented mo delling of data at a conceptual level; it was rst presented in [BK91] and is describ ed fully in [Bar93]. NOM has b een used to mo del [BK92a] and to supp ort the implementation [BFK92] of novel database applications, and also for the investigation of sp eci c mo delling issues such as declarativeintegrity constraints and activeness [BK92b] and the incorp oration of views [BK93] in ob ject oriented data mo dels.
    [Show full text]
  • Implementation of Distributed Orthogonal Persistence Using
    Þs-9.15 Implementation of Distributed Orthogonal Persistence llsing Virtual Memory Francis Vaughan Thesis submitted for the degree of Doctor of Philosophy in The University of Adelaide (Faculty of Mathematical and Computer Sciences) December 1994 ,Au,***ol.eJ \ qq 5 Abstract Persistent object systems greatly simplify programming tasks, since they hide the traditional distinction between short-term and long-term storage from the applications programmer. As a result, the programmer can operate at a level of abstraction in which short-term and long-term data are treated uniformly. In the past most persistent systems have been constructed above conventional operating systems and have not supported any form of distributed programming paradigm. In this thesis we explore the implementation of orthogonally persistent systems that make direct use of fhe attributes of paged virtual memory found in the majority of conventional computing platforms. These attributes are exploited to support object movement for persistent storage to addressable memory, to aid in garbage collection, to provide the illusion of larger storage spaces than the underlying architecture allows, and to provide distribution of the persistent system. The thesis further explores the different models of distribution, notably a one world model in which a single persistent space exists, and a federated one in which many co- operating spaces exist. It explores communication mechanisms between federated spaces and the problems of maintaining consistency between separate persistent spaces in a manner which ensures both a reliable and resilient computational environment. In particular characterising the interdependencies using vector clocks and the manner in which vector time can be used to provide a complete mechanism for ensuring reliable and resilient computation.
    [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]
  • Semantic Integrity for Persistent Objects 1 Introduction
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Repository@Napier Semantic Integrity for Persistent Ob jects Peter J Barclayand Jessie B Kennedy Napier Polytechnic, Craiglo ckhart Campus 219 Colinton Road, Edinburgh EH14 1DJ e-mail: [email protected] and [email protected] Abstract Mo delling constructs for sp ecifying semantic integrity are reviewed, and their implicit execution semantics discussed. An integrity mainte- nance mo del based on these constructs is presented. An implementa- tion of this mo del in a p ersistent programming language is describ ed, allowing exible automated dynamic integrity management for appli- cations up dating a p ersistent store; this implementation is based on an event-driven architecture. p ersistent programming, conceptual mo delling, semantic integrity, active ob ject-oriented databases, co de generation 1 Intro duction Napier88 [MBCD89 ], [DCBM89 ] is a high-level, strongly-typ ed, blo ck struc- tured programming language with orthogonal p ersistence [Co c82 ]; that is, ob jects of anytyp e created by programs can outlive the execution of the pro- gram which created them. Persistentobjectscanbereusedinatyp e-secure wayby subsequent executions of the same program, or by other programs. Persistent languages are well-suited to the construction of data-intensive applications [Co o90 ]; programs are written to manipulate data, and the in- built (and transparent) p ersistence mechanism provides for its storage and retrieval. This article describ es an integrity management system (IMS) written in Napier88; this forms part of a larger system which supp orts the development of p ersistent application systems [BK92 ].
    [Show full text]
  • Astrometry 1960-80: from Hamburg to Hipparcos by Erik Høg, 2014.08.06 Niels Bohr Institute, Copenhagen University
    Astrometry 1960-80: from Hamburg to Hipparcos By Erik Høg, 2014.08.06 Niels Bohr Institute, Copenhagen University ABSTRACT: Astrometry, the most ancient branch of astronomy, was facing extinction during much of the 20th century in the competition with astrophysics. The revival of astrometry came with the European astrometry satellite Hipparcos, approved by ESA in 1980 and launched 1989. Photon-counting astrometry was the basic measuring technique in Hipparcos, a technique invented by the author in 1960 in Hamburg. The technique was implemented on the Repsold meridian circle for the Hamburg expedition to Perth in Western Australia where it worked well during 1967- 72. This success paved the way for space astrometry, pioneered in France and implemented on Hipparcos. This report gives a detailed personal account of my life and work in Hamburg Bergedorf where I lived with my family half a century ago. The report has been published in the proceedings of the meeting in Hamburg on 24 Sep. 2012 of Arbeitskreis Astronomiegeschichte of the Astronomische Gesellschaft. Gudrun Wolfschmidt is editor of the book: “Kometen, Sterne, Galaxien – Astronomie in Hamburg” zum 100jährigen Jubiläum der Hamburger Sternwarte in Bergedorf. Nuncius Hamburgensis, Beiträge zur Geschichte der Naturwissenschaften, Band 24, Hamburg: tredition 2014 The introduction and the table of contents of the book as in early 2013: https://dl.dropbox.com/u/49240691/100-HS3intro.pdf - 1 - Figure 12 Hamburg 1966 - The Repsold meridian circle ready for Perth The observer set the telescope to the declination as ordered by the assistant sitting with the star lists in the hut at left. He started the recording when he saw the star at the proper place in the field of view.
    [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]