Kilowatt Software L.L.C.
Welcome to
Kilowatt Software L.L.C.'s
Rexx Language Interpreter
for Microsoft® Windows® environments

for a detailed summary of the
roo!™ and a lot more !


Click here
to download roo!™

roo!™ is a new object-oriented programming language, that is characterized by the simplicity and dynamism of Classic Rexx. The language includes the usual object-oriented suspects -- abstraction, information hiding, class inheritance and derivation, method overriding, and polymorphism. Many NetRexx innovations are included. A variety of commonly used classes are built-in within the language's execution environment. Classic Rexx programs can be executed directly, without modification. In addition, a roo!™ dynamic link library (DLL) is provided, which enables cooperative processing with programs written in C/C++ or Java programming languages.

Click here for a detailed summary of roo!™

Click here to view a presentation describing object-oriented programming and the roo!™ programming language.

Click here to review the complete roo!™ language specification.

 All Classic Rexx capabilities
  • All statement types
  • All built-in functions
  • All operators
  • Win32 command initiation
  • Arbitrary precision arithmetic
  • Excellent text parsing capabilities
  • Excellent string composition
  • Natural hexadecimal and binary literals
  • Integrated trace facility
  • Condition handling
 roo!™ is object-oriented !
 Numerous built-in classes
List, bit vector, wide-character vector (UNICODE), tree, map, set, generalized aggregate, high precision math, trigonometry, etc.
Pattern matching using regular expressions too !!

 No compilation -- just edit, then run !
Programs are dynamically interpreted,
not compiled and linked.
 Designed for program readability
by people, not machines !
 Natural data typing
No declarations !
 Excellent text transformations
roo!™ will be your 1st choice for many text file transformations.
 Few implementation limits
roo!™ uses extensive Win32 memory limits
 Easy to understand error messages
 An easy language to learn.
It's excellent for students who have never developed object-oriented programs before.
Or, you can learn to write Classic Rexx programs with r4™, and then shift to the object-oriented capabilities of roo!™ when you're ready for more.
Source file conversion to binary ice files
You can chill your programs. This allows you to send your chilled roo!™ programs to others, without allowing them to see your source code !
In addition, there is an alternate executable module named: rooChilledOnly.exe. You can distribute chilled files and rooChilledOnly.exe to other users, who have not purchased a product license.
 Includes roo!™ DLL module
You can interact with roo!™ capabilities from C/C++ programs!
You can use all built-in functions and built-in classes too!
 Supports Java native interface (JNI) invocations
You can interact with roo!™ capabilities from Java programs!
You can use all built-in functions and built-in classes too!
 Superior to batch scripts
  • Excellent control flow capabilities
  • IF..THEN..ELSE, DO loops, SELECT cases
  • Function calls
 Includes TopHat™ and other supportive GUI programs, that execute as commands. These additional programs provide the following capabilities:
FILEDLG — File selection dialog
MSGBOX — Messages
PROMPT — Prompts for user responses
PICKLIST — Selection lists
TopHat™ — Fill-in-the-blank forms
 Numerous examples
Disk space utilization, XML processing, full moons, CSV to XML conversion, C/C++ DLL interfacing, TCP/IP socket communication, etc.
 Many math solutions :
matrix algebra, polynomial multiplication, linear programming, simultaneous equation solutions, polynomial roots, quadratic formula, eigen values, sine, cosine, tangent, arcTangent, hyperbolicCosecant, graphing, and more.
 roo!™ operates as a standard command
in Windows 98/ME/NT/2000/XP environments

Language Objectives

Provide object-oriented capabilities





Ability to interpret Classic Rexx programs without modification.

    all Classic Rexx instructions and built-in functions

    arbitrary precision decimal arithmetic -- big numbers

    internal and external procedures

    compound stems/symbols

    call on/signal on condition handlers

Minimal Rexx language extensions

    class, method instructions

    class variables -- local, shared, static

    ^, ^^, and ~ operators

    new objection condition type, which can be programatically raised

    Instance option of datatype built-in function

    ! special command recognition

    { } shorthand vector expression

    built-in classes

Some NetRexx innovations

    [ ] array-like operators

    catch, finally condition handlers

    loop over aggregate objects, and compound stem groups

roo!™ is accompanied by Revu™, which is a colorful text file viewing accessory. The following is an extract of the msgbox.roo example program, as displayed by Revu™.

Revu™ is also used as a presentation tool by the roo!™ interactive trace facility.

roo!™ built-in classes

Aggregate a generic collection base class
BitVector a condensed vector of boolean values of a fixed size -- 4096 bits
Callback abstract callback class associated with an external program
CharacterVector a vector of one-byte wide characters
Clipboard a clipboard text encapsulation
Comparator abstract class for comparing two items
Console console stream
(aka StackTrace)
system call vector access class
(aka DiskContext)
drive (disk) reference context
Emitter an output stream emitter
Exception exception information that can be referenced by catch condition handlers
ExternalClass a class that is supported by an external program
File file information
(aka DirectoryContext)
folder (directory) reference context
InLineFile an input file that is accessed as a sequence of lines
InOutLineFile a file that is updated as a sequence of lines
InStream default input stream (standard input)
List a collection of heterogeneous items.
Map a collection of heterogeneous items. a map is indexed by a string value
Math various high precision (100 digit+) mathematic functions (natural logarithm, sine, cosine, etc) and constants (Π, e, Φ, γ)
Object a generic object base class
OrderedVector an ordered collection of items multiple items may have the same value
OutLineFile an output file that is accessed as a sequence of lines
OutStream default output stream (standard output)
Queue a collection of heterogeneous items, that is accessed at the front or end.
Socket a TCP/IP socket send/receive class
Set an ordered collection of unique items
Stack a collection of heterogeneous items, that is accessed at the end.
System system information
SystemPropertyMap a collection of system properties (aka environment variables) a map is indexed by a string value
Table a two dimensional table containing an arbitrary number of rows, and a fixed number of columns
Tree a hierarchical object
Vector a collection of heterogeneous items.
WideCharacterVector a vector of two-byte wide characters

Click here to review the complete roo!™ language specification.

The following is a segment of the roo!™ matrix operation example program.

Send e-mail product inquiries to:

Brightening your way into the future !