BLISS: a Language for Systems Programming

Total Page:16

File Type:pdf, Size:1020Kb

BLISS: a Language for Systems Programming BLISS: A Language for Systems Programming W.A. Wulf, D.B. Russell, A.N. Hab ermann Carnegie-Mellon University A language, BLISS, is describ ed. This language is designed so as to b e esp ecially suitable for use in writing pro duction software systems for a sp eci c machine (the PDP-10): compilers, op erating systems, etc. Prime design goals of the design are the abilitytopro duce highly ecient object co de, to allow access to all relevant hardware features of the host machine, and to provide a rational means by which to cop e with the evolutionary nature of systems programs. A major feature which contributes to the realization of these goals is a mechanism p ermitting the de nition of the representation of all data structures in terms of the access algorithm for elements of the structure. sp eci c machine. Sp ecial purp ose languages, such Intro duction as compiler-compilers, do not fall into this category, nor do we necessarily assume that these languages In the fall of 1969, Carnegie-Mellon University need b e machine-indep endent. We stress the word acquired a pdp-10 to supp ort a research pro ject \implementation" in our de nition and havenot on computer networks. This researchinvolves used words such as \design" and \do cumentation." the pro duction of a substantial numb er of large We do not necessarily exp ect that an implemen- systems programs of the typ e whichhave usually tation language will b e an appropriate vehicle for b een written in assembly language. Atanearly expressing the initial design of a large system nor stage of this design e ort it was decided not to for the exclusive do cumentation of that system. use assembly language, but rather some higher-level Concepts suchasmachine indep endence, expressing language. This decision immediately led to another the design and implementation in the same notation, question|which language? In turn this led to a self-do cumentation, and others, are clearly desirable consideration of the characteristics, if any,which are goals and are criteria by whichweevaluated various unique to, or at least exaggerated in, the pro duction languages. and maintenance of systems programs. One pro duct However, they are not implicit in our de nition. of these delib erations was a new language, whichwe There are a few extant examples of languages which call bliss. Clearly, a language is not the only to ol t our de nition: epl (a PL/1 derivative which needed; however, it is the one with whichwedealin was initially used on multics [1] but whichhas this pap er. b een replaced by full PL/1), B5500 Extended algol We refer to bliss as an \implementation lan- (Burroughs Corp oration [2]), PL360 [3], and bcpl guage," although we admit that the term is some- [4]. what ambiguous since, presumably, all computer The various arguments for and against the use languages are used to implement something. To of higher-level languages to write systems software us the phrase connotes a general purp ose, higher- have b een discussed at length. We do not intend to level language in which the primary emphasis has repro duce them here in detail except to note that the b een placed up on a sp eci c application, namely the skeptics argue primarily on two grounds: eciency, writing of large, production software systems for a and an assertion that the systems programmer must C Copyright 1971, Asso ciation for Computing Machinery, not allowanything to get b etween himself and the Inc. Reprinted from the Decemb er 1971 issue of Communi- machine. The advo cates argue on the grounds of cations of the ACM (Volume 14, Number 12). Permission to pro duction sp eed (and cost), maintainability,re- reprint granted by the Asso ciation for Computing Machinery. design and mo di cation, and understandability and 1 ob ject co de must not dep end up on elab orate correctness. The rep ort of the NATO Conference run-time supp ort on Software Engineering held in Garmish (Octo- b er 1968) [5] contains several discussions on these Characteristics of Systems Programming Practice p oints. control over the representation of data structures It is our opinion that program eciency, except exible range of control structures (notably in- p ossibly for a very small number of very small co de cluding recursion, coroutines, and asynchronous segments, is determined byoverall program design pro cesses) and not by lo cally tricky, \bit-picking" co ding prac- mo dularization of a system into separately com- tices. Moreover, the critical co de segments are pilable submo dules frequently lo cated only after the system is op era- parameterization, esp ecially conditional compi- tional. This opinion is b orne out bymany systems lation whichhave exp erienced substantial p erformance im- provements from redesign or restructuring result- Overal l GoodLanguage Design ing from understanding or insight after the system encourages program structuring for understand- has b een running for some time (see, for example, ability E.E. David's comments, [5, pp. 55{57]). One of the encourages program structuring for debugging paramount design ob jectives of bliss was to facili- and measurement tate redesign and reco ding. Since this redesign is fre- economy of concepts (involution), generality, quently done by someone other than the program's exibility, etc. original author, there is a corollary ob jectiveof utility as a design to ol readability. This argues for go o d do cumentation| machine indep endence but also for understandability of the co de itself. Understandability is a function of many things, not The order in the ab ove list is not accidental. Those all of which are inherent in the language in which items found early in the list we consider to b e a program is written|a programmer's individual absolute requirements, while those o ccurring later in style, for example. Nevertheless, the length of a the list may b e thoughtofascriteriaby which alter- program text and the structure imp osed up on that native designs are judged once the more demanding text are imp ortant factors and argue strongly for the requirements are satis ed. use of a higher-level language. Not all of the goals mentioned ab ove are com- Presuming the decision to use an implementa- patible in practice. For example, eciency, access tion language, which one should one cho ose? An to machine features, and machine indep endence are argument might b e made for cho osing one of the con icting goals. In fact, the design of bliss is existing languages, say fortran, PL/1, or apl, not machine indep endent, although the underlying and p ossibly extending it in some way. Wehave philosophy and much of the sp eci c design are. The chosen to add to the tongues of Bab el by de ning machine for which the language was b eing designed, yet another new language, and some justi cation is the pdp-10,was constantly in the minds of the de- required. The only valid rationale for creating a new signers. The co de to b e generated for each prop osed language is that the existing ones are inappropriate construct, or form of a construct, was considered to the task. It was our judgement that no existing b efore that construct was included in, or excluded languages dealt with all of the prop er issues and from, the language. Thus the characteristics of the hence a new language was necessary. What then are target machine p ervade the language in b oth overt the sp ecial characteristics of systems programs for and subtle ways. This is not to say that bliss could which existing languages are inappropriate? (Later not b e implemented for another machine; it could. we shall discuss how these manifest themselves in It do es say that bliss is particularly well suited to bliss.) The two sp ecial characteristics most fre- implementation on the pdp-10 and that it could quently mentioned are eciency and access to all probably not b e as eciently implemented on most hardware features of the machine. We add several other machines. We think of bliss as a member things to these; the resulting list forms the design (the only one at present) of a class of languages ob jectives of bliss. that are similar in philosophy and that mirror a similar concern for the imp ortant asp ects of systems Requirements of Systems Programs programming, but where each is tailored to its host space/time economy machine. access to all relevant hardware features 2 As another example of the incompatibilityof control, and (3) data structures; nally,wemention these goals, consider the requirement for minimal some other miscellaneous features. run-time supp ort and the use of the implementation language as a design to ol. In some sense a design 1. Storage to ol should b e at a higher level than the ob ject A bliss program op erates with and on a number b eing designed|that is, the to ol should relievethe of storage \segments." A storage segment consists designer from concern over whichever details the of a xed and nite number of \words," eachof designer deems appropriate only for later consider- which is comp osed of a xed and nite number of ation. Any language relieves its user from concern \bits" (36 for the pdp-10). Anycontiguous set over certain details; even assembly language frees of bits within a word is called a \ eld." A eld the co der from the need to make sp eci c address may b e \named"; the valueofanameiscalled assignments.
Recommended publications
  • A Case Against the GOT' O William a . Wulf, Carnegie-Mellon Universit Y
    A Case Against the GOT' O William A . Wulf, Carnegie-Mellon Universit y ABSTRAC T suggestion to ban the goto appears to have been a part of the computing folklore for several years , It has been proposed, by E . W . Dijkstra and others , to this author's knowledge the suggestion wa s that the goto statement in programming language i s first made in print by Professor E . W . Dijkstra i n a principal culprit in programs which are diffi- a letter to the editor of the _Communications o f cult to understand, modify, and debug . More cor- the ACM in 1968 (1) . rectly, the argument is that it is possible t o In this paper we shall examine the rational e use the goto to synthesize program structures wit h for the elimination of the Soto in programin g these undesirable properties . Not all uses of th e languages, and some of the theoretical and practi- goto are to be considered harmful ; however, it i s cal implications of its (total) elimination . further argued that the "good" uses of the got o fall into one of a small number of specific case s RATIONAL E which may be handled by specific language con- structs . This paper summarizes the arguments i n At one level, the rationale for eliminatin g favor of eliminating the goto statement and som e the poto has already been given in the introduc- of the theoretical and practical implications o f tion . Namely, it is possible to use the goto in a the proposal . manner which obscures the logical structure of a program to a point where it becomes virtually im- KEY WORDS AND PHRASES : programming, programmin g possible to understand (1,3,4), It is not claimed languages, goto-less programming, structured pro- that every use of the goto obscures the logica l grammin g structure of a program ; it is only claimed that i t CR CATEGORIES : 4 .2, 4 .22, 5 .2 4 is possible to use the Soto to fabricate a "rat' s nest" of control flow which has the undesirabl e INTRODUCTION properties mentioned above .
    [Show full text]
  • PL/I List Processing • PL/I Language Lacked FaciliEs for TreaNg Linked Lists HAROLD LAWSON,JR
    The Birth of the Pointer Variable Based upon: Experiences and Reflec;ons of a Computer Pioneer Harold “Bud” Lawson FELLOW FELLOW and LIFE MEMBER IEEE COMPUTER SOCIETY CHARLES BABBAGE COMPUTER PIONEER FELLOW Overlapping Phases • Phase 1 (1959-1974) – Computer Industry • Phase 2 (1974-1996) - Computer-Based Systems • Phase 3 (1996-Present) – Complex Systems • Dedicated to all the talented colleagues that I have worked with during my career. • We have had fun and learned from each other. • InteresMng ReflecMons and Happenings are indicated in Red. Computer Industry (1959 to 1974) • Summer 1958 - US Census Bureau • 1959 Temple University (Introduc;on to IBM 650 (Drum Machine)) • 1959-61 Employed at Remington-Rand Univac • 1961-67 Employed at IBM • 1967-69 Part Time Consultant (Professor) • 1969-70 Employed at Standard Computer Corporaon • 1971-73 Consultant to Datasaab, Linköping • 1973-… Consultant .. Expert Witness.. Rear Admiral Dr. Grace Murray Hopper (December 9, 1906 – January 1, 1992) Minted the word “BUG” – During her Mme as Programmer of the MARK I Computer at Harvard Minted the word “COMPILER” with A-0 in 1951 Developed Math-MaMc and FlowmaMc and inspired the Development of COBOL Grace loved US Navy Service – The oldest acMve officer, reMrement at 80. From Grace I learned that it is important to queson the status-quo, to seek deeper meaning and explore alterna5ve ways of doing things. 1980 – Honarary Doctor The USS Linköpings Universitet Hopper Univac Compiler Technology of the 1950’s Grace Hopper’s Early Programming Languages Math-MaMc
    [Show full text]
  • Systems Programming in C++ Practical Course
    Systems Programming in C++ Practical Course Summer Term 2019 Course Goals Learn to write good C++ • Basic syntax • Common idioms and best practices Learn to implement large systems with C++ • C++ standard library and Linux ecosystem • Tools and techniques (building, debugging, etc.) Learn to write high-performance code with C++ • Multithreading and synchronization • Performance pitfalls 1 Formal Prerequisites Knowledge equivalent to the lectures • Introduction to Informatics 1 (IN0001) • Fundamentals of Programming (IN0002) • Fundamentals of Algorithms and Data Structures (IN0007) Additional formal prerequisites (B.Sc. Informatics) • Introduction to Computer Architecture (IN0004) • Basic Principles: Operating Systems and System Software (IN0009) Additional formal prerequisites (B.Sc. Games Engineering) • Operating Systems and Hardware oriented Programming for Games (IN0034) 2 Practical Prerequisites Practical prerequisites • No previous experience with C or C++ required • Familiarity with another general-purpose programming language Operating System • Working Linux operating system (e.g. Ubuntu) • Basic experience with Linux (in particular with shell) • You are free to use your favorite OS, we only support Linux 3 Lecture & Tutorial • Lecture: Tuesday, 14:00 – 16:00, MI 02.11.018 • Tutorial: Friday, 10:00 – 12:00, MI 02.11.018 • Discuss assignments and any questions • First two tutorials are additional lectures • Everything will be in English • Attendance is mandatory • Announcements on the website 4 Assignments • Brief non-coding quizzes
    [Show full text]
  • Does the Seventh Amendment Compel Fact-‐Finding Before
    HAVE WE GONE TOO FAR: DOES THE SEVENTH AMENDMENT COMPEL FACT-FINDING BEFORE REACHING A DECISION ON PATENT- ELIGIBLE SUBJECT MATTER? JESSE D.H. SNYDER* I. INTRODUCTION Something seems amiss. Settled notions of what can be Patenta- ble are changing.1 To complicate matters further, so far, neither the SuPreme Court nor the Federal Circuit has addressed whether the in- quiry into Patent-eliGible subject matter is factual, legal, or both. And while the scoPe of Patentable subject matter is understandably con- strictinG, the end result may not be coterminous with the SuPreme Court’s Guidance in Alice Corporation Party Limited v. CLS Bank.2 Under Alice, which built uPon the Patent-eliGible subject matter frameworks of Prior cases, for those Patent claims that are directed to a Patent- ineligible concePt (e.G., abstract ideas), Patentability turns on whether an “inventive concePt” exists to “‘transform the nature of the claim’ into a Patent-eliGible aPPlication.”3 The lower courts have seized on the Alice holding, inhuming Pa- tents whose subject-matter failures render them invalid as a matter of law. But what if the means adoPted by the lower courts to reach that leGal conclusion also sidestePs certain constitutional guarantees? What if they are simPlifyinG the analysis at a facial level when a more granular investigation is required? What if, at the motion to dismiss staGe, fact-findinG is still required to determine whether a Patent is * 2015-2016 term law clerk to the Honorable Jimmie V. Reyna of the U.S. Court of APPeals for the Federal Circuit. I earned my J.D., summa cum laude, from Texas Wesleyan School of Law and my B.S.
    [Show full text]
  • Kednos PL/I for Openvms Systems User Manual
    ) Kednos PL/I for OpenVMS Systems User Manual Order Number: AA-H951E-TM November 2003 This manual provides an overview of the PL/I programming language. It explains programming with Kednos PL/I on OpenVMS VAX Systems and OpenVMS Alpha Systems. It also describes the operation of the Kednos PL/I compilers and the features of the operating systems that are important to the PL/I programmer. Revision/Update Information: This revised manual supersedes the PL/I User’s Manual for VAX VMS, Order Number AA-H951D-TL. Operating System and Version: For Kednos PL/I for OpenVMS VAX: OpenVMS VAX Version 5.5 or higher For Kednos PL/I for OpenVMS Alpha: OpenVMS Alpha Version 6.2 or higher Software Version: Kednos PL/I Version 3.8 for OpenVMS VAX Kednos PL/I Version 4.4 for OpenVMS Alpha Published by: Kednos Corporation, Pebble Beach, CA, www.Kednos.com First Printing, August 1980 Revised, November 1983 Updated, April 1985 Revised, April 1987 Revised, January 1992 Revised, May 1992 Revised, November 1993 Revised, April 1995 Revised, October 1995 Revised, November 2003 Kednos Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Kednos Corporation or an anthorized sublicensor.
    [Show full text]
  • Shri Vaishnav Vidyapeeth Vishwavidyalaya, Indore
    SHRI VAISHNAV VIDYAPEETH VISHWAVIDYALAYA, INDORE Memories are special moments that tell our story SMRITI मृत ALUMNI DIRECTORY 2020 The rising flame epitomises leadership through enlightenment The bright orange colour represents brilliance and colour blue reflects serenity and infinity तमसो मा योतगमय Lead me from darkness to light ABOUT UNIVERSITY Shri Vaishnav Vidyapeeth Vishwavidyalaya is a state private university established under Madhya Pradesh Niji Vishwavidyalaya (Sthapana Avam Sanchalan) Adhiniyam in 2015 at Indore, MP(India). The University has been established with a vision to be a leader in shaping better future for mankind through quality education, training and research. It shall pursue the mission to make a difference in sustaining the growth of global societies by developing socially responsible citizens. Value based education being at the helm, the University offers degree and diploma programs through 13 constituent institutes and schools, besides Faculty of Doctoral Studies and Research. Some of the objectives of the University are as under: • To provide teaching and training in higher education and make provision for research as well as advancement and dissemination of knowledge. • To ensure world class quality in its offerings and create higher levels of intellectual abilities. • To create centres of excellence for research and development for sharing knowledge and its applications. Shri Vaishnav Vidyapeeth Vishwavidyalaya at Indore is a multi-disciplinary university focusing on the needs of various segments of the society. FROM THE DESK OF CHANCELLOR “To emerge as a winner, learn to balance relaxation and action” Shri Vaishnav Vidyapeeth Vishwavidyalaya was conceived as an institution of higher learning for imparting quality education to the young and experienced learners alike.
    [Show full text]
  • Chapter 4 Introduction to UNIX Systems Programming
    Chapter 4 Introduction to UNIX Systems Programming 4.1 Introduction Last chapter covered how to use UNIX from from a shell program using UNIX commands. These commands are programs that are written in C that interact with the UNIX environment using functions called Systems Calls. This chapter covers this Systems Calls and how to use them inside a program. 4.2 What is an Operating System An Operating System is a program that sits between the hardware and the application programs. Like any other program it has a main() function and it is built like any other program with a compiler and a linker. However it is built with some special parameters so the starting address is the boot address where the CPU will jump to start the operating system when the system boots. Draft An operating system typically offers the following functionality: ● Multitasking The Operating System will allow multiple programs to run simultaneously in the same computer. The Operating System will schedule the programs in the multiple processors of the computer even when the number of running programs exceeds the number of processors or cores. ● Multiuser The Operating System will allow multiple users to use simultaneously in the same computer. ● File system © 2014 Gustavo Rodriguez-Rivera and Justin Ennen,Introduction to Systems Programming: a Hands-on Approach (V2014-10-27) (systemsprogrammingbook.com) It allows to store files in disk or other media. ● Networking It gives access to the local network and internet ● Window System It provides a Graphical User Interface ● Standard Programs It also includes programs such as file utilities, task manager, editors, compilers, web browser, etc.
    [Show full text]
  • Lecture 24 Systems Programming in C
    Lecture 24 Systems Programming in C A process is a currently executing instance of a program. All programs by default execute in the user mode. A C program can invoke UNIX system calls directly. A system call can be defined as a request to the operating system to do something on behalf of the program. During the execution of a system call , the mode is change from user mode to kernel mode (or system mode) to allow the execution of the system call. The kernel, the core of the operating system program in fact has control over everything. All OS software is trusted and executed without any further verification. All other software needs to request kernel mode using specific system calls to create new processes and manage I/O. A high level programmer does not have to worry about the mode change from user-mode to kernel-mode as it is handled by a predefined library of system calls. Unlike processes in user mode, which can be replaced by another process at any time, a process in kernel mode cannot be arbitrarily replaced by another process. A process in kernel mode can only be suspended by an interrupt or exception. A C system call software instruction generates an OS interrupt commonly called the operating system trap . The system call interface handles these interruptions in a special way. The C library function passes a unique number corresponding to the system call to the kernel, so kernel can determine the specific system call user is invoking. After executing the kernel command the operating system trap is released and the system returns to user mode.
    [Show full text]
  • A Look at Some Compilers MATERIALS from the DRAGON BOOK and WIKIPEDIA MICHAEL WOLLOWSKI
    2/11/20 A Look at some Compilers MATERIALS FROM THE DRAGON BOOK AND WIKIPEDIA MICHAEL WOLLOWSKI EQN oTakes inputs like “E sub 1” and produces commands for text formatter TROFF to produce “E1” 1 2/11/20 EQN EQN oTreating EQN as a language and applying compiler technologies has several benefits: oEase of implementation. oLanguage evolution. In response to user needs 2 2/11/20 Pascal Developed by Nicolas Wirth. Generated machine code for the CDC 6000 series machines To increase portability, the Pascal-P compiler generates P-code for an abstract stack machine. One pass recursive-descent compiler Storage is organized into 4 areas: ◦ Code for procedures ◦ Constants ◦ Stack for activation records ◦ Heap for data allocated by the new operator. Procedures may be nested, hence, activation record for a procedure contains both access and control links. CDC 6000 series The first member of the CDC 6000 series Was the supercomputer CDC 6600, Designed by Seymour Cray and James E. Thornton Introduced in September 1964 Performed up to three million instructions per second, three times faster than the IBM Stretch, the speed champion for the previous couple of years. It remained the fastest machine for five years until the CDC 7600 Was launched. The machine Was Freon refrigerant cooled. Control Data manufactured about 100 machines of this type, selling for $6 to $10 million each. 3 2/11/20 CDC 6000 series By Steve Jurvetson from Menlo Park, USA - Flickr, CC BY 2.0, https://commons.Wikimedia.org/w/index.php?curid=1114605 CDC 205 CDC 205 DKRZ 4 2/11/20 CDC 205 CDC 205 Wiring, davdata.nl Pascal 5 2/11/20 Pascal One of the compiler Writers states about the use of a one-pass compiler: ◦ Easy to implement ◦ Imposes severe restrictions on the quality of the generated code and suffers from relatively high storage requirements.
    [Show full text]
  • Mach-O Programming Topics
    Mach-O Programming Topics Tools > Compiling & Debugging 2006-11-28 subsidiaries in the United States and other Apple Inc. countries. © 2003, 2006 Apple Computer, Inc. Java and all Java-based trademarks are All rights reserved. trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other No part of this publication may be countries. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, PowerPC and and the PowerPC logo are mechanical, electronic, photocopying, trademarks of International Business recording, or otherwise, without prior Machines Corporation, used under license written permission of Apple Inc., with the therefrom. following exceptions: Any person is hereby UNIX is a registered trademark of The Open authorized to store documentation on a Group single computer for personal use only and Simultaneously published in the United to print copies of documentation for States and Canada. personal use provided that the documentation contains Apple’s copyright Even though Apple has reviewed this document, APPLE MAKES NO WARRANTY OR notice. REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS The Apple logo is a trademark of Apple Inc. DOCUMENT, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A Use of the “keyboard” Apple logo PARTICULAR PURPOSE. AS A RESULT, THIS (Option-Shift-K) for commercial purposes DOCUMENT IS PROVIDED “AS IS,” AND YOU, THE READER, ARE ASSUMING THE without the prior written consent of Apple ENTIRE RISK AS TO ITS QUALITY AND may constitute trademark infringement and ACCURACY. unfair competition in violation of federal IN NO EVENT WILL APPLE BE LIABLE FOR and state laws.
    [Show full text]
  • 8297 SYSTEMS PROGRAMMER 1 Nature of Work Under General
    8297 SYSTEMS PROGRAMMER 1 Nature of Work Under general supervision, an employee in this class performs work of considerable difficulty to provide software support through installing and maintaining software systems such as TSO, IMS, TMS, SAS, CICS, WYLBUR, or other major subsystems. Work includes monitoring, debugging, updating and controlling software packages which interface with application programs of the various users. The incumbent works closely with higher level Systems Programmers on the more complex aspects of installations to assure compatibility with existing software/hardware environment. The incumbent participates in self-study and on-the-job training to improve skills in complex systems programming. An irregular work schedule and on-call duty is required of the position. May function as a consultant in the choice of installation and implementation of office automation equipment and software; the assignments involve multiple application, multiple platforms and complex, interdepartmental communications. Performs related work as required. Distinguishing Characteristics Systems Programmer 1 provides software support for systems which affect a large percentage of the user community. Errors in judgment at this level could affect a number of user operations for a period of time; however, the central mainframe system would continue to operate. Systems Programmer 2 provides support for major software systems; errors in judgment at this level could shut-down the entire central mainframe system. Examples of Work Installs and maintains systems software packages or data base management and data communications systems. Receives advanced training to improve techniques and methodologies used in support of complex host resident software packages. Monitors computer performance to identify, correct and/or improve the operational efficiency of the hardware/software configuration.
    [Show full text]
  • Steps Toward a Compiler for BLISS-360
    STEPS TOWARD A COMPILER FOR BLISS-360 Richard Charles Bahler HffiE 1 ihshL postgraduate school Monterey, California THESIS - STEPS TOWARD A COMPILER FOR BLISS- 360 by Richard Charles Bahler Thesis Advisor: Gary A . Kildall June 1972 Appiov&d ^oh. pubtic k.qA.qju> e; diA&iibntion untimittd. Steps Toward a Compiler for BLISS-360 by Richard Charles Bahler Major, United States Marine Corps Reserve B.A., University of Rochester, 1955 Submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN COMPUTER SCIENCE from the NAVAL POSTGRADUATE SCHOOL June 1972 ABSTRACT The design of a compiler for the IBM S/360 systems implementation language BLISS-360, a modification of the PDP-10 language BLISS- 10, is described. The compiler has a two-pass structure that is based upon the XPL Compiler Generator System. The first of these passes, which uses the XPL prototype compiler Skeleton,, is examined in some detail. Funda- mental data structures are described for this pass, including a constant table, a dictionary for variable definitions, and an intermediate language table to retain the source program structure and semantics. Modifications which allow the Skeleton compiler to perform a syntax analysis of BLISS- 360 programs are discussed and demonstrated. General requirements are defined for the functions to be performed by the second pass, including machine language code generation from the intermediate language, storage allocation and building program interface linkage. TABLE OF CONTENTS I. INTRODUCTION 9 A. PROJECT GOAL 9 B. THESIS OBJECTIVES 9 II. A BLISS-360 COMPILER — POSSIBLE APPROACHES 11 A. REQUIREMENTS OF THE COMPILER 11 B.
    [Show full text]