The Raincode PL/I Compiler for Windows
The Raincode PL/I Compiler is a full legacy compiler for the .NET platform. It supports mainframe PL/I syntax, data types and behavior accurately.
Applications can be migrated seamlessly and the Visual Studio plugin provides a comfortable and productive development environment.
The Raincode PL/I Compiler is aimed at making the transition to the .NET platform as smooth and as painless as possible. Therefore, accurate mainframe emulation is an essential feature:
- All numeric types – except for floating points – are bit-wise equivalent to their mainframe equivalents
- The behavior implemented is derived from the mainframe implementation, and the exact same behavior is reproduced, even when it contradicts the original language standard or its own documentation.
The Raincode PL/I Compiler: facts
- Generates thread-safe, 100% managed Azure-ready code for .NET 4.5.1 and beyond in 32- and 64-bit mode
- Full PL/I pre-processor
- Array, record and BY NAME arithmetic
- Dynamic allocations and dynamically defined data types
- Parameter passing by value and by reference
- Self-describing structures (REFER clauses)
- Label variables
- Non-local GOTO statements
- Grammatical tolerances, to cope with loosely formed PL/I code as supported by mainframe-based compilers
- Full support for recursion
- Full support for PL/I conditions with accurate behavior
- Native EBCDIC support
- Integration with the Raincode COBOL compiler
- Visual Studio plugin
- Support for static or dynamic SQL, targeting DB2 (through Microsoft’s HIS) and SQL Server®.
Exclusive: Run unmodified DB2 code on SQL Server
In theory, the DB2 SQL statements included in your PL/I programs should be usable as is on SQL Server.
But that’s theory only.
Even though SQL is a standard, there are so many discrepancies between SQL dialects that it is common to see portfolios where as many as 60% of the SQL statements require some level of transformation when moving from one database to another. Differences include built-in functions, operators, implicit type conversion, controlling locking, the number of records to fetch and more.
Migrating an application from one database to another used to be a migration project in its own right. Not anymore. The Raincode PL/I compiler transforms DB2 SQL statements into equivalent SQL Server statements at compile time so that the existing code can run on the target database without any changes whatsoever.
Compiled programs can even target either of the databases based on a runtime flag. And since it all happens at compile time, there is no performance penalty involved. Statements run as fast as if they had been coded for SQL Server in the first place.
CICS Emulator: Ultimate flexibility
The Raincode PL/I compiler isn’t a black box. It can be tweaked to adapt to environment-specific constraints.
Events can be intercepted, overridden or extended. User-defined code can be used to alter the behavior of memory allocations, file I/O, module loading, SQL commands, tracking, transaction processing and more.
More specifically, by taking advantage of the Raincode COBOL compiler’s built-in CICS recognition ability, a connection can be made to a CICS emulator without a precompiler.