CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf

上传人:吴艺期 文档编号:590941 上传时间:2018-12-15 格式:PDF 页数:462 大小:28.72MB
下载 相关 举报
CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf_第1页
第1页 / 共462页
CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf_第2页
第2页 / 共462页
CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf_第3页
第3页 / 共462页
CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf_第4页
第4页 / 共462页
CAN CSA-ISO IEC 6522-1996 Information technology - Programming languages - PL l general purpose subset.pdf_第5页
第5页 / 共462页
亲,该文档总共462页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、I N T E R N AT IO N A L STANDARD ISO/IEC 6522 Second edition 1 992-1 1-1 5 information technology - Programming languages - PLjl general purpose subset Technologies de 1 information - Langages de programmation - Sous-ensemble PLII pour usage g6neral National Standard of Canada CA N/CSA-ISO/IE C-6522

2、-96 International Standard ISO/IEC 6522 : 1992 has been adopted, without modification, as CAN/CSA-ISO/IEC-6522-96, which has been approved as a National Standard of Canada by the Standards Council of Canada. April 1996 Reference number ISO/I EC 6522:1992IE) ISOiIEC 6522:1992 (E) Contents 1 . Scopean

3、d Overviews . 1 1.1 Scope 1 1.2 Referenced Publications . 1 1.3 GoalsandRationale . 2 1.4 An Info.ma1 Guide to the PL/I Definition 3 1.4.1 A Summary of PL/I . 3 1.4.2 The Form of the Definition . 4 1.4.3 Summary of Chapter Structure . 6 1.4.4 Introduction to the Metalanguage 10 1.4.4.1 Tree Concepts

4、 10 1.4.4.2 Syntaxes . 11 1.4.4.3 Algorithm Concepts 12 1.5 Relationships between an Implementation and this Definition 14 1.5.1 Flexibilities of Interpretation . 15 1.5.1.1 Rejection of Programs . 15 1.5. I . 2 Quantitative Restrictions . 15 1.5.1.3 Addressing Restrictions 15 1.5. I . 4 Operating E

5、nvironment 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 Features 18 1.6 TheMetalanguage . 20 1.6.1 Trees . 21 1.6.1.1 Tree Definitions . 21 1.6.1.2 Node Objects .

6、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 Treecopies . 25 1.6.2 ProductionRules 25 1.6.2.1 Production Rules and Syntaxes 25 1.6.2.2 Complete and Partial Trees . 26 1.6.2.3 Syntactic

7、-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 to a Syntactic-expression 29 1.6.3 Operations . 30 1.6.3.3 Nature of an Operation 30 a ISOAEC 1992 All

8、 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 writing from the publisher . International Organization for Srandardization Case postale 56 CH-1211 Geneve 2

9、0 Switzerland ISOIIEC 6522:1992 (E) 1.6.3.2 Nondeterministic Operations 31 1.6.3.3 Format of an Operation . 31 1.6.3.4 Instructions . 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 Prope

10、rties of Arithmetic in PL/I . 35 1.6.4 TheProcessor . 36 1.6.5 Mechanization of the Metalanguage 37 1.7 Initialization of 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 Inter

11、pretation-phase 40 2 . ConcreteSyntax 41 2.1 Introduction 41 2.2 The Intent of this Definition . 41 2.2.1 Concrete and Abstract 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 Uni

12、t 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 OnWnit 44 2.4.10.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 Attribute

13、s . 45 2.4.11.3 Data Attributes . 45 2.4.1 1.4 Environment and Options . 46 2.4.11.5 Initial . 46 2.4.12 The Package Statement 46 2.4.13 The Procedure Statement . 46 2.4.14 The Begin Statement 47 2.4.15 The Do Statement 47 2.4.16 The Select Statement 47 2.4.17 The End Statement 47 2.4.18 Flow of Con

14、trol 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 Statement 48 2.4.18.4 The Null Statement 48 2.4.18.5 The Revert and Signal Statements . 48 . I11 ISWIEC 6522:1992 (E) 2.4.18.6 The Stop Statement 48 2.4.19 Storage Control Statements .

15、 48 2.4.20 Input/Output Statements . 49 2.4.20.1 The Open and Close Statements 49 2.4.20.2 Record 1/0 49 2.4.20.3 StrearnI/O 50 2.4.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

16、51 2.4.22 EnquiryFunctions 52 2.5 The Low-level Syntax of PL/I 57 2.5.1 PL/IText 57 2.5.2 Comment. 57 2.5.3 Identifier . 57 2.5.4 Arithmetic Constant 57 2.5.5 String Constants and Pictures 58 2.5.6 Include 58 2.6 Character Sets 59 2.6.1 Language Character Set . 60 2.6.1.1 Letters and Digits 60 2.6.1

17、.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 Abbreviations 62 . 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 V

18、ariable . 64 3.2.6 Data-description . 64 3.2.7 Data-type 65 3.2.8 Named-constant . 66 3.2.9 Entry-point . 66 3 -2.10 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 Stora

19、ge Statements 69 3.2.18 1/0 Statements . 69 3.2.19 Record 1/0 Statements 69 3.2.20 Stream I/O 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 ISOIIEC 6522:1992 (E) 4 . TheTranslator . 75 4.1 Introduction 75

20、 4.2 Translate 75 4.3 Forming the Translation Unit 76 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

21、 Construct-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.

22、5.3.4 Find-applicable-declaration . 89 4.5.3.5 Find-fully-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.5.5 Complete-con

