| Preface | 6 |
---|
| Contents | 7 |
---|
| 1. Elementary PL/I | 13 |
---|
| 1.1 The programming environment | 13 |
| 1.2 Data attributes | 15 |
| 1.3 Loops | 27 |
| 1.4 Input and output | 30 |
| 1.5 Distinction of cases | 34 |
| 2. Extending the basics | 41 |
---|
| 2.1 Input and output of a character stream | 41 |
| 2.2 The general loop | 50 |
| 2.3 Arrays | 55 |
| 2.4 Structures | 62 |
| 2.5 Manipulation of character strings | 69 |
| 2.6 Arithmetic | 79 |
| 2.7 Manipulation of bit strings | 104 |
| 2.8 Abstract data types | 110 |
| 2.9 Time calculations | 115 |
| 3. Block and program structure | 120 |
---|
| 3.1 Scope and lifetime of variables | 120 |
| 3.2 Structure of a PL/I program | 124 |
| 3.3 Exceptional conditions | 147 |
| 4. Dynamic storage management | 167 |
---|
| 4.1 The CONTROLLED attribute | 167 |
| 4.2 The BASED attribute | 173 |
| 4.3 The AREA attribute | 186 |
| 4.4 Dynamics with structure types | 193 |
| 5. Use of files | 198 |
---|
| 5.1 PL/I files | 198 |
| 5.2 Input and output of records | 203 |
| 5.3 Special possibilities of input and output | 216 |
| 6. Special PL/I techniques | 223 |
---|
| 6.1 Array expressions | 223 |
| 6.2 Definition of variables | 227 |
| 6.3 Parallel processing | 232 |
| 6.4 Program generation at compile time | 240 |
| 7. Interfaces to the world | 250 |
---|
| 7.1 Low- level programming | 250 |
| 7.2 Manipulation of Wide Characters | 260 |
| 7.3 Using REXX Components | 263 |
| 7.4 Utilizing Java components | 267 |
| 7.5 CGI and XML | 274 |
| Appendix A: Solution ideas | 286 |
---|
| Appendix B: Built-in functions/subroutines | 290 |
---|
| Arithmetic | 290 |
| Array-handling | 290 |
| Buffer- management | 290 |
| Condition- handling | 291 |
| Date/time | 291 |
| Floating- point inquiry (constants) | 292 |
| Mathematical | 294 |
| Miscellaneous | 294 |
| Ordinal- handling | 295 |
| Precision-handling | 295 |
| Pseudovariables | 296 |
| Storage control | 296 |
| String- handling | 297 |
| Subroutines | 298 |
| Type functions | 299 |
| Preprocessor | 299 |
| Index | 301 |