Native µPMOS system and application programming is done in x86 assembly language (support included in base system). In order to provide high-level programming techniques, the OS must be extended by a Development Environment (DE) that defines both, a programming language and a set of development tools. This approach enables system programmers to extend µPMOS with any type of high-level programming environment. µPMOS is distributed with our Object Oriented Firmware DE (FDE) by default. The FDE defines the µREXX programming language and a specialized set of µREXX aware programming tools.
µREXX is an object oriented dialect of the well known REXX programming language, similar to ObjectREXX. Even though more precise than its predecessors, this high-level language is easy to learn and provides great flexibility. The FDE can directly execute µREXX source code by means of interpretation. This allows for dynamic class integration into the sytstem and for comfortable simulation and debugging without affecting system stability. Once the new class is operable and fully tested, the sources can be compiled to object code and packed into binary class distribution packages.
The special design of µPMOS makes linkers obsolete. Instead, the DE creates class distribution packages that are directly loaded by the OS and registered with the system's class tree. How class distributions are made is up to the DE. Our FDE transcribes µREXX sources into assembly language, then invokes its internal assembler on the generated source files and packs the resulting object code modules into class files directly usable by the system. The FDE also allows the permanent integration of interpreted classes into the system i.e., such classes can be used as if they were distributed in standard binary packages. This allows derivating new classes from both, binary packaged and interpreted class systems.
The µPMOS Software Engineering Guide provides detailed information regarding the FDE. In addition, refer to the µREXX Programming Guide and Reference for a complete description of µREXX.