Project Aims - adesutherland/CREXX GitHub Wiki

The aim of this project is to have an up-to-date, high performance, very portable, business tool.

The first phase of the project was to stabilise and improve the bREXX interpreter on VM/370, to make it usable for interested parties on a freely available historic IBM operating system. A sister project has done the same for the OS/VS2 3.8 (MVS) OS. These two projects are now cooperating in the cREXX effort.

The second phase is what we call cREXX for the moment, which will be constructed from the ground up with a new lexer/parser, a new bytecode ‘assembler’ and interpreter (and runtime). Parsing and translation will not be clause-based like the current Rexx/370 but follow the modern tradition of upfront translation of a whole source program. Interpreters can have most C compatible runtimes as backend, but also have LLVM as a target, and will be explicitly 64 bit. IBM did not react to our requests to upgrade the compiler from the current 31-bit to 64-bit addressing. A good design of the Rexx assembler will open the door to a 64-bit compiler for the most relevant platforms.

With much faster execution on modern hardware the first deliverable CREXX will be a 'small CREXX’ kernel with most of the runtime written in Rexx, following the ANSO/ISO/INCITS document. Where necessary additional layers can be written in C or other languages. ooRexx is not in scope, although an Object Rexx in Rexx seems feasible.

What is in scope is to have a revived Classic Rexx ARB (Architecture Review Board) decide on the extensions of Rexx that we all like, like USE ARG and extending the Classic Rexx language in other respects.