PL/I 2018-05-25T15:29:23+00:00

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

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.

  • 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

  • Generics

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

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


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.

But that’s in 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 COBOL compiler transforms DB2 SQL statements into equivalent SQL Server statements at compile time. The existing code can then 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 and adapted 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, tracing, transaction processing, etc.

More specifically, by taking advantage of the Raincode PL/I compiler’s built-in CICS recognition ability, a connection can be made to a CICS emulator without a precompiler.

This website stores some user agent data. These data are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to opt-out of any future tracking, a cookie will be set up in your browser to remember this choice for one year. I Agree, Deny