UBC Theses and Dissertations
Operator identification in Algol 68 Kwan, Ying
The special feature that modes and operators can be defined by the user of ALGOL 68 has induced the problems of coercion, balancing and operator identification. This work deals with the mode manipulation and operator identification in ALGOL 68. The algorithms are based on those of [Z]. Some of the revisions to the ALGOL 68 Report concerning modes, such as no proceduring, the void symbol, the definition of NONPROC, the definition of a vacuum, and the hipping of a vacuum are included. The program in ALGOL W is based on that of [P]. The program described in this thesis does four main jobs: mode eguivalencing, mode coercion, mode balancing and operator identification. In mode eguivalencing, it checks the context conditions concerning "showing" [R.4.4.4] and the multiple occurrence of the same field selector in a structure [R.4.4.3e], and checks related modes in unions [ B.4.4.3b,d]. In mode coercion, it determines the coercion steps. This is also a basic part of mode balancing and operator identification. In balancing, it also considers collateral displays. This is a model for the operator identification part of an ALGOL 68 compiler. I am deeply indebted to Professor J. E. L. Peck for initiating my study of ALGOL 68 and ALGOL W, for suggesting the topic of this thesis and for rendering invaluable assistance, encouragement and patience throughout the course of my work. I would like to thank the group which is working under Dr. Peck for the ALGOL 68 implementation, Dr. W. J. Hansen and especially Dr. M. Zosel for many helpful suggestions and discussions. I gratefully acknowledge the financial support of NRC.
Item Citations and Data