23、structed-entry-declaration . 98 4.5.5.6 Test-name-in-description . 101 4.5.6 Validate-concrete-declarations . 101 4.5.6.1 Check-attribute-completeness-and-delete-attributes . 102 4.6 Create-abstract-equivalent-tree 103 4.6.1 Creation of Blocks and Groups 104 4.3.1 Low-level-parse . 77 4.6,l. 1 Creat

24、e-package . 104 4.6.1.2 Create-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-sel

25、ection 109 4.6.1.10 Create-executable-unit-list . 110 4.6.1.1 1 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-prefix-list . 112 4.6.1.15 Create-condition . 112 4.6.1.16 Test-descriptor-extent-expressions . 113 4.6.2 Creation

26、 of Statements . 113 4.6.2.1 Create-assignment-statement 113 4.6.2.2 Data-descriptions Proper for Assignment . 114 V ISOlIEC 6522:1992 (E) 4.6.2.3 Create-allocation 115 115 4.6.2.7 Create-freeing 115 4.6.2.4 Create-format-statement 114 4.6.2.5 Create-remote-format 4.6.2.6 Create-format-iteration . 4

27、.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-bound-pair-List 121 4

28、.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-initial . 126 4.6.3.10 Create-array-init . 127 4.6.3.1 1 Create-initial-element . 127 4.6.3.12 Create-integer . 128 4.6.3.13 Conv

29、ert-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.2 Apply-subscripts 138 4.6.5.3 Crea

30、te-value-reference . 1.39 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

31、.1 Create-numeric-picture . 145 4.6.7 Create-constant 147 4.6.8 Create-enquiry-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 Validate-automatic-declaration 152 4.7.3 Validate-based-declaration 153 4.7.

32、4 Validate-defined-declaration 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-restricted-expression . 155 4.7.9 Apply-constraints . 156 4.6.5.4 Trim-dd . 139 vi ISOlIEC 6522:1992 (E) 4.7.10 Test-constraints . 157 4.7.11

33、 Validate-leave-statements . 158 4.8 Validate-program . 159 4.8.1 Validate-external-declaration 159 4.8.2 Environment-names . 160 5 . ThePL/IInterpreter . 161 5.1 Introduction . 161 5.2 The Interpretation-state 161 5.2.1 Directories 161 5.2.2 BlockState 161 5.2.3 FileInformation 163 5.2.4 Storage an

34、d 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 5.3.2 5.4 The 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 Current . 166 Block 166 Interpret Operation and Interpretation State Initialization 166 Interpret 1

35、66 Initialize-interpretation-state 167 Build-file-directory-and-informations 167 Build-fdi 168 Allocate-static-storage-and-build-static-directory 168 Program-epilogue . 169 6 . FlowOfControl . 171 6.1 Introduction . 171 6.2 Program Activation and Termination 171 6.2.1 Program Termination 171 6.2.1.1

36、 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 Install-arguments 173 6.3.2 Activate-begin-block 173 6.3.4 Epilogue 175 6.4 Control within a Block . 175 6.4.1 Normal-sequence . 176 6.4.1.1 Advance-execution 176 6.

37、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 Execute-selection . 182 6.4.5.1 Test-when-enablernent . 182 6.4.5.2 Te

38、st-when-matching . 183 6.4.6 Execute-if-statement 184 6.4.6.1 Establish-truth-value . 184 6.4.7 Execute-call-statement . 185 6.3.3 Prologue 174 vii ISOIIEC 6522:1992 (E) 6.4.7.1 Entry-references . . . . . . . . . . . . . . - . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . .

39、 . . . . . 185 185 6.4.7.1.1 Evaluate-entry-reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.7.1.2 Establish-argument . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 187 6.4.8 Exe

40、cute-goto-statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , , . . . . . . . . . . . . . . . . . . . * . . . . 188 6.4.8. I Local-goto . - . . . . . . . . . . . . . . . . . . . . - . . - . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . , . . . . 188 189 6.4.9 Execut

41、e-null-statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . 189 6-4.10 Execute-return-statement . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . 6.4.11 Execute-end-statement . . . .

42、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 6.4.12 Execute-leave-statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . 19 1 191 6.5 Conditions and Interrupts . - . . . . . .

43、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 6.5.1 Conditions 192 6.5.1.1 Raise-condition . - . . . . . . . . . . . . - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 6.5.1.2 Test-enablement . . . . . . . .

44、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 6.5.1.3 Execute-signal-statement . . . . . . . - . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.1.4 Evaluate-named-io-condition . , . . . . . . I . . . . . .

45、. . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . 194 194 6.5.2 Interrupts . 6.5.2.1 Execute-on-statement . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 6.5.2.2 Execute-revert-statement . . . . . . . . . . . . . . - . .

46、 . . . . . . . . . . , . , . . . . . . . . . . . . . . . . , . . . 195 196 6.5.3 Interrupt ._,._.I.1_. 197 6.5.4 System-action 197 6.5.4.1 Comment . 6.4.8.2 Trim-oup-control - . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . 199 7. Storagean

47、dAssignment . 199 7.1 Introduction .*._. 200 7.2 TheGeneration 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 it Basic-value . . . . . . . . . . . . . . I . . . . . . 2

48、01 202 7.2.3 Value of a Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . . . . . . 7.2.4 Value of Storage Index . . . . , - . . . . - - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - . . . 202 7.3 The A

49、llocation of Storage . . . . . . . . . . - . . . . . . . . . . . . - . . . . . . . . . . - . . . . . . . . . . . . . . . . . . . . . . 203 203 7.3.1 Execute-allocate-statement . . . . . . . . . . . . . . . . . . , . . . . . . . , . . . . . . . . . . . . . . . . . . . , . . . . . . . 7.3.2 Allocate-based-storage . . . . . . . . . . . . . . . . . . . . . .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国际标准 > 其他

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1