1、| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BRITISH STANDARD BS ISO/IEC 13751:2001 Inc
2、orporating Corrigendum No. 1 ICS 35.060 NO COPYING WITHOUT BSI PERMISSION EXCEPT AS PERMITTED BY COPYRIGHT LAW Information technology Programming languages, their environments and system software interfaces Programming language Extended APLThis British Standard, having been prepared under the direct
3、ion of the DISC Board, was published under the authority of the Standards Committee and comes into effect on 15 March 2001 BSI 07-2001 ISBN 0 580 35576 6 BS ISO/IEC 13751:2001 Amendments issued since publication Amd. No. Date Comments 13320 Corrigendum No. 1 September 2001 Missing characters added N
4、ational foreword This British Standard reproduces verbatim ISO/IEC 13751:2001 and implements it as the UK national standard. The UK participation in its preparation was entrusted to Technical Committee IST/5, Programming languages, their environments and system software interfaces, which has the res
5、ponsibility to: aid enquirers to understand the text; present to the responsible international/European committee any enquiries on the interpretation, or proposals for change, and keep the UK interests informed; monitor related international and European developments and promulgate them in the UK. A
6、 list of organizations represented on this committee can be obtained on request to its secretary. Cross-references The British Standards which implement international publications referred to in this document may be found in the BSI Standards Catalogue under the section entitled “International Stand
7、ards Correspondence Index”, or by using the “Find” facility of the BSI Standards Electronic Catalogue. A British Standard does not purport to include all the necessary provisions of a contract. Users of British Standards are responsible for their correct application. Compliance with a British Standa
8、rd does not of itself confer immunity from legal obligations. Summary of pages This document comprises a front cover, an inside front cover, the ISO/IEC title page, pages ii to xiii, a blank page, pages 1 to 281 and a back cover. The BSI copyright notice displayed in this document indicates when the
9、 document was last issued.Reference number ISO/IEC 13751:2001(E) INTERNATIONAL STANDARD ISO/IEC 13751 First edition 2001-02-01 Information technology Programming languages, their environments and system software interfaces Programming language Extended APL Technologies de linformation Langages de pr
10、ogrammation, leurs environnements et interfaces logiciel systme Langage de programmation APL tenduISO/IEC 13751:2001(E) ii ISO/IEC 13751 : 2001 (E) Contents 1S c o p e 1 2 Normative References 2 3 Form of this International Standard 3 3.1 Form of Denitions 3 3.2 Named Arrays in Examples 4 3.3 Notes
11、5 3.4 Cross-References 5 3.5 General Denitions 5 4 Compliance 7 4.1 Conforming Implementations 7 4.1.1 Required Behaviour for Conforming Implementations 7 4.1.2 Required Documentation for Conforming Implementations 8 4.1.2.1 Documentation of Optional-Facilities 8 4.1.2.2 Documentation of Implementat
12、ion-Dened-Facilities 8 4.1.2.3 Consistent Extensions 9 4.2 Conforming Programs 9 4.2.1 Required Behaviour for Conforming Programs 9 4.2.2 Required Documentation for Conforming Programs 9 5 Denitions 11 5.1 Characters 11 5.2 Numbers 13 5.2.1 Elementary Operations 13 5.2.2 Number Constants 14 5.2.3 Su
13、bsets of the Set of Numbers 14 5.2.4 Implementation Algorithms 16 5.2.5 Dened Operations 18 5.3 Objects 20 5.3.1 Lists 20 5.3.2 Arrays 21 5.3.3 Dened-Functions 23 5.3.4 Tokens 25 iiiISO/IEC 13751 : 2001 (E) 5.3.4.1 Metaclasses 26 5.3.4.2 Index-List 29 5.3.5 Symbols 29 5.3.6 Contexts 29 5.3.7 Workspa
14、ces 30 5.3.8 Sessions 30 5.3.9 Shared-Variables 32 5.3.10 Systems 33 5.4 Evaluation Sequences 35 5.4.1 Evaluation Sequence Phrases 36 5.4.2 Diagrams 37 5.5 Other Terms 38 6 Syntax and Evaluation 39 6.1 Introduction 39 6.1.1 Evaluate-Line 39 6.1.2 Character-Diagrams 40 6.1.3 Evaluate-Statement 47 6.1
15、.4 Bind-Token-Class 49 6.1.5 Literal-Conversion 50 6.1.6 Statement-Analysis Token-Diagrams 50 6.2 Reduce-Statement 55 6.3 The Phrase Evaluators 60 6.3.1 Diagrams 60 6.3.2 Remove-Parentheses 60 6.3.3 Evaluate-Niladic-Function 60 6.3.4 Evaluate-Monadic-Function 61 6.3.5 Evaluate-Monadic-Operator 62 6.
16、3.6 Evaluate-Dyadic-Function 63 6.3.7 Evaluate-Dyadic-Operator 65 6.3.8 Evaluate-Indexed-Reference 66 6.3.9 Evaluate-Assignment 67 6.3.10 Evaluate-Indexed-Assignment 67 6.3.11 Evaluate-Variable 68 6.3.12 Build-Index-List 68 6.3.13 Process-End-of-Statement 69 6.4 The Form Table 70 7 Scalar Functions
17、75 7.1 Monadic Scalar Functions 76 7.1.1 Conjugate 76 7.1.2 Negative 76 7.1.3 Direction 77 7.1.4 Reciprocal 77 7.1.5 Floor 78 7.1.6 Ceiling 78 7.1.7 Exponential 79 iv ISO/IEC 13751 : 2001 (E) 7.1.8 Natural Logarithm 79 7.1.9 Magnitude 80 7.1.10 Factorial 81 7.1.11 Pi times 82 7.1.12 Not 83 7.2 Dyadi
18、c Scalar Functions 83 7.2.1 Plus 84 7.2.2 Minus 84 7.2.3 Times 85 7.2.4 Divide 85 7.2.5 Maximum 86 7.2.6 Minimum 86 7.2.7 Power 87 7.2.8 Logarithm 88 7.2.9 Residue 89 7.2.10 Binomial 90 7.2.11 Circular Functions 91 7.2.12 And/LCM 93 7.2.13 Or/GCD 94 7.2.14 Nand 94 7.2.15 Nor 95 7.2.16 Equal 96 7.2.1
19、7 Less than 97 7.2.18 Less than or equal to 98 7.2.19 Not equal 99 7.2.20 Greater than or equal to 100 7.2.21 Greater than 101 8 Structural Primitive Functions 102 8.1 Introduction 102 8.2 Monadic Structural Primitive Functions 102 8.2.1 Ravel 102 8.2.2 Shape 103 8.2.3 Index Generator 104 8.2.4 Tabl
20、e 105 8.2.5 Depth 106 8.2.6 Enlist 107 8.3 Dyadic Structural Primitive Functions 107 8.3.1 Reshape 107 8.3.2 Join 109 9 Operators 110 9.1 Introduction 110 9.2 Monadic Operators 110 9.2.1 Reduction 110 9.2.2 Scan 113 9.2.3 N-wise Reduction 115vISO/IEC 13751 : 2001 (E) 9.2.4 Duplicate 118 9.2.5 Commut
21、e 118 9.2.6 Each 119 9.3 Dyadic Operators 120 9.3.1 Outer Product 120 9.3.2 Inner Product 121 9.3.3 Rank operator denitions 123 9.3.4 Rank operator deriving monadic function 124 9.3.5 Rank operator deriving dyadic function 125 10 Mixed Functions 127 10.1 Monadic Mixed Functions 127 10.1.1 Roll 127 1
22、0.1.2 Grade Up 129 10.1.3 Grade Down 131 10.1.4 Reverse 132 10.1.5 Monadic Transpose 133 10.1.6 Matrix Inverse 134 10.1.7 Execute 135 10.1.8 Unique 136 10.1.9 First 137 10.2 Dyadic Mixed Functions 137 10.2.1 Join Along an Axis 137 10.2.2 Index of 140 10.2.3 Member of 141 10.2.4 Deal 142 10.2.5 Repli
23、cate 143 10.2.6 Expand 145 10.2.7 Rotate 147 10.2.8 Base Value 149 10.2.9 Representation 151 10.2.10 Dyadic Transpose 153 10.2.11 Take 155 10.2.12 Drop 156 10.2.13 Matrix Divide 157 10.2.14 Indexed Reference 158 10.2.15 Indexed Assignment 159 10.2.16 Without 161 10.2.17 Left 161 10.2.18 Right 162 10
24、.2.19 Character Grade Denitions 162 10.2.20 Character Grade Down 163 10.2.21 Character Grade Up 164 10.2.22 Pick 166 10.2.23 Identical 167 10.2.24 Disclose 168 10.2.25 Disclose with Axis 168 vi ISO/IEC 13751 : 2001 (E) 10.2.26 Enclose 169 10.2.27 Enclose with Axis 169 11 System Functions 170 11.1 In
25、troduction 170 11.2 Denitions 170 11.3 Diagram 171 11.4 Niladic System Functions 171 11.4.1 Time Stamp 171 11.4.2 Atomic Vector 172 11.4.3 Line Counter 172 11.4.4 Event Message 173 11.4.5 Event Type 174 11.5 Monadic System Functions 174 11.5.1 Delay 174 11.5.2 Name Class 175 11.5.3 Expunge 176 11.5.
26、4 Name List 177 11.5.5 Query Stop 178 11.5.6 Query Trace 179 11.5.7 Monadic Event Simulation 180 11.6 Dyadic System Functions 180 11.6.1 Name List 180 11.6.2 Set Stop 181 11.6.3 Set Trace 182 11.6.4 Execute Alternate 183 11.6.5 Dyadic Event Simulation 184 11.6.6 Transfer Form 185 12 System Variables
27、 186 12.1 Denitions 186 12.2 Evaluation Sequences 187 12.2.1 Comparison Tolerance 187 12.2.2 Random Link 188 12.2.3 Print Precision 189 12.2.4 Index Origin 190 12.2.5 Latent Expression 191 13 Dened Functions 192 13.1 Introduction 192 13.2 Denitions 192 13.3 Diagrams 196 13.4 Operations 200 13.4.1 Ca
28、ll-Dened-Function 200 13.4.2 Dened-Function-Control 202 13.4.3 Function Fix 203 13.4.4 Character Representation 204 13.5 Function Editing 204viiISO/IEC 13751 : 2001 (E) 13.5.1 Evaluate-Function-Denition-Request 204 13.5.2 Evaluate-Editing-Request 206 13.5.3 Diagrams 207 14 Shared Variables 210 14.1
29、Informal Introduction 210 14.2 Denitions 214 14.3 Diagrams 214 14.4 Operations 214 14.4.1 Primary-Name 214 14.4.2 Surrogate-Name 214 14.4.3 Degree-of-Coupling 215 14.4.4 Access-Control-Vector 215 14.4.5 Offer 215 14.4.6 Retract 216 14.4.7 Shared-Variable-Reset 216 14.4.8 Report-State 216 14.4.9 Signal-Event 217 14.4.10 Clear-Event 217 14.5 Shared Variable Forms 217 14.5.1 Shared Variable Reference 217 14.5.2 Shared Variable Assignment 218 14.5.3