Raincode Assembler Compiler (Tool Demo) Volodymyr Blagodarov Yves Jaradin Vadim Zaytsev Raincode, Belgium Raincode, Belgium Raincode, Belgium
[email protected] [email protected] [email protected] Abstract from raw machine code) include so-called “third genera- IBM’s High Level Assembler (HLASM) is a low level pro- tion languages” (3GLs, typically COBOL, PL/I, REXX or gramming language for z/Architecture mainframe comput- CLIST) and “fourth generation languages” (4GLs like RPG, ers. Many legacy codebases contain large subsets written in CA Gen, PACBASE, Informix/Aubit, ABAP, CSP, QMF — HLASM for various reasons, and such components usually essentially domain-specific languages for report processing, had to be manually rewritten in COBOL or PL/I before a database communication, transaction handling, interfaces, migration to a modern framework could take place. Now, model-based code generation, etc). To name a few concrete the Raincode ASM370 compiler for .NET supports HLASM examples of good reasons for HLASM usage [14]: syntax and emulates the data types and behaviour of the orig- ⋄ Fine-grained error handling, since it is much easier inal language, allowing one to port, maintain and interac- to circumvent standard error handling mechanisms and tively debug legacy mainframe assembler code under .NET. (re)define recovery strategies in HLASM than in any 3GL Categories and Subject Descriptors D.3.2 [Macro and as- or 4GL. sembly languages]; D.3.4 [Processors] ⋄ Ad hoc memory management, since HLASM allows to manipulate addressing modes directly, change them from Keywords mainframe; assembler; software renovation program to program on the fly, allocate and deallocate storage dynamically. 1. Background ⋄ Optimisation for program size and performance, as well The assembler language for mainframes exists since 1964 as efficient usage of operating system facilities not avail- when the Basic Assembler Language (BAL) was introduced able directly from higher level languages, such as con- for the IBM System/360.