Programming in REXX
Here's a flattering, third-party review of the book from the
online EDM/2 magazine.
We think this is the best available in-depth, platform-independent
exposition of the REXX programming language. Unlike reference manuals
that define REXX (and Mike Cowlishaw's The REXX Language is very
good in this regard), Programming in REXX
has extensive explanation and motivation of the features of the language.
The book covers all language details with concise examples and practical
guidelines on how to write efficient, robust programs with any
implementation of REXX. For example, there is a whole chapter that
demystifies the many advanced capabilities of the PARSE instruction.
Another chapter fully explains the REXX I/O model and supporting
built-in functions. Other chapters go into character string handling,
exception handling, and the INTERPRET instruction.
Programming in REXX compares and contrasts REXX with other languages.
It goes on to explore the most important REXX language idioms, instructions,
and features; methods for facilitating program portability; tactics for
debugging programs; and scores of other timesaving programming tips.
The book also points out current weaknesses of the language, and how to
work around them.
The author is the developer of Personal REXX, which was the first
commercial implementation of REXX outside of IBM.
Programming in REXX is priced at US$49 and is available directly
from Quercus Systems.
Contents:
1. Introduction
- What REXX is
- The Application Programming Interface
- What's in This Book
- The REXX Standardization Process
- Getting Started
2. Language Overview
- Getting Started
- Putting the Elements Together
- Program Structure
- The REXX Data Model
- Scope of Variables
- String Manipulation and Parsing
- Other Features of REXX
3. Program Structure and Syntax
- Program Format
- Clauses and Statements
- More about Clauses
- Tokenization of Statements
- REXX Expressions
- Clause Type Recognition Rules
- Character String Operators
- Arithmetic Operators
- Logical Operators
- Operator Precedence
- Numbers and Arithmetic in REXX
- REXX Variables
4. Control Structures
- Selection Structures
- Looping Structures
- The SIGNAL Instruction
5. Subroutines and Functions
- Built-in, Internal, and External Procedures
- Passing Arguments and Returning Values
- Scope of Variables
- Execution State Preserved around Procedure Calls
6. Commands to External Environments
- The ADDRESS Instruction
- Command Return Codes
7. Character String Handling
- String Handling Built-in Functions
- String-oriented Functions
- Word-oriented Functions
- Other String Manipulation Functions
8. The PARSE Instruction
- Sources of Input to PARSE
- PARSE Templates: Simplest Case
- Pattern Matching in Templates
- Positional Patterns in Templates
- Variable Patterns
- Parsing Procedure Arguments
- PARSE in Relation to Other Forms of String Manipulation
- Practical Examples of Parsing
9. Input and Output
- Character-oriented vs. Line-oriented I/O
- Opening a File
- File Read/Write Pointers
- Closing a File
- Line-oriented File I/O Functions
- Character-oriented File I/O Functions
- Communication with the User
- Example: Binary Search of Sorted Files
- Example: Making a File Index
- Example: Writing "Filters" in REXX
10. The External Data Queue
- Usage of the Queue
- Relation of the External Data Queue and the Standard Input Stream
- Relation of the External Data Queue and the Operating System
11. Exception Handling
- Enabling and Disabling Condition Handling
- Using Type 1 Condition Handlers
- Using Type 2 Condition Handlers
- The Condition() Function
12. The INTERPRET Instruction
- Rules for INTERPRET
- Examples of INTERPRET Usage
13. REXX Arithmetic
- Precision of Arithmetic
- Arithmetic Operations
- Exponential Representation
- Whole Numbers
- Arguments to Built-in Functions
- Built-in Functions for Numeric Formatting and Arithmetic
- Additional Mathematical Functions
14. Tracing and Debugging
- The TRACE Instruction
- Passive Tracing
- Interactive Tracing
Back to Quercus Systems home page
Copyright © 1995-7 by Quercus Systems, All Rights Reserved
Last updated: January 20, 1997