History of ILE

184 Views


What Is the History of ILE?

ILE is a stage in the evolution of IBM i program models. Each stage evolved to meet the changing needs of application programmers.

The programming environment provided when the AS/400 system was first introduced is called the original program model (OPM).

Original Program Model (OPM) Description

Application developers enter source code into a source file and compile that source. If the compilation is a success, a program object is created. The set of functions, processes, and rules that are used to directly create and run a program object is known as the original program model (OPM).

A program is typically activated when the operating system encounters a call request. At runtime, the call to another program is a dynamic program call. The resources needed for a dynamic program call can be significant. Application developers often design an application to consist of a few large programs that minimize the number of dynamic program calls.

As you can see, RPG, COBOL, CL, BASIC, and PL/I all operate in this model. As of release 6.1, the BASIC compiler is no longer available.

Principal Characteristics of OPM

The following list identifies the principal characteristics of OPM:

Dynamic binding

When program A wants to call program B, it just does so. This dynamic program call is a simple and powerful capability. At runtime, the operating system locates program B and ensures that the user has the right to use it.

An OPM program has only a single entry point, whereas, each procedure in an ILE program can be an entry point.

Limited data sharing

In OPM, an internal procedure has to share variables with the entire program, whereas, in ILE, each procedure can have its own locally-scoped variables.

 

Integrated Language Environment Description

ILE is tightly integrated into IBM i, just as OPM is.

It provides support for procedure-based languages more thoroughly and consistently. Its design provides for the more traditional languages, such as RPG and COBOL, and for future language developments.

Principal Characteristics of Procedure-Based Languages

Procedure-based languages have the following characteristics:

Locally scoped variables

Locally scoped variables are known only within the procedure that defines them. The equivalent of locally scoped variables is the ability to define two variables with the same name that refer to two separate pieces of data. For example, the variable COUNT might have a length of 4 digits in subroutine CALCYR and a length of 6 digits in subroutine CALCDAY.

Locally scoped variables provide considerable benefit when you write subroutines that are intended to be copied into several different programs. Without locally scoped variables, the programmers must use a scheme such as naming variables based on the name of the subroutine.

Automatic variables

Automatic variables are created whenever a procedure is entered. Automatic variables are destroyed when the procedure is exited.

External variables

External data is one way of sharing data between programs. If program A declares a data item as external, program A is said to export that data item to other programs that want to share that data. Program D can then import the item without programs B and C being involved at all. 

Multiple entry points

OPM COBOL and RPG programs have only a single entry point. In a COBOL program, it is the start of the PROCEDURE DIVISION. In an RPG program, it is the first-page (1P) output. This is the model that OPM supports.

Procedure-based languages, on the other hand, may have multiple entry points. For example, a C program may consist entirely of subroutines to be used by other programs. These procedures can be exported, along with relevant data if required, for other programs to import.

In ILE, programs of this type are known as service programs. They can include modules from any of the ILE languages. Service programs are similar in concept to dynamic link libraries (DLLs) in Microsoft Windows. 

Frequent calls

Programs written in procedure-based languages can be very call intensive.

Post Comments