1、BSI BS*ISO/IEC 6522 92 D i1624667 0475085 305 BS ISO/IEC 6522 : 1992 Implementation of ISO/IEC 6522 : 1992 Information technology - Programming languages - PL/I general purpose subset UDC 681.3.01, : 519.682 : 800.92 ES1 BS+ISO/IEC 6522 92 = 1624669 O475086 241 BS ISO/IEC 6522 : 1992 Amd. No. Commit
2、tees responsible for this British Standard Date Text affected The preparation of this British Standard was entrusted to %chnical Committee IST/5, Programming languages, upon which the following bodies were represented: British Computer Society Electricity Association Hoskyns Group plc IBM United Kin
3、gdom Ltd. Information Systems Committee of the Universities Funding Council International Computers Limited National Computer Users Forum National Computer Centre Ltd. Rutherford Appleton Laboratory SEMA Group Systems Ltd. This British Standard, having been prepared under the direction of the Infoma
4、tion Systems Technology Assembly, was published under the authority of the Standards Board and comes into effect on 15 April 1995 0 BSI 1995 Amendments issued since publication The following BSI references relate to the work on this standard: Committee reference IST/5 Draft for comment 89/63580 DC I
5、SBN O 580 23879 2 BSI BS*ISO/IEC 6522 92 W 1624669 0475087 188 BS ISO/EC 6522 : 1992 National foreword This British Standard reproduces verbatim ISO/IEC 6522 : 1992 and implements it as the UK national standard. This British Standard is published under the direction of the Information Systems Techno
6、logy Assembly whose Technical Committee IST5 has the responsibility to: - aid enquirers to understand the text; - present to the responsible international committee any enquiries on interpretation, or proposals for change, and keep UK interests informed; - monitor related international and European
7、developments and promulgate them in the UK. NOTE. International and European Standards, as well as overseas standards, are available from Customer Services, MI, 389 Chiswick High Road, London WA 4AL. Compliance with a British Standard does not of itself confer immunity from legal obligations. I BSI
8、BS*ISO/IEC b522 92 W Lb24bb 0475088 014 W I NTERNATI O NAL STANDARD ISO/IEC 6522 Second edition 1992-1 1-1 5 Information technology - Programming languages - PL/I general purpose subset Technologies de 1 information - Langages de programmation - Sous-ensemble PL/ i pour usage gnral Reference number
9、ISO/IEC 6522:1992E) BSI BS*ISO/IEC b522 92 Lb24bb9 0475089 T50 ISO/IEC 6522:1992 (E) Contents . 1 . Scopeand Overviews 1 1.2 Referenced Publications 1 1.4 An Informal Guide to the PL/I Definition : . 3 1.4.1 ASummaryofPL/I . 3 1.4.2 The Form of the Definition . 4 10 1.1 Scope 1 1.3 GoalsandRationale
10、 . 2 . 1.4.3 Summary of Chapter Structure . 6 1.4.4 Introduction to the Metalanguage 1.4.4.1 Tree Concepts . 10 1.4.4.2 Syntaxes . 11 1.4.4.3 AlgonthmConcepts 12 1.5.1.1 Rejection of Programs . 15 1.5 Relationships between an Implementation and this Definition 14 1.5.1 Flexibiiities of Interpretatio
11、n . 15 1.5.1.2 Quantitative Restrictions . 15 1.5.1.3 Addressing Restrictions 15 1 -5.1.4 Operating Environment 16 1.5.1.5 Character Sets . 16 1.5.1.6 Expression Evaluation . 16 1.5.1.7 Interrupts and Assignment . 17 1.5.1.8 Input/Output . 17 1.5.1.9 On-units . 17 1 S.2 Implementation-defined Featur
12、es 18 1.6 TheMetalanguage . 20 1.6.1 Trees . 21 1.6.1.1 Tree Definitions . 21 1.6.1.2 Node Objects . 22 1.6.1.2.1 Unique-names . 23 1.6.1.2.2 Types 23 1.6.1.3 Node Notation 23 1.6.1.4 Tree Notation . 24 1.6.1.4.1 Enumerated-Trees 24 1.6.1.4.2 Forms . 25 1.6.1.5 Tree Copies . 25 1.6.2 ProductionRules
13、 25 1.6.2.1 Production Rules and Syntaxes 25 1.6.2.2 Complete and Partial Trees . 26 1.6.2.3 Syntactic-expressions and Syntactic-units 28 1.6.2.4 Use of the Production Rules 28 1.6.2.4.1 Subnode-type Sequence with respect to a Syntax and Category-name 29 1.6.2.4.2 Subnode-type Sequence with respect
14、to a Syntactic-expression 29 1.6.3 Operations . 30 1.6.3.1 Nature of an Operation 30 Z ISO/IEC 1992 All rights reserved . No part of this publication may be reproduced or utilized in any form or by any means. electronic or mechanical. including photocopying and microfilm. without permission in writi
15、ng from the publisher . International Organization for Standardization Ca5e postale 56 - CH- I21 1 Genve 20 Switzerland Printed in Switzerland II BSI BS*ISO/IEC b522 92 D Lb24669 0475090 772 D ISOIIEC 6522:1992 (E) 1.6.3.2 Nondeterministic Operations 31 1.6.3.3 Format of an Operation . 31 1.6.3.4 In
16、structions . 32 1.6.3.5 Convert 34 1.6.3.6 Additional Notational Conventions . 34 1.6.3.7 Arithmetic 34 1.6.3.7.1 Properties of Arithmetic in the Metalanguage . 34 1.6.3.7.2 Properties of Arithmetic in PL/I . 35 1.6.4 TheProcessor . 36 1.6.5 Mechanization of the Metalanguage 37 1.7 Initialization of
17、 the Machine-state . 39 1.7.1 The Machine-state . 39 1.7.2 Initialization 39 1.7.3 The Top-level Operations 39 1.7.3.1 Define-program 39 1.7.3.2 Translation-phase 40 1.7.3.3 Interpretation-phase 40 2 . Concretesyntax 41 2.1 Introduction 41 2.2 The Intent of this Definition 41 2.2.1 Concrete and Abst
18、ract Syntaxes . 41 2.3 Organization of the Concrete Syntax . 41 2.4 The High-level Syntax of PL/I . 42 2.4.1 Translationunit . 42 2.4.2 Package . 42 2.4.3 Procedure 42 2.4.4 Unit 42 2.4.5 Executable Units 42 2.4.6 If Statement 43 2.4.7 DoGroup 43 2.4.8 Select Group 43 2.4.9 BeginBlock 43 2.4.10 OnUn
19、it 44 2.4.1 O . 1 Condition Prefixes 44 2.4.10.2 Statement Name Prefixes . 44 2.4.1 1 Data Declaration . 44 2.4.1 1.1 Dimension Attribute and Dimension Suffix 44 2.4.11.2 Attributes . 45 2.4.1 1.3 Data Attributes . 45 2.4.1 1.4 Environment and Options . 46 2.4.11.5 Initial . 46 2.4.1 2 The Package S
20、tatement 46 2.4.1 3 The Procedure Statement . 46 2.4.14 The Begin Statement 47 2.4.1 5 The Do Statement 47 2.4.16 The Select Statement 47 2.4.17 The End Statement 47 2.4.18 Flow of Control Statements . 48 2.4.18.1 The Call and Return Statements 48 2.4.18.2 The Go To Statement 48 2.4.18.3 The Leave S
21、tatement 48 2.4.18.4 The Null Statement 48 2.4.18.5 The Revert and Signal Statements . 48 iii BSI BS*ISO/IEC 6522 92 = 1624669 0475091 609 ISO/IEC 6522:1992 (E) 2.4.18.6 The Stop Statement 48 2.4.19 Storage Control Statements . 48 2.4.20.1 The Open and Close Statements 49 2.4.20.3 Stream I/O 50 2.4.
22、20.3.1 Stream Input Specification . 50 2.4.20.3.2 Stream Output Specification . 50 2.4.20.3.3 Format Specification Lists and the Format Statement 50 2.4.21 Expressions 51 2.4.22 EnquiryFunctions 52 2.5 The Low-level Syntax of PL/I 57 2.5.1 PL/I Text 57 2.5.2 Comment 57 2.5.3 Identifier . 57 2.5.4 Ar
23、ithmetic Constant 57 2.5.5 String Constants and Pictures . 58 2.5.6 Include 58 2.6 Charactersets 59 2.6.1 Language Character Set . 60 2.6.1.1 Letters and Digits 60 2.6.1.2 Special Characters 61 2.6.2 Data Character Set . 61 2.6.3 Secondary Case Characters in Numeric and Bit Values . 61 2.7 Abbreviat
24、ions 62 2.4.20 Input/Output Statements . 49 2.4.20.2 Record 1/0 49 3 . Abstract Syntax 63 3.1 Introduction 63 3.2 Abstract Syntax Rules 63 3.2.1 Program . 63 3.2.2 Package . 63 3.2.3 Procedure 63 3.2.4 Declaration . 64 3.2.5 Variable . 64 3.2.6 Data-description . 64 3.2.7 Data-type 65 3.2.8 Named-co
25、nstant . 66 3.2.9 Entry-point . 66 3.2.1 O Executable-unit 66 3.2.11 Begin-block . 67 3.2.12 Groups . 67 3.2.13 Selections . 67 3.2.14 Onstatement 68 3.2.15 If Statement . 68 3.2.16 Flow of Control Statements . 68 3.2.17 Storage Statements 69 3.2.18 1/0 Statements . 69 3.2.19 Record I/O Statements 6
26、9 3.2.20 Stream 1/0 Statements . 70 3.2.21 Expression 71 3.2.22 Types of Reference . 72 3.2.23 Constant 73 3.2.24 Typesofvalue . 73 3.2.25 Types of Picture 73 iV BSI BS*ISO/IEC 6522 92 = 1b24bb9 0475092 545 ISOIIEC 6522:1992 (E) 4 . TheTranslator . 75 4.1 Introduction 75 4.2 Translate 75 4.3 Forming
27、 the Translation Unit 76 4.3.1 Low-level-parse . 77 4.3.2 High-level-parse . 78 4.4 Validation of the Translation Unit . 80 4.5 Completion of the External Unit 80 4.5.1 Reorganize . 81 4.5.1.1 Complete-options 81 4.5.1.2 Complete-attribute-implications . 81 4.5.1.3 Defactor-declarations . 82 4.5.2 C
28、onstruct-explicit-declarations 83 4.5.2.1 Declare-parameters . 83 4.5.2.2 Declare-statement-names 84 4.5.2.3 Construct-statement-name-declarations . 85 4.5.3 Complete-structure-declarations . 87 4.5.3.1 Determine-structure 87 4.5.3.2 Convert-to-logical-levels . 88 4.5.3.3 Propagate-alignment 88 4.5.
29、3.4 Find-applicable-declaration . 89 4.5.3.5 Find-fuily-qualified-name 90 4.5.4 Construct-contextual-declarations . 91 4.5.5 Complete-declarations 93 4.5.5.1 Test-attribute-consistency 94 4.5.5.2 Test-invalid-duplicates 96 4.5.5.3 Apply-defaults . 96 4.5.5.4 Apply-attribute 98 . 4.5 S.5 Complete-con
30、structed-entry-declaration . 98 4.5.5.6 Test-name-in-description . 101 4.5.6 Vaiidate-concrete-declarations . 101 4.5.6.1 Check-attnbute-completeness-and-delete-attributes . 102 4.6 Create-abstract-equivalent-tree 103 4.6.1 Creation of Blocks and Groups 104 4.6.1.1 Create-package . 104 4.6.1.2 Creat
31、e-procedure . 105 4.6.1.3 Create-begin-block 106 4.6.1.4 Create-block . 106 4.6.1.5 Replace-concrete-designators 107 4.6.1.6 Replace-concrete-precision-designators 107 4.6.1.7 Replace-concrete-named-constant-designators . 108 4.6.1.8 Create-group . 108 4.6.1.9 Create-selection 109 4.6.1.10 Create-ex
32、ecutable-unit-list . 110 4.6.1.11 Create-executable-unit 110 4.6.1.12 Create-entry-point . 110 4.6.1.13 Create-statement-name 111 4.6.1.14 Create-condition-prefm-list . 112 4.6.1.15 Create-condition . 112 4.6.1.16 Test-descriptor-extent-expressions . 113 4.6.2 Creation of Statements . 113 4.6.2.1 Cr
33、eate-assignment-statement 113 4.6.2.2 Data-descriptions Proper for Assignment . 114 V BSI BS*ISO/IEC b522 92 I1624669 0475093 481 = LW/IEC 6522:1992 (E) 4 -6.2.3 Create-aflocation 114 4.6.2.4 Create-format-statement 114 4.6.2.5 Create-remote-format 115 4.6.2.6 Create-format-iteration . 115 4.6.2.7 C
34、reate-freeing 115 4.6.2.8 Create-if-statement 116 4.6.2.9 Create-balanced-unit 116 4.6.2.10 Create-leave-statement 117 4.6.2.1 1 Create-on-statement 118 4.6.2.12 Create-open-statement 119 4.6.3 Create-declaration 119 4.6.3.1 Create-named-constant . 120 4.6.3.2 Create-variable . 120 4.6.3.3 Create-bo
35、und-pair-list 121 4.6.3.4 Create-data-description . 122 4.6.3.5 Create-data-type 124 4.6.3.6 Create-entry . 125 4.6.3.7 Create-refer-option 126 4.6.3.8 Create-identifier 126 4.6.3.9 Create-initiai . 126 4.6.3.10 Create-array-init . 127 4.6.3.1 1 Create-initiai-element . 127 4.6.3.12 Create-integer .
36、 128 4.6.3.13 Convert-named-literal . 128 4.6.3.14 Check-arithmetic-type 130 4.6.3.15 Create-precision . 130 4.6.3.16 Create-number-of-digits . 130 4.6.3.17 Create-scale-factor . 131 4.6.4 Create-expression . 131 4.6.5 Create-reference 134 4.6.5.1 Collect-subscripts . 137 4.6.5.3 Create-value-refere
37、nce . 139 4.6.5.5 Create-named-constant-reference . 139 4.6.5.6 Create-argument-list . 140 4.6.5.7 Create-builtin-function-reference . 141 4.6.5.8 Create-pseudo-variable-reference . 142 4.6.5.9 Create-entry-reference . 143 4.6.5.10 Test-matching . 144 4.6.6 Create-picture . 144 4.6.6.1 Create-numeri
38、c-picture . 145 4.6.7 Create-constant 147 4.6.8 Create-enqujr-reference . 149 4.6.8.1 Create-arithmetic-enquiry-reference . 151 4.7 Validation of the External Unit 152 4.7.1 Validate-declaration . 152 4.7.2 Vadate-automatic-declaration 152 4.7.3 Validate-based-declaration 153 4.7.4 Validate-defied-d
39、eclaration 154 4.7.5 Validate-parameter-declaration 154 4.7.6 Validate-static-declaration 154 4.7.7 Validate-descriptor 155 4.7.8 Evaluate-restncted-eXPresSion . 155 4.7.9 Apply-constraints . 156 4.6.5.2 Apply-subscripts 138 4.6.5.4 Trim-dd . 139 vi BSI BS*ISO/IEC 6522 92 W 1624669 0475094 314 ISO/I
40、EC 6522:1992 (E) 4.7.10 Test-constraints . 157 4.7.11 Validate-leave-statements . 158 4.8 Validate-program . 159 4.8.1 Validate-extemai-declaration 159 4.8.2 Environment-names . 160 5 . The PL/I interpreter . 161 5.1 Introduction . 161 5.2 The Interpretation-state 161 5.2.1 Directories 161 5.2.2 Blo
41、ckState 161 5.2.3 FileInformation 163 5.2.4 Storage and Values 164 5.2.5 Generations. Evaluated Data Descriptions. and Evaluated Targets . 165 5.2.6 Dataset . 165 5.3 Terminology and Definitions 166 5.3.1 Current . 166 5.3.2 Block 166 5.4 The Interpret Operation and Interpretation State Initializati
42、on 166 5.4.1 Interpret 166 5.4.2 Initialize-interpretation-state 167 5.4.3 Build-file-directory-and-informations 167 5.4.4 Build-fdi 168 5.4.5 Aiocate-static-storage-and-buiid-static-directory 168 5.4.6 Program-epilogue . 169 6 . Flow OfControl . 171 6.1 Introduction . 171 6.2 Program Activation and
43、 Termination 171 6.2.1 Program Termination 171 6.2.1.1 Execute-stop-statement . 172 6.2.1.2 Stop-program 172 6.3 Block Activation and Termination 172 6.3.1 Activate-procedure 172 6.3.1.1 Instali-arguments 173 6.3.2 Activate-begin-block 173 6.3.3 Prologue 174 6.3.4 Epilogue 175 6.4 ControlwithinaBloc
44、k . 175 6.4.1 Normal-sequence . 176 6.4.1.1 Advance-execution 176 6.4.2 Execute-executable-unit 176 6.4.3 Execute-begin-block . 177 6.4.4 Execute-group . 177 6.4.4.1 Establish-controlled-group 178 6.4.4.2 Initialize-spec-options 178 6.4.4.3 Test-spec 180 6.4.4.4 Advance-controlled-group 180 6.4.5 Ex
45、ecute-selection . 182 6.4.5.1 Test-when-enablement . 182 6.4.5.2 Test-when-matching . 183 6.4.6 Execute-if-statement 184 6.4.6.1 Estabiish-truth-value . 184 6.4.7 Execute-Cali-statement . 185 vii BSI BS*ISO/IEC 6522 92 Lb24bb9 0475095 254 9 ISO/IEC 6522:1992 (E) 6.4.7.1 Entry-references 185 6.4.7.1.
46、1 Evaluate-entry-reference 185 6.4.7.1.2 Establish-argument 186 6.4.8 Execute-goto-statement 187 6.4.8.1 Local-goto . 188 6.4.8.2 Trim-group-control 188 6.4.9 Execute-nuli-statement . 189 6.4.10 Execute-return-statement 189 6.4.1 1 Execute-end-statement 190 6.4.12 Execute-leave-statement . 191 6.5 C
47、onditions and Interrupts 191 6.5.1 Conditions 192 6.5.1.1 Raise-condition . 192 6.5.1.2 Test-enablement 192 6.5.1.3 Execute-signal-statement . 193 6.5.1.4 Evaluate-named-io-condition 194 6.5.2 Interrupts . 194 6.5.2.1 Execute-on-statement 194 6.5.2.2 Execute-revert-statement . 195 6.5.3 Interrupt 19
48、6 6.5.4 System-action 197 6.5.4.1 Comment . 197 7 . Storageand Assignment . 199 7.1 Introduction . 199 7.2 TheGeneration 200 7.2.1 The Number of Elements in the Storage-index-list of a Generation . 200 7.2.2 Correspondence between an Item-data-description and a Basic-value . 201 7.2.3 Value of a Gen
49、eration . 202 7.2.4 Value of Storage Index . 202 7.3 The Aiiocation of Storage 203 7.3.1 Execute-allocate-statement 203 7.3.2 Aiiocate-based-storage . 204 7.3.3 Evaluate-in-option 206 7.3.4 Aliocate 206 7.3.5 Evaluate-data-description-for-ailocation . 208 7.3.6 Find-directory-entry . 208 7.3.7 Make-allocation-unit 209 7.3.8 Initialize-refer-options . 210 7.3.9 Find-block-state-of-declaration 211 7.3.10 Construct-union-list 211 7.4 Initialization . 213 7.4.1 Initialize-generation . 213 7.4.2 Initialize-scalar-element 214 7.4.3 Initialize-array . 214 7.5 The Freei