Category:REXX
This programming language may be used to instruct a computer to perform a task.
Execution method: | Interpreted |
---|---|
Garbage collected: | Allowed (and in most versions of REXX, it is automatic, but garbage collection isn't mandated). |
Parameter passing methods: | By value |
Type safety: | Safe |
Type strength: | Strong |
Type compatibility: | Nominative |
Type expression: | Inferred |
Type checking: | Dynamic |
Typing: | Untyped |
See Also: |
This page uses content from Wikipedia. The original article was at REXX. The list of authors can be seen in the page history. As with Rosetta Code, the text of Wikipedia is available under the GNU FDL. (See links for details on variance) |
REXX (REstructured eXtended eXecutor) is an interpreted programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both proprietary and open source interpreters for REXX are available on a wide range of computing platforms, and compilers are available for IBM mainframes.
REXX is also spelled:
- Rexx
- REXX
- but the primary official spelling is REXX and is the spelling used here on Rosetta Code.
The REXX language was influenced by the computer programming languages: ALGOL, PL/I, EXEC, and EXEC 2.
Using Classic REXX closely resembles pseudo code and many languages like Basic or Julia. Experienced programmers should have no problem reading REXX code and translating it to other languages.
Some items that might differ from what you are familiar with.
- No data types, no declarations, everything is string.
- Exponentiation is designated by '**' thus x^2 = x**2.
- Integer division is designated by '%' thus 13%3 = 4.
- Modulo division (remainder) is designated by '//' thus 13//3 = 1 ('13 mod 3').
- Arrays (here called 'stems') are designated by something like 'stem.a.b. etc' (stem = name array; a, b etc any value; 'associative arrays').
- Precision is unlimited (default 9 digits), but you have to specify it yourself ('numeric digits nn').
Versions of REXX:
- ARexx is a classic REXX implementation (with extensions) for the AmigaOS, given in bundle since AmigaOS 2. (Regina REXX has specific support for the extended functions that were introduced in ARexx.) ARexx was written in 1987 by William S. Hawes.
- Brexx a classic REXX written by Vassilis N. Vlachoudis, it is free and it's open source and available under the GNU General Public License.
- CRX REXX (Compact REXX) is a classic REXX first written by Dr. Brian Marks.
- CTC REXX is a classic REXX that is bundled with PC/SPF and written by Command Technology Corporation, a license is required to use this product. This version of REXX can only be used under PC/SPF and it's panels. PC/SPF resembles the IBM program product SPF (which has other names and versions). The last version was published in 1996. CTC doesn't exist anymore.
- KEXX is a subset of REXX that is bundled with KEDIT and written by Keven J. Kearney of Mansfield Software Group, Inc., a license is required to use this product. KEXX only executes under the KEDIT licensed product. KEDIT is an XEDIT clone (an editor from IBM for VM/CMS program products).
- MVS/TSO REXX is IBM's implementation of classic REXX, a license is required to use the product as well as the operating system it runs under; MVS and TSO are used here as generic references.
- MVS/TSO REXX compiler is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
- NetRexx is IBM's variant of the REXX programming language to run on the Java virtual machine. It supports a classic REXX syntax, with no reserved keywords, along with considerable additions to support Object-oriented programming in a manner compatible with Java's object model, yet can be used as both a compiled and an interpreted language, with an option of using only data types native to the JVM or the NetRexx run-time package. The syntax and object model of NetRexx differ from Object REXX and Open Object Rexx.
- Object REXX is/was an object-oriented scripting language initially produced by IBM for OS/2. It is a follow-on to and a significant extension of the "Classic Rexx" language originally created for the CMS component of VM/SP and later ported to MVS, OS/2 and PC DOS. OS/2 version of IBM Object REXX is deeply integrated with SOM. On October 12, 2004, IBM released Object REXX as open source software, giving rise to Open Object Rexx (ooRexx).
- ooRexx (Open Object Rexx) is an implementation of Object REXX, which is REXX with OO features (some REXX programs are compatible).
- OS/2 REXX is a classic REXX that is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
- OS/400 REXX is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
- PC/REXX is the first classic REXX implemented outside of IBM mainframes, intended for IBM DOS and MS DOS. Written by Mansfield Software Group, Inc., REXX was bundled with KEDIT, a license is required to use this product.
- Personal REXX is a classic REXX that is intended for IBM DOS and MS DOS, written by Charles Daney of Quercus Systems, a license is required to use this product. It is also known as REXX/Personal.
- Portable REXX (see the R4 REXX entry, below).
- Regina REXX is an implementation first created by Anders Christensen (in 1992) and is now maintained by others, notably Mark Hessling. Regina REXX runs on more different platforms than any other REXX, too many to name here. It can be downloaded freely.
- Reginald REXX is a REXX developed by Jeff Glatt. It can be downloaded freely. According to Rexxinfo.org, Reginald is out of maintenance.
- REXX/imc a classic REXX developed by Ian M. Collier (imc) for Linux/Unix.
- REXX/Personal is another name for Personal REXX (see above).
- ROO oo-REXX an object-oriented REXX developed by Keith Watts of Kilowatt Software, Inc. It can be downloaded freely. ROO is also known as ROO!. According to Rexxinfo.org, Roo! is out of maintenance.
- R4 REXX a classic REXX developed by Keith Watts of Kilowatt Software, Inc. It was also known as Portable REXX. It can be downloaded freely. According to Rexxinfo.org, R4 is out of maintenance.
- T/REXX, a REXX compiler for CMS is an implementation of classic REXX written by Leigh Lundin and Mark Woodruff (according to Wikipedia).
- VM/CMS REXX is an IBM implementation of classic REXX that was first implemented (for general use) in the early 1980s. A license is required to use this product as well as the operating system that it runs under. This was the original implementation of REXX written (circa 1979) by Mike Cowlishaw of IBM.
- VM/CMS REXX compiler is an IBM implementation of classic REXX, a license is required to use this product as well as the operating system it runs under.
[Most of the entries were entered mostly from memory and apologies are offered for not knowing more about what wording should be used; the IBM operating systems or Program Products that run REXX are numerous and varied. Their complete (official) names would fill a pageful or two. Some of the REXXes are no longer sold nor available for downloading or purchase, others are no longer maintained. Naming of names is being avoided (especially those licensed products for sale), and it is hoped that this is seen that no products nor vendors are being endorsed, appraised, or critiqued.] -- Gerard Schildberger 09:28, 1 July 2012 (UTC)
External Links
- English Wikipedia REXX
- Brexx interpreter
- Open Object Rexx - www.oorexx.org
- The NetRexx Programming Language - www.netrexx.org
- The Rexx Language Association - www.rexxla.org
- Regina Rexx Interpreter
- Mansfield Software Group, Inc. (KEDIT)
- Personal REXX, Quercus Systems
- CTC Command Technology
- CRX Open Source (right column side)
- R4, Kilowatt Software
- ROO, Kilowatt Software
- z/VM V6R1 REXX/VM Reference
- z/VM V6R1 REXX/VM User's Guide
- {many references to REXX manuals}
Rosetta Code tasks not implemented in REXX
Subcategories
This category has the following 4 subcategories, out of 4 total.
@
- REXX examples needing attention (empty)
- REXX User (31 P)
R
- REXX library routines (20 P)
Pages in category "REXX"
The following 200 pages are in this category, out of 1,161 total.
(previous page) (next page)C
D
- Damm algorithm
- Data Encryption Standard
- Date format
- Date manipulation
- Day of the week
- Days between dates
- De Bruijn sequences
- Deal cards for FreeCell
- Death Star
- Decimal floating point number to binary
- Decision tables
- Deconvolution/1D
- DELAY.REX
- Delete a file
- Department numbers
- Detect division by zero
- Determinant and permanent
- Determine if a string has all the same characters
- Determine if a string has all unique characters
- Determine if a string is collapsible
- Determine if a string is numeric
- Determine if a string is squeezable
- Determine if only one instance is running
- Determine if two triangles overlap
- Dice game probabilities
- Digit fifth powers
- Digital root
- Digital root/Multiplicative digital root
- Dijkstra's algorithm
- Dinesman's multiple-dwelling problem
- Dining philosophers
- Discordian date
- Display a linear combination
- Distinct palindromes within decimal numbers
- Distinct power numbers
- Distribution of 0 digits in factorial series
- Diversity prediction theorem
- DNS query
- Documentation
- Doomsday rule
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Dragon curve
- Draw a clock
- Draw a cuboid
- Draw a pixel
- Draw a sphere
- Dutch national flag problem
- Dynamic variable names
E
- Eban numbers
- Eertree
- Egyptian division
- EKG sequence convergence
- Element-wise operations
- Elliptic curve arithmetic
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Entropy/Narcissist
- Enumerations
- Environment variables
- Equilibrium index
- Erdős-primes
- Esthetic numbers
- Ethiopian multiplication
- Euclid-Mullin sequence
- Euler method
- Euler's constant 0.5772...
- Euler's identity
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Events
- Evolutionary algorithm
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Executable library
- Execute a Markov algorithm
- Execute a system command
- Execute Brain****
- Execute HQ9+
- Exponentiation operator
- Exponentiation order
- Exponentiation with infix operators in (or operating on) the base
- Extend your language
- Extensible prime generator
- External sort
- Extra primes
- Extract file extension
- Extreme floating point values
F
- Factorial
- Factorions
- Factors of a Mersenne number
- Factors of an integer
- Fairshare between two and more
- Farey sequence
- Fast Fourier transform
- FASTA format
- Faulhaber's triangle
- Feigenbaum constant calculation
- Fermat numbers
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Fibonacci word/fractal
- File extension is in extensions list
- File input/output
- File modification time
- File size
- File size distribution
- Filter
- Find common directory path
- Find duplicate files
- Find first and last set bit of a long integer
- Find first missing positive
- Find if a point is within a triangle
- Find largest left truncatable prime in a given base
- Find limit of recursion
- Find minimum number of coins that make a given value
- Find palindromic numbers in both binary and ternary bases
- Find prime n such that reversed n is also prime
- Find prime numbers of the form n*n*n+2
- Find the intersection of a line with a plane
- Find the intersection of two lines
- Find the last Sunday of each month
- Find the missing permutation
- Find URI in text
- Find words which contain the most consonants
- Find words which contains all the vowels
- Find words which contains more than 3 e vowels
- Find words whose first and last three letters are equal
- Find words with alternating vowels and consonants
- Finite state machine
- First class environments
- First perfect square in base n with n unique digits
- First power of 2 that has leading decimal digits of 12
- First-class functions
- First-class functions/Use numbers analogously
- Five weekends
- Fivenum
- Fixed length records
- FizzBuzz
- Flatten a list
- Flipping bits game
- Flow-control structures
- Floyd's triangle
- Floyd-Warshall algorithm
- Forest fire
- Fork
- Formatted numeric output
- Fortunate numbers
- Forward difference
- Four bit adder
- Four is magic
- Four is the number of letters in the ...
- Fraction reduction
- Fractran
- Frobenius numbers
- Function composition
- Function definition
- Function frequency
- Function prototype
- Fusc sequence
G
- Galton box animation
- Gamma function
- Gapful numbers
- Gauss-Jordan matrix inversion
- Gaussian elimination
- General FizzBuzz
- Generalised floating point addition
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generate random chess position
- Generate random numbers without repeating a value
- Generator/Exponential
- Generic swap
- Get system command output
- Getting the number of decimal places
- Globally replace text in several files
- Golden ratio/Convergence
- Gradient descent
- Gray code
- Grayscale image
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Execution method/Interpreted
- Garbage collection/Allowed (and in most versions of REXX, it is automatic, but garbage collection isn't mandated).
- Parameter passing/By value
- Typing/Safe
- Typing/Strong
- Typing/Compatibility/Nominative
- Typing/Expression/Inferred
- Typing/Checking/Dynamic
- Typing/Untyped
- Programming Languages
- WikipediaSourced