The Raincode PL/I compiler
for .NET and .NET Core

The Raincode PL/I Compiler is a legacy compiler for the .NET platform. It fully supports mainframe PL/I syntax, data types, and behavior.

Applications can be migrated seamlessly, and the Visual Studio plugin provides a comfortable and productive development environment.

    • Generates thread-safe, 100% managed Azure-ready code for .NET 4.5.1 and beyond, in both 32- and 64-bit mode.
  • Full PL/I pre-processor.

  • Support for generic classes.

  • 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.

  • Seamless Integration with the Raincode COBOL compiler.

  • Visual Studio plugin.

  • Support for static or dynamic SQL, targeting DB2 (through Microsoft’s HIS) and SQL Server®.

Easy Transition to .NET

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 one of its most important features.

  • 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.

Download the SDC Case Study


Exclusive: Run unmodified DB2 code on SQL Server

In theory, the DB2 SQL statements included in your COBOL programs should be usable as is on SQL Server.  However, the reality is that it’s more complicated than that.

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 can include built-in functions, operators, implicit type conversion, controlling locking, and the number of records to fetch.

Migrating an application from one database to another used to be a migration project in its own right, but not anymore. The Raincode COBOL compiler transforms DB2 SQL statements into equivalent SQL Server statements at compile time, allowing you to run the unmodified code directly on the target database.

Compiled programs can target either DB2 or SQL Server based on a runtime flag, and since it all happens at compile time, there is no performance penalty to your system. Statements run as fast as if they had originally been coded for SQL Server.

CICS Emulator: Ultimate flexibility

The Raincode COBOL compiler isn’t a black box. You can fine-tune and adapt our compiler to environment-specific constraints. The Raincode COBOL compiler can intercept, override, or extend events, based on your individual needs.

You can alter the behavior of many events including, memory allocations, file I/O, module loading, SQL commands, tracing, and transaction processing through the use of user-defined code.

More specifically, by taking advantage of the Raincode COBOL compiler’s built-in CICS recognition ability, you can directly connect to a CICS emulator without using a precompiler.