A Conceptual Language for Querying Object Oriented Data

Total Page:16

File Type:pdf, Size:1020Kb

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. The data de nition and manipulation language NOODL (Napier Ob ject Oriented Data Language) may b e used to sp ecify enterprises mo delled using NOM. A NOODL schema contains a list of class de nitions, whichshow the name and ancestors of each class. A class de nition also includes the names, sorts, and de nitions of the prop erties of each class. Prop erty de nitions maycontain simple expressions showing howthe value of the prop erty is derived from those of other prop erties. The ability to sp ecify such derived prop erties allows the capture of data's b ehaviour within the enterprise schema. A class de nition may also contain op erations, constraints, and triggers, which are not discussed in detail here (see [BK91] or [Bar93] for more details). NOM supp orts a principle of context substitutability, demanding that where an instance of some class is required, an instance of one of its descendant classes may always b e substituted; this requires strict inheritance. An example NOODL schema is shown in shown in gure 1; the syntax of NOODL is describ ed in [Bar93]. The GNOME system (Generic Napier Ob ject Mo del Environment) is an imple- mentation of NOM in the p ersistent programming language Napier88 [DCBM89], [MBCD89]. Although the query language describ ed here has b een successfully imple- mented and may b e used to interrogate ob jects managed by GNOME, this exp osition will not address implementation issues. 2.1 NOM's Query Mo del The construction of schemata requires an implicit query mo del for the evaluation of derived prop erties. Here, ob jects exchange messages, in resp onse to which the query expressions enco ded in the de nitions of their prop erties are evaluated; these evaluations mayresult in the sending of further messages to further ob jects. This approachmaintains a strong corresp ondence b etween real world and mo del ob jects. Sp eci cally, and unlikemany other mo dels, NOM do es not allow the creation of new ob jects as the result of a query (although new col lections of existing ob jects may be formed). In addition to adherence to the conceptual mo del, this prevents query results from b eing detached from the class lattice. This disp enses with the need to classify result-ob jects in the preexistent hierarchy (eg, [DD91], [Kim89]). This principle also provides closure in the query mo del; since queries may return only collections of preexisting ob jects, these may certainly be the targets of fur- ther, cascaded messages. Since no new ob jects are created, problems of comparing identi ers of ob jects returned by queries do not arise. 3 Ob jectives of This Work A variety of ob ject oriented database query languages exist; some are languages supp orting the logical mo del provided by a particular OODB (eg, [MSOP86]); others are implementations of the query languages of semantic data mo dels (eg, [KA87]); some are attempts to add ob ject oriented extensions to SQL (eg, [ont90], [RS87]). These languages are intended to allow users to p erform ad hoc queries on a database, to embed these in application programs, or b oth. However, Kim has argued that many of these languages are inadequate since they are not based on an underlying ob ject oriented mo del of querying [Kim89], which takes into account the di erent abstraction mechanisms used in the schema de nition against which querying is p erformed. However, since an ob ject oriented data mo del must capture the b ehaviour of the ob jects describ ed, a query notation is necessary simply to describe an enterprise. The only alternatives are either to use natural language comments to describ e the b ehaviour of data ob jects (losing precision), or to describ e this b ehaviour in a host programming language (losing the conceptual level of the data description). As Zicari et al havepointed out, in ob ject oriented database systems, the query language and the metho d de nition language are seldom the same [Zic91]. E orts are underwayto establish a standard ob ject oriented data description language [Atw93], [Hol93]; such ataskwould b e facilitated by establishing a standard data manipulation language. Since a data description language (DDL) must necessarily describ e how ob jects interact with each other, it must contain a data manipulation language (DML); hence it is not p ossible to maintain two separate notations for these functions. 3.1 Integration of the Schema De nition Language and the Query Language In the course of developing NOODL it b ecame apparent that a schema de nition language required considerable b ehavioural capture in order to sp ecify derived prop- erties, as well as constraints and triggers. When desire to supp ort ad hoc querying in GNOME necessitated a query sp eci cation language, it was decided to develop this language by the minimal reasonable extension of NOODL. This approach seemed to o er the b est integration of mo delling and query notations, and would b e easiest to implement since a compiler already existed for NOODL as a schema de nition language. Further, since NOM was designed as a `vanilla' mo del, supp orting only those features agreed up on by the ma jority of ob ject oriented data mo dels, it seemed that this approachmight give some insightinto the ability of any ob ject oriented data mo del notation to supp ort ad hoc querying, provided only that it allows sp eci cation of b ehavioural asp ects of the mo del without resorting to use of a 3GL. The facilities of NOODL as a schema de nition language, and then its adaptation to ad hoc querying, are discussed in subsequent sections. 4 NOODL as a Schema De nition Language This section shows how, in schema de nitions, b ehavioural expressions mayrequire to b e written. The names of prop erties de ned in NOODL schemata can b e used as gettors and settors for those prop erties; this already provides a basis for a naviga- tional query notation. In order to increase b ehavioural expressivity, it is necessary also to have constructs to handle collections of ob jects, and to build up more complex query expressions. These are describ ed in the succeeding sections. The examples are based on the schema shown in gure 1. 4.1 Basic Query Expressions Basic queries are of twotyp es, here called navigational-style and search-style queries. 4.2 Navigational-Style Expressions Anavigational-style query nds some information which is implicit in the enterprise mo del. For example, consider the schema in gure 1 describing p eople with sp ouses, who own coloured cars (assuming one car per p erson). The prop erty sp ousesCar- Colour returns the colour of anyPerson's sp ouse's car. If LEIF is an ob ject of class schema Example domain Colour is ( "crimson", "aquamarine", "puce" ) domain Money is { defined elsewhere } class Person class Employee properties ISA Person { stored properties } properties name : Text ;; salary : Money ;; city : Text ;; company : Company age : Number ;; spouse : Person ;; car : Car ;; children : #Person ;; { derived properties } grandchildren : ##Person is self.children.children ;; spousesCarColour : Text is self.spouse.car.colour ;; likeMindedCarOwners : #Person is Person where its.car.make = self.car.make class Car class Company properties properties make : Text ;; name : Text ;; colour : Colour city : Text { etc } end_schema { Example } Fig. 1. Example NOODL Schema Person, then the expression LEIF.spouse.car.colour is a navigational-style query returning the colour of Leif 's wife's car. The tokens spouse, car and colour are messages which elicit the value of the prop erty of the same name; the de nition of the prop erty, including whether the value is settable or derived, is found in the enterprise schema (strong encapsulation). The dot op erator . sends the message on its right to the ob ject returned byevaluating 1 the expression on its left .
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]
  • 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]
  • 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]
  • 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]
  • 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]
  • RYAN MURPHY and DAVID MILLER the Couple Has Made an Extraordinary $10 Million Donation in Honor of Their Son, Who Was Treated for Cancer at CHLA
    imagineFALL 2018 RYAN MURPHY AND DAVID MILLER The couple has made an extraordinary $10 million donation in honor of their son, who was treated for cancer at CHLA. ABOUT US The mission of Children’s Hospital Los Angeles is to create hope and build healthier futures. Founded in 1901, CHLA is the top-ranked pediatric hospital in California and among the top 10 in the nation, according to the prestigious U.S. News & World Report Honor Roll of children’s hospitals for 2018-19. The hospital is home to The Saban Research Institute and is one of the few freestanding pediatric hospitals where scientific inquiry is combined with clinical care devoted exclusively to children. Children’s Hospital Los Angeles is a premier teaching hospital and has been affiliated with the Keck School of Medicine of USC since 1932. Ford Miller Murphy TABLE OF CONTENTS 2 A Letter From the President and Chief Executive Officer 3 A Message From the Chief Development Officer 4 Grateful Parents Ryan Murphy and David Miller Give $10 Million to CHLA 8 The Armenian Ambassadors Working Together to Support Children’s Health Care 10 Shaving the Way to a Cure St. Baldrick’s Foundation 12 A Miracle in May Costco Wholesale 14 Sophia Scano Fitzmaurice Changing the Future for Children and Adults With a Rare Blood Disease 15 Good News! Charitable Gift Annuity Rates Have Increased 16 Anonymous Donation Funds Emergency Department Expansion 16 Upcoming Events 17 In Memoriam 18 CHLA Happenings Ford Miller Murphy 21 The Children’s Hospital Los Angeles Gala: From Paris With Love 25 Walk and Play L.A.
    [Show full text]
  • Napier88 – a Database Programming Language?
    This paper should be referenced as: Dearle, A., Connor, R.C.H., Brown, A.L. & Morrison, R. “Napier88 - A Database Programming Language?”. In Proc. 2nd International Workshop on Database Programming Languages, Salishan, Oregon (1989) pp 179-195. Napier88 – A Database Programming Language? Alan Dearle, Richard Connor, Fred Brown & Ron Morrison al%uk.ac.st-and.cs@ukc richard%uk.ac.st-and.cs@ukc ab%uk.ac.st-and.cs@ukc ron%uk.ac.st-and.cs@ukc Department of Computational Science University of St Andrews North Haugh St Andrews Scotland KY16 9SS. Abstract This is a description of the Napier88 type system based on "A Framework for Comparing Type Systems for Database Programming Languages" by Albano et al. 1 Introduction This is a description of the Napier88 type system based on "A Framework for Comparing Type Systems for Database Programming Languages" [ADG89]. Napier88 is designed to be a general purpose persistent programming language. The authors envisage the language to be used to construct large, integrated computer systems such as CAD, CASE, hypermedia, database and Office Integration systems. Such systems have the following requirements in common which are met by the Napier88 programming language: 1. the need to support large amounts of dynamically changing, structured data, and, 2. the need for sophisticated MMI. In order to meet these demands an integrated environment is needed which will support all of the application builders' requirements. For comparison, it is useful to distinguish between Database Programming languages and Persistent Programming Languages. Database programming languages are not necessarily computationally complete. They often require the use of other ‘conventional’ programming languages [CL88].
    [Show full text]
  • A Report of the ACM Curriculum Committee on Computer Education for Management
    ACM Recommended Curricula for Computer Science and Information Processing Programs in Colleges and Universities, 1968-1981 Compiled by the Committees on Computer Curricula of the ACM Education Board Association for Computing Machinery acm Association for Computing Machinery 1133 Avenue of the Americas New York, NY 10036 Price: ACM Members: $15.00 Non-members: $20.00 Copies may be ordered, prepaid, from: ACM Order Department P.O. Box 64145 Baltimore, MD 21264 Use order #201813 Copyright ©1981 by the Association for Computing Machinery ISBN: 0-89791-058-3 CONTENTS Page Curriculum 68: Recommendations for Academic Programs in Computer Science 1 Curriculum Recommendations for Graduate Professional Programs in Information Systems 49 A Computer Science Course Program for Small Colleges 85 Curriculum Recommendations for Undergraduate Programs in Information Systems 95 Curriculum 78: Recommendations for the Undergraduate Program in Computer Science 119 Recommendations for Master's Level Programs in Computer Science 139 Educational Programs in Information Systems 149 Recommendations and Guidelines for an Associate Level Degree Program in Computer Programming 159 PREFACE When we enter the twenty-first century, computers This volume includes all the curricula published as of will have influenced our lives more than any other tech- June 1981, plus the final version of the "Curriculum on nology known to civilization. The need for knowledge Computer Programming for Community and Junior Col- about computers, computer technology, and the theoretical leges" which appeared in draft version in the June 1977 aspects of computers has grown exponentially. Since its SIGCSE Bulletin. These curricula are printed in order of founding in 1947, the Association for Computing Machinery publication dates.
    [Show full text]
  • The Production and Evaluation of Three Computer-Based Economics Games for the Sixth Grade. Final Report
    REPORT RESUMES ED 011 227 24 EM 003 451 THE PRODUCTION AND EVALUATION OF THREECOMPUTER-BASED ECONOMICS GAMES FOR THE SIXTH GRADE. FINAL REPORT. BY- WING, RICHARD L. AND OTHERS WESTCHESTER COUNTY BOARD OF COOP. EDUC.SERVICES REPORT NUMBER CRP-2841 PUB DATE JUN 67 REPORT NUMBER BP5-.0320 GRANT OEG5-.10-203 EDRS PRICE MF-$0.75 HC -$7.72 191P. DESCRIPTORS- GAMES: *GRADE 6, *ECONOMICS, *COMPUTER ASSISTED INSTRUCTION, INDIVIDUAL INSTRUCTION, *SIMULATED ENVIRONMENT, CONVENTIONAL INSTRUCTION, RETENTION, *ACHIEVEMENT GAINS, INTELLIGENCE FACTORS, TIME FACTORS (LEARNING), IBM 7090 COMPUTER, IBM 1401 COMPUTER, IBM 1050 TERMINALS, FORTRAN THE PURPOSE OF THE EXPERIMENT WAS TO PRODUCE AND EVALUATE 3 COMMUTER .-BASED ECONOMICS GAMES AS A METHOD OF INDIVIDUALIZING INSTRUCTION FOR GRADE 6 STUDENTS. 26 EXPERIMENTAL SUBJECTS PLAYED 2 ECONOMICS GAMES, WHILE A CONTROL GROUP RECEIVED CONVENTIONAL INSTRUCTION ON SIMILAR MATERIAL. IN THE SUMERIAN GAME, STUDENTS SEATED AT THE TYPEWRITER TERMINALS PRETENDED TO BE PRIEST- RULERS IN ANCIENT SUMER. IN THE SIERRA LEONE GAME, THE STUDENT PLAYED AN A.I.D. OFFICER. THE THIRD GAME, FREE ENTERPRISE, HAS SEEN COMPLETED BUT NOT TESTED. F.ESULTS OBTAINED BY OBSERVATION, INTERVIEW, FRE-. AND FOSTTESTING OF STUDENTS SHOWED THAT (1) GRADE 6 STUDENTS ARE TECHNICALLY ABLE TO PLAY COMPUTER -BASED ECONOMICS GAMES,(2) THE GAMES WERE AT LEAST AS EFFECTIVE AS CONVENTIONAL INSTRUCTION,(3) THE CONTROL GROUP RETAINED AN UNDERSTANDING OF ECONOMIC PRINCIPLES LONGER THAN THE EXPERIMENTALS, (4) THE AVERAGE EXPERIMENTAL TIME WAS ABOUT HALF THE CONTROL LEARNING TIME,(5) STUDENTS WITH HIGHER INTELLIGENCE AND READING ABILITY GAINED MORE FROM THE GAMES, (6) STUDENTS SPENDING THE LEAST TIME AT THE CONFUTER MADE THE GREATEST GAINS, (7) STUDENT INTEREST WAS HIGH.
    [Show full text]
  • St Andrews Algol to Javascript Compiler Project
    St Andrews Algol to Javascript compiler project William Trend March 2016 1 Abstract This document describes the implementation of a compiler that accepts St Andrews Algol (S-algol) programs and produces analogous Javascript programs. It describes the implementation of a lexer, a parser, static analysis stages and code generation for such a compiler. It also provides an examination of the development in computer language design since 1979. Declaration I declare that the material submitted for assessment is my own work except where credit is explicitly given to others by citation or acknowledgement. This work was performed during the current academic year except where otherwise stated. The main text of this project report is 13,759 words long, including project specification and plan. In submitting this project report to the University of St Andrews, I give permission for it to be made available for use in accordance with the regulations of the University Library. I also give permission for the title and abstract to be published and for copies of the report to be made and supplied at cost to any bona fide library or research worker, and to be made available on the World Wide Web. I retain the copyright in this work. 2 Contents 1 Introduction 5 2 Context survey 6 2.1 Historical Significance of S-algol . .6 2.2 Javascript as a Tool for Preservation . .7 2.3 Language specification . .8 3 Requirements specification 9 4 Software engineering process 11 4.1 Tool Usage . 11 5 Design 12 5.1 Recursive descent . 12 5.2 Single Pass vs Multi Pass .
    [Show full text]
  • Uniprocessor Garbage Collection Techniques
    Unipro cessor Garbage Collection Techniques Submitted to ACM Computing Surveys Paul R Wilson Abstract Incremental Tracing Collectors Coherence and Conservatism We survey basic garbage collection algorithms and Tricolor Marking variations such as incremental and generational collec Incremental approaches tion we then discuss lowlevel implementation consid Write Barrier Algorithms erations and the relationships b etween storage man Snapshotatb eginning agement systems languages and compilers Through Algorithms out we attempt to present a unied view based on Incremental Up date WriteBar abstract traversal strategies addressing issues of con rier Algorithms servatism opp ortunism and immediacy of reclama Bakers Read Barrier Algorithms tion we also p ointoutavariety of implementation Incremental Copying details that are likely to have a signicant impact on ers Incremental Noncopy Bak p erformance ing AlgorithmThe Treadmill Conservatism of Bakers Read Barrier Contents Variations on the Read Barrier Replication Copying Collection Automatic Storage Reclamation Coherence and Conservatism Revisited Motivation Coherence and Conservatism in The TwoPhase Abstraction Noncopying collection Ob ject Representations Coherence and Conservatism in Copying Collection Overview of the Pap er Radical Collection and Op Basic Garbage Collection Techniques p ortunistic Tracing Comparing Incremental Techniques Reference Counting Realtime Tracing Collection
    [Show full text]