Browse Prior Art Database

DEFAULTS AND BLOCK STRUCTURE IN THE MAD/I LANGUAGE

IP.com Disclosure Number: IPCOM000128397D
Original Publication Date: 1970-Jul-01
Included in the Prior Art Database: 2005-Sep-15
Document File: 12 page(s) / 42K

Publishing Venue

Software Patent Institute

Related People

Springer, Allen: AUTHOR [+3]

Abstract

This paper describes the default and block structure mechanisms of MAD/I, a PL/I-like language, and the interaction of these mechanisms with the three types of MAD/I declarations: explicit declarations, default declarations, and conditional declarations. MAD/I allows the programmer extraordinary control over the default assignment of data types to variables, and also allows the programmer more than usual control over the scope of variable names in block structure. The interaction of these two facilities can make the handling of declaration information a difficult problem. This paper outlines an algorithm in which this information is processed "on the fly" in the first pass of the compiler over the source program, and then the symbol table is processed to assign defaults and allocate storage. A simple second pass over a transformed version of the source text resolves the scope and interpretation of variable names.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 8% of the total text.

Page 1 of 12

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

DEFAULTS AND BLOCK STRUCTURE IN THE MAD/I LANGUAGE

THE UNIVERSITY OF MICHIGAN Memorandum 31 Allen Springer

CONCOMP: Research in Conversational Use of Computers ORA Project 07449 F.H. Westervelt, Director Supported by: DEPARTMENT OF DEFENSE ADVANCED RESEARCH PROJECTS AGENCY WASHINGTON, D.C.

CONTRACT NO. DA-49-083 OSA-3050 ARPA ORDER NO. 716 administered through: OFFICE OF RESEARCH ADMINISTRATION ANN ARBOR July

ACKNOWLEDGEMENTS

The author would like to acknowledge the support of the CONCOMP Project; IBM, who sent the author on an IBM Resident Study Program; and especially his co-workers on the MAD/I compiler, Bruce Bolas, Ronald Srodawa, Charles Engle, David Mills, Fred Swartz; and the MAD/I coordinators, Profs. Bernard Galler and Bruce Arden.

TABLE OF CONTENTS

ACKNOWLEDGMENTS.....iii
1. Introduction.....l
2. Defaults in MAD/I.....3
3. Block Structure in MAD/I.....6
4. The Organization of the Compiler.....13
5. The Block Structure Algorithm.....17
6. Conditional Declaration Handling in MAD/I.....25
7. Some Implementation Details.....27
8. Conclusion.....32

[ chapter ] 1. INTRODUCTION

This paper describes the default and block structure mechanisms of MAD/I, a PL/I-like language, and the interaction of these mechanisms with the three types of MAD/I declarations: explicit declarations, default declarations, and conditional declarations. MAD/I allows the programmer extraordinary control over the default assignment of data types to variables, and also allows the programmer more than usual control over the scope of variable names in block

University of Michigan Page 1 Jul 01, 1970

Page 2 of 12

DEFAULTS AND BLOCK STRUCTURE IN THE MAD/I LANGUAGE

structure. The interaction of these two facilities can make the handling of declaration information a difficult problem. This paper outlines an algorithm in which this information is processed "on the fly" in the first pass of the compiler over the source program, and then the symbol table is processed to assign defaults and allocate storage. A simple second pass over a transformed version of the source text resolves the scope and interpretation of variable names.

MAD/I is a computer language under development at the University of Michigan Computing Center, sponsored by the CONCOMP Project. It can be thought of as a remote descendant of 7090 MAD and ALGOL 60, with PL/I being a not-too distant relative. However, MAD/I and its compiler have some unusual features that aid language modification and extendibility, although these features are beyond the scope of this paper. Except for block structure scope facilities and the default setting facilities, then, MAD/I may be regarded as simply another representative of the class of procedural languages which includes ALGOL 60 and PL/I.

Briefly, MAD/I has blocks, as in PL/I and ALGOL 60. Like PL/I (but unlike ALGOL 60), declarations may occur anywhere within a block, and are not required for all...