PSL Manual 7 February 1983 page i
Table of Contents
TABLE OF CONTENTS
TABLE OF CONTENTS
TABLE OF CONTENTS
CHAPTER 1. INTRODUCTION
CHAPTER 1. INTRODUCTION
CHAPTER 1. INTRODUCTION
1.1. Opening Remarks . . . . . . . . . . . . . . 1.1
1.2. Scope of the Manual . . . . . . . . . . . . . 1.2
1.2.1. Typographic Conventions within the Manual . . . 1.2
1.2.2. The Organization of the Manual . . . . . . . 1.3
CHAPTER 2. GETTING STARTED WITH PSL
CHAPTER 2. GETTING STARTED WITH PSL
CHAPTER 2. GETTING STARTED WITH PSL
2.1. Purpose of This Chapter. . . . . . . . . . . . 2.1
2.2. Defining Logical Device Names for PSL . . . . . . . 2.1
2.2.1. DEC-20 . . . . . . . . . . . . . . . 2.2
2.2.2. VAX . . . . . . . . . . . . . . . . 2.2
2.3. Starting PSL . . . . . . . . . . . . . . . 2.3
2.3.1. DEC-20 . . . . . . . . . . . . . . . 2.3
2.3.2. VAX . . . . . . . . . . . . . . . . 2.3
2.4. Running the PSL System . . . . . . . . . . . . 2.4
2.4.1. Loading Optional Modules . . . . . . . . . 2.4
2.4.2. Notes on Running PSL and RLISP . . . . . . . 2.4
2.4.3. Transcript of a Short Session with PSL . . . . 2.5
2.5. Error and Warning Messages. . . . . . . . . . . 2.8
2.6. Compilation Versus Interpretation . . . . . . . . 2.8
2.7. Function Types. . . . . . . . . . . . . . . 2.9
2.8. Switches and Globals. . . . . . . . . . . . . 2.10
2.9. Reporting Errors and Misfeatures. . . . . . . . . 2.10
CHAPTER 3. RLISP SYNTAX
CHAPTER 3. RLISP SYNTAX
CHAPTER 3. RLISP SYNTAX
3.1. Motivation for RLISP Interface to PSL . . . . . . . 3.1
3.2. An Introduction to RLISP . . . . . . . . . . . 3.2
3.2.1. LISP equivalents of some RLISP constructs . . . 3.2
3.3. An Overview of RLISP and LISP Syntax Correspondence . . 3.3
3.3.1. Function Call Syntax in RLISP and LISP . . . . 3.3
...
3.3.2. RLISP Infix Operators and Associated LISP Functions....3.4
3.3.3. Differences between Parse and Read. . . . . . 3.6
3.3.4. Procedure Definition . . . . . . . . . . 3.6
3.3.5. Compound Statement Grouping . . . . . . . . 3.7
3.3.6. Blocks with Local Variables . . . . . . . . 3.7
PSL Manual 7 February 1983 page ii
Table of Contents
3.3.7. The If Then Else Statement . . . . . . . . 3.8
3.4. Looping Statements . . . . . . . . . . . . . 3.8
3.4.1. While Loop. . . . . . . . . . . . . . 3.8
3.4.2. Repeat Loop . . . . . . . . . . . . . 3.8
3.4.3. For Each Loop. . . . . . . . . . . . . 3.8
3.4.4. For Loop . . . . . . . . . . . . . . 3.9
3.4.5. Loop Examples. . . . . . . . . . . . . 3.9
3.5. Switch Syntax . . . . . . . . . . . . . . . 3.10
3.6. RLISP I/O Syntax . . . . . . . . . . . . . . 3.10
3.7. Transcript of a Short Session with RLISP . . . . . . 3.10
CHAPTER 4. DATA TYPES
CHAPTER 4. DATA TYPES
CHAPTER 4. DATA TYPES
4.1. Data Types and Structures Supported in PSL . . . . . 4.1
4.1.1. Data Types. . . . . . . . . . . . . . 4.1
4.1.2. Other Notational Conventions. . . . . . . . 4.3
4.1.3. Structures. . . . . . . . . . . . . . 4.4
4.2. Predicates Useful with Data Types . . . . . . . . 4.5
4.2.1. Functions for Testing Equality . . . . . . . 4.5
4.2.2. Predicates for Testing the Type of an Object . . 4.7
4.2.3. Boolean Functions . . . . . . . . . . . 4.8
4.3. Converting Data Types . . . . . . . . . . . . 4.9
CHAPTER 5. NUMBERS AND ARITHMETIC FUNCTIONS
CHAPTER 5. NUMBERS AND ARITHMETIC FUNCTIONS
CHAPTER 5. NUMBERS AND ARITHMETIC FUNCTIONS
5.1. Big Integers . . . . . . . . . . . . . . . 5.1
5.2. Conversion Between Integers and Floats. . . . . . . 5.1
5.3. Arithmetic Functions. . . . . . . . . . . . . 5.2
5.4. Functions for Numeric Comparison. . . . . . . . . 5.5
5.5. Bit Operations. . . . . . . . . . . . . . . 5.7
5.6. Various Mathematical Functions . . . . . . . . . 5.8
CHAPTER 6. IDENTIFIERS
CHAPTER 6. IDENTIFIERS
CHAPTER 6. IDENTIFIERS
6.1. Introduction . . . . . . . . . . . . . . . 6.1
6.2. Fields of Ids . . . . . . . . . . . . . . . 6.2
6.3. Identifiers and the Id hash table . . . . . . . . 6.2
6.3.1. Identifier Functions . . . . . . . . . . 6.3
6.3.2. Find. . . . . . . . . . . . . . . . 6.4
6.4. Property List Functions. . . . . . . . . . . . 6.4
6.4.1. Functions for Flagging Ids . . . . . . . . 6.6
6.4.2. Direct Access to the Property Cell. . . . . . 6.7
6.5. Value Cell Functions. . . . . . . . . . . . . 6.7
6.6. Package System Functions . . . . . . . . . . . 6.10
6.7. System Global Variables, Switches and Other "Hooks" . . 6.13
6.7.1. Introduction . . . . . . . . . . . . . 6.13
PSL Manual 7 February 1983 page iii
Table of Contents
6.7.2. Setting Switches. . . . . . . . . . . . 6.14
6.7.3. Special Global Variables . . . . . . . . . 6.15
6.7.4. Special Put Indicators. . . . . . . . . . 6.15
6.7.5. Special Flag Indicators . . . . . . . . . 6.16
6.7.6. Displaying Information About Globals . . . . . 6.16
CHAPTER 7. LIST STRUCTURE
CHAPTER 7. LIST STRUCTURE
CHAPTER 7. LIST STRUCTURE
7.1. Introduction to Lists and Pairs . . . . . . . . . 7.1
7.2. Basic Functions on Pairs . . . . . . . . . . . 7.2
7.3. Functions for Manipulating Lists. . . . . . . . . 7.4
7.3.1. Selecting List Elements . . . . . . . . . 7.4
7.3.2. Membership and Length of Lists . . . . . . . 7.6
7.3.3. Constructing, Appending, and Concatenating Lists . 7.6
7.3.4. Lists as Sets. . . . . . . . . . . . . 7.7
7.3.5. Deleting Elements of Lists . . . . . . . . 7.8
7.3.6. List Reversal. . . . . . . . . . . . . 7.9
7.4. Functions for Building and Searching A-Lists. . . . . 7.10
7.5. Substitutions . . . . . . . . . . . . . . . 7.11
CHAPTER 8. STRINGS AND VECTORS
CHAPTER 8. STRINGS AND VECTORS
CHAPTER 8. STRINGS AND VECTORS
8.1. Vector-Like Objects . . . . . . . . . . . . . 8.1
8.2. Strings . . . . . . . . . . . . . . . . . 8.1
8.3. Vectors . . . . . . . . . . . . . . . . . 8.3
8.4. Word Vectors . . . . . . . . . . . . . . . 8.5
8.5. General X-Vector Operations . . . . . . . . . . 8.5
8.6. Arrays . . . . . . . . . . . . . . . . . 8.7
8.7. Common LISP String Functions . . . . . . . . . . 8.7
CHAPTER 9. FLOW OF CONTROL
CHAPTER 9. FLOW OF CONTROL
CHAPTER 9. FLOW OF CONTROL
9.1. Introduction . . . . . . . . . . . . . . . 9.1
9.2. Conditionals . . . . . . . . . . . . . . . 9.1
9.2.1. Conds and Ifs. . . . . . . . . . . . . 9.1
9.2.2. The Case Statement . . . . . . . . . . . 9.3
9.3. Sequencing Evaluation . . . . . . . . . . . . 9.4
9.4. Iteration . . . . . . . . . . . . . . . . 9.6
9.4.1. For . . . . . . . . . . . . . . . . 9.8
9.4.2. Mapping Functions . . . . . . . . . . . 9.13
9.4.3. Do . . . . . . . . . . . . . . . . 9.15
9.5. Non-Local Exits . . . . . . . . . . . . . . 9.17
PSL Manual 7 February 1983 page iv
Table of Contents
CHAPTER 10. FUNCTION DEFINITION AND BINDING
CHAPTER 10. FUNCTION DEFINITION AND BINDING
CHAPTER 10. FUNCTION DEFINITION AND BINDING
10.1. Function Definition in PSL . . . . . . . . . . 10.1
10.1.1. Notes on Code Pointers . . . . . . . . . 10.1
10.1.2. Functions Useful in Function Definition. . . . 10.2
10.1.3. Function Definition in LISP Syntax . . . . . 10.4
10.1.4. Function Definition in RLISP Syntax . . . . . 10.5
10.1.5. Low Level Function Definition Primitives . . . 10.6
10.1.6. Function Type Predicates. . . . . . . . . 10.7
10.2. Variables and Bindings. . . . . . . . . . . . 10.7
10.2.1. Binding Type Declaration. . . . . . . . . 10.8
10.2.2. Binding Type Predicates . . . . . . . . . 10.9
10.3. User Binding Functions. . . . . . . . . . . . 10.9
10.3.1. Funargs, Closures and Environments . . . . . 10.10
CHAPTER 11. THE INTERPRETER
CHAPTER 11. THE INTERPRETER
CHAPTER 11. THE INTERPRETER
11.1. Evaluator Functions Eval and Apply. . . . . . . . 11.1
11.2. Support Functions for Eval and Apply . . . . . . . 11.5
11.3. Special Evaluator Functions, Quote, and Function . . . 11.6
11.4. Support Functions for Macro Evaluation . . . . . . 11.7
CHAPTER 12. INPUT AND OUTPUT
CHAPTER 12. INPUT AND OUTPUT
CHAPTER 12. INPUT AND OUTPUT
12.1. Introduction . . . . . . . . . . . . . . . 12.1
12.2. The Underlying Primitives for Input and Output. . . . 12.1
12.3. Opening, Closing, and Selecting Channels. . . . . . 12.4
12.4. Functions for Printing. . . . . . . . . . . . 12.6
12.5. Functions for Reading . . . . . . . . . . . . 12.13
12.5.1. Reading S-Expression . . . . . . . . . . 12.13
12.5.2. Reading Files into PSL . . . . . . . . . 12.14
12.5.3. Reading Single Characters . . . . . . . . 12.15
12.5.4. Reading Tokens . . . . . . . . . . . . 12.16
12.5.5. Read Macros . . . . . . . . . . . . . 12.24
12.6. Scan Table Utility Functions. . . . . . . . . . 12.25
12.7. I/O to and from Lists and Strings . . . . . . . . 12.25
12.8. Example of Simple I/O in PSL. . . . . . . . . . 12.27
CHAPTER 13. USER INTERFACE
CHAPTER 13. USER INTERFACE
CHAPTER 13. USER INTERFACE
13.1. Introduction . . . . . . . . . . . . . . . 13.1
13.2. Stopping PSL and Saving a New Executable Core Image . . 13.1
13.3. Init Files. . . . . . . . . . . . . . . . 13.3
13.4. Changing the Default Top Level Function . . . . . . 13.3
13.5. The General Purpose Top Loop Function. . . . . . . 13.4
PSL Manual 7 February 1983 page v
Table of Contents
13.6. The HELP Mechanism . . . . . . . . . . . . . 13.7
13.7. The Break Loop . . . . . . . . . . . . . . 13.8
13.8. Terminal Interaction Commands in RLISP . . . . . . 13.8
CHAPTER 14. ERROR HANDLING
CHAPTER 14. ERROR HANDLING
CHAPTER 14. ERROR HANDLING
14.1. Introduction . . . . . . . . . . . . . . . 14.1
14.2. The Basic Error Functions. . . . . . . . . . . 14.1
14.3. Break Loop. . . . . . . . . . . . . . . . 14.4
14.4. Interrupt Keys . . . . . . . . . . . . . . 14.8
14.5. Details on the Break Loop. . . . . . . . . . . 14.8
14.6. Some Convenient Error Calls . . . . . . . . . . 14.8
14.7. Special Purpose Error Handlers . . . . . . . . . 14.10
CHAPTER 15. DEBUGGING TOOLS
CHAPTER 15. DEBUGGING TOOLS
CHAPTER 15. DEBUGGING TOOLS
15.1. Introduction . . . . . . . . . . . . . . . 15.1
15.1.1. Brief Summary of Full Debug Package . . . . . 15.1
15.1.2. Mini-Trace Facility . . . . . . . . . . 15.2
15.1.3. Step . . . . . . . . . . . . . . . 15.3
....
15.1.4. Functions Which Depend on Redefining User Functions..15.4
15.1.5. A Few Known Deficiencies. . . . . . . . . 15.4
15.2. Tracing Function Execution . . . . . . . . . . 15.5
15.2.1. Tracing Functions . . . . . . . . . . . 15.5
15.2.2. Saving Trace Output . . . . . . . . . . 15.6
15.2.3. Making Tracing More Selective . . . . . . . 15.7
15.2.4. Turning Off Tracing . . . . . . . . . . 15.8
15.2.5. Enabling Debug Facilities and Automatic Tracing . 15.9
15.3. A Heavy Handed Backtrace Facility . . . . . . . . 15.10
15.4. Embedded Functions . . . . . . . . . . . . . 15.11
15.5. Counting Function Invocations . . . . . . . . . 15.11
15.6. Stubs . . . . . . . . . . . . . . . . . 15.12
15.7. Functions for Printing Useful Information . . . . . 15.12
15.8. Printing Circular and Shared Structures . . . . . . 15.13
15.9. Internals and Customization . . . . . . . . . . 15.14
15.9.1. User Hooks . . . . . . . . . . . . . 15.14
15.9.2. Functions Used for Printing/Reading . . . . . 15.15
15.10. Example . . . . . . . . . . . . . . . . 15.16
CHAPTER 16. EDITORS
CHAPTER 16. EDITORS
CHAPTER 16. EDITORS
16.1. A Mini Structure-Editor . . . . . . . . . . . 16.1
16.2. The EMODE Screen Editor . . . . . . . . . . . 16.3
16.2.1. Windows and Buffers in Emode . . . . . . . 16.5
16.3. Introduction to the Full Structure Editor . . . . . 16.5
PSL Manual 7 February 1983 page vi
Table of Contents
16.3.1. Starting the Structure Editor . . . . . . . 16.6
16.3.2. Structure Editor Commands . . . . . . . . 16.7
CHAPTER 17. MISCELLANEOUS UTILITIES
CHAPTER 17. MISCELLANEOUS UTILITIES
CHAPTER 17. MISCELLANEOUS UTILITIES
17.1. Introduction . . . . . . . . . . . . . . . 17.1
17.2. RCREF - Cross Reference Generator for PSL Files . . . 17.1
17.2.1. Restrictions. . . . . . . . . . . . . 17.2
17.2.2. Usage . . . . . . . . . . . . . . . 17.3
17.2.3. Options . . . . . . . . . . . . . . 17.3
17.3. Picture RLISP. . . . . . . . . . . . . . . 17.4
17.4. Tools for Defining Macros. . . . . . . . . . . 17.11
17.4.1. DefMacro . . . . . . . . . . . . . . 17.12
17.4.2. BackQuote. . . . . . . . . . . . . . 17.12
17.4.3. Sharp-Sign Macros . . . . . . . . . . . 17.13
17.4.4. MacroExpand . . . . . . . . . . . . . 17.14
17.4.5. DefLambda. . . . . . . . . . . . . . 17.14
17.5. Simulating a Stack . . . . . . . . . . . . . 17.14
17.6. DefStruct . . . . . . . . . . . . . . . . 17.15
17.6.1. Options . . . . . . . . . . . . . . 17.17
17.6.2. Slot Options. . . . . . . . . . . . . 17.18
17.6.3. A Simple Example . . . . . . . . . . . 17.18
17.7. DefConst . . . . . . . . . . . . . . . . 17.22
17.8. Functions for Sorting . . . . . . . . . . . . 17.22
17.9. Hashing Cons . . . . . . . . . . . . . . . 17.24
17.10. Graph-to-Tree . . . . . . . . . . . . . . 17.25
17.11. Inspect Utility. . . . . . . . . . . . . . 17.26
CHAPTER 18. LOADER AND COMPILER
CHAPTER 18. LOADER AND COMPILER
CHAPTER 18. LOADER AND COMPILER
18.1. Introduction . . . . . . . . . . . . . . . 18.1
18.2. The Compiler . . . . . . . . . . . . . . . 18.1
18.2.1. Compiling Functions into Memory . . . . . . 18.2
18.2.2. Compiling Functions into FASL Files . . . . . 18.2
18.2.3. Loading FASL Files. . . . . . . . . . . 18.3
18.2.4. Functions to Control the Time When Something is Done 18.4
.
18.2.5. Order of Functions for Compilation . . . . . 18.5
18.2.6. Fluid and Global Declarations . . . . . . . 18.5
18.2.7. Switches Controlling Compiler . . . . . . . 18.6
18.2.8. Differences between Compiled and Interpreted Code 18.7
18.2.9. Compiler Errors. . . . . . . . . . . . 18.8
18.3. The Loader. . . . . . . . . . . . . . . . 18.9
18.3.1. Legal LAP Format and Pseudos . . . . . . . 18.10
18.3.2. Examples of LAP for DEC-20, VAX and Apollo. . . 18.10
18.3.3. Lap Switches. . . . . . . . . . . . . 18.13
18.4. Structure and Customization of the Compiler. . . . . 18.14
18.5. First PASS of Compiler. . . . . . . . . . . . 18.14
PSL Manual 7 February 1983 page vii
Table of Contents
18.5.1. Tagging Information . . . . . . . . . . 18.15
18.5.2. Source to Source Transformations . . . . . . 18.15
18.6. Second PASS - Basic Code Generation . . . . . . . 18.15
18.6.1. The Cmacros . . . . . . . . . . . . . 18.15
18.6.2. Classes of Functions . . . . . . . . . . 18.18
18.6.3. Open Functions . . . . . . . . . . . . 18.18
18.7. Third PASS - Optimizations . . . . . . . . . . 18.22
18.8. Some Structural Notes on the Compiler. . . . . . . 18.23
CHAPTER 19. OPERATING SYSTEM INTERFACE
CHAPTER 19. OPERATING SYSTEM INTERFACE
CHAPTER 19. OPERATING SYSTEM INTERFACE
19.1. Introduction . . . . . . . . . . . . . . . 19.1
19.2. System Dependent Functions . . . . . . . . . . 19.1
19.3. TOPS-20 Interface . . . . . . . . . . . . . 19.2
19.3.1. User Level Interface . . . . . . . . . . 19.2
19.3.2. The Basic Fork Manipulation Functions . . . . 19.4
19.3.3. File Manipulation Functions. . . . . . . . 19.5
19.3.4. Miscellaneous Functions . . . . . . . . . 19.6
19.3.5. Jsys Interface . . . . . . . . . . . . 19.6
19.3.6. Bit, Word and Address Operations for Jsys Calls . 19.8
19.3.7. Examples . . . . . . . . . . . . . . 19.9
19.4. New Vax Specific Interface . . . . . . . . . . 19.10
19.4.1. Setting Your .LOGIN and .CSHRC files. . . . . 19.10
19.4.2. Important PSL executables . . . . . . . . 19.11
19.4.3. Creating the Init Files . . . . . . . . . 19.11
19.4.4. Directories and Symbols . . . . . . . . 19.11
19.4.5. Miscellaneous Unix Interface Functions . . . 19.14
19.4.6. Oload . . . . . . . . . . . . . . 19.14
19.4.7. Calling oloaded functions . . . . . . . . 19.15
19.4.8. OLOAD Internals. . . . . . . . . . . . 19.16
19.4.9. I/O Control functions . . . . . . . . . 19.17
19.5. Apollo System Calls. . . . . . . . . . . . . 19.18
CHAPTER 20. SYSLISP
CHAPTER 20. SYSLISP
CHAPTER 20. SYSLISP
20.1. Introduction to the SYSLISP level of PSL. . . . . . 20.1
20.2. The Relationship of SYSLISP to RLISP . . . . . . . 20.2
20.2.1. SYSLISP Declarations . . . . . . . . . . 20.2
20.2.2. SYSLISP Mode Analysis. . . . . . . . . . 20.3
20.2.3. Defining Special Functions for Mode Analysis . . 20.3
20.2.4. Modified FOR Loop . . . . . . . . . . . 20.4
20.2.5. Char and IDLOC Macros. . . . . . . . . . 20.4
20.2.6. The Case Statement. . . . . . . . . . . 20.5
20.2.7. Memory Access and Address Operations. . . . . 20.7
20.2.8. Bit-Field Operation . . . . . . . . . . 20.7
20.3. Using SYSLISP. . . . . . . . . . . . . . . 20.9
20.3.1. To Compile SYSLISP Code . . . . . . . . . 20.9
20.4. SYSLISP Functions . . . . . . . . . . . . . 20.10
PSL Manual 7 February 1983 page viii
Table of Contents
20.4.1. W-Arrays . . . . . . . . . . . . . . 20.11
20.5. Remaining SYSLISP Issues . . . . . . . . . . . 20.11
20.5.1. Stand Alone SYSLISP Programs . . . . . . . 20.11
20.5.2. Need for Two Stacks . . . . . . . . . . 20.12
20.5.3. New Mode System. . . . . . . . . . . . 20.12
20.5.4. Extend CREF for SYSLISP . . . . . . . . . 20.12
CHAPTER 21. IMPLEMENTATION
CHAPTER 21. IMPLEMENTATION
CHAPTER 21. IMPLEMENTATION
21.1. Overview of the Implementation . . . . . . . . . 21.1
21.2. Files of Interest . . . . . . . . . . . . . 21.1
21.3. Building PSL on the DEC-20 . . . . . . . . . . 21.2
21.4. Building the LAP to Assembly Translator . . . . . . 21.5
21.5. The Garbage Collectors and Allocators. . . . . . . 21.5
21.5.1. Compacting Garbage Collector on DEC-20 . . . . 21.5
21.5.2. Two-Space Stop and Copy Collector on VAX . . . 21.6
21.6. The HEAPs . . . . . . . . . . . . . . . . 21.6
21.7. Allocation Functions . . . . . . . . . . . . 21.8
CHAPTER 22. PARSER TOOLS
CHAPTER 22. PARSER TOOLS
CHAPTER 22. PARSER TOOLS
22.1. Introduction . . . . . . . . . . . . . . . 22.1
22.2. The Table Driven Parser . . . . . . . . . . . 22.2
22.2.1. Flow Diagram for the Parser. . . . . . . . 22.2
22.2.2. Associating the Infix Operator with a Function . 22.4
22.2.3. Precedences . . . . . . . . . . . . . 22.5
22.2.4. Special Cases of 0 <-0 and 0 0. . . . . . . 22.5
22.2.5. Parenthesized Expressions . . . . . . . . 22.5
22.2.6. Binary Operators in General. . . . . . . . 22.6
22.2.7. Assigning Precedences to Key Words . . . . . 22.7
22.2.8. Error Handling . . . . . . . . . . . . 22.7
22.2.9. The Parser Program for the RLISP Language . . . 22.7
22.2.10. Defining Operators . . . . . . . . . . 22.8
22.3. The MINI Translator Writing System. . . . . . . . 22.10
22.3.1. A Brief Guide to MINI. . . . . . . . . . 22.10
22.3.2. Pattern Matching Rules . . . . . . . . . 22.12
22.3.3. A Small Example. . . . . . . . . . . . 22.12
22.3.4. Loading Mini. . . . . . . . . . . . . 22.12
22.3.5. Running Mini. . . . . . . . . . . . . 22.13
22.3.6. MINI Error messages and Error Recovery . . . . 22.13
22.3.7. MINI Self-Definition . . . . . . . . . . 22.13
22.3.8. The Construction of MINI. . . . . . . . . 22.15
22.3.9. History of MINI Development. . . . . . . . 22.16
22.4. BNF Description of RLISP Using MINI . . . . . . . 22.17
PSL Manual 7 February 1983 page ix
Table of Contents
CHAPTER 23. BIBLIOGRAPHY
CHAPTER 23. BIBLIOGRAPHY
CHAPTER 23. BIBLIOGRAPHY
CHAPTER 24. INDEX OF CONCEPTS
CHAPTER 24. INDEX OF CONCEPTS
CHAPTER 24. INDEX OF CONCEPTS
CHAPTER 25. INDEX OF FUNCTIONS
CHAPTER 25. INDEX OF FUNCTIONS
CHAPTER 25. INDEX OF FUNCTIONS
CHAPTER 26. INDEX OF GLOBALS AND SWITCHES
CHAPTER 26. INDEX OF GLOBALS AND SWITCHES
CHAPTER 26. INDEX OF GLOBALS AND SWITCHES