Difference between revisions of "ILE"

From MidrangeWiki
Jump to: navigation, search
(Program Call Evolution)
(ILE Static Call - Bind by Copy)
Line 30: Line 30:
  
 
=== ILE Static Call - Bind by Copy ===
 
=== ILE Static Call - Bind by Copy ===
 +
 +
* Each module (*MOD object) is created from one source member.
 +
* Each program (*PGM object) is created by copying or "binding" one or more modules and specifying the name of the *MOD to initially receive control.
 +
* Linkages are established at compile time.
 +
* Each module can be written in any ILE program.
 +
** Thus a combined program can have several different languages in the same program, each being in a different module.
 +
* Static Program Call has less overhead.
 +
* Dynamic Program Call (the prior traditional approach) remains supported.
 +
* ILE needs more memory.
 +
* This executes faster than the prior methods.
 +
* Each *MOD within each *PGM has a unique virtual address.
 +
* Where in the prior traditional approach, when you called some program or subroutine or whatever, always have smae entry point, but can have multiple exit points, and can leave program active to help performance if expect it to be called again soon, in this reality we can have multiple entry points.
  
 
=== ILE Static Call - Bind by Reference ===
 
=== ILE Static Call - Bind by Reference ===

Revision as of 05:45, 11 June 2005

ILE stands for Integrated Language Environment.

ILE was introduced with V3R1 of OS/400 and gave iSeries programming languages many of the capabilities that are found in modern programming languages.

Among these capabilities are...

ILE Languages

  • ILE C
  • ILE CL
  • ILE COBOL
  • ILE RPG

Program Call Evolution

Trying to put this into perspective for people who may be more experienced with what came before and still struggling to Grok implications of new features.

Traditional (pre ILE) Program Calls

Each program can contain CALL statements that call other programs, that can be in the same or a different language. Each of the called programs can in turn call others.

These calls are resolved at execution time.

Each program object is directly compiled from a source member.

ILE Static Call - Bind by Copy

  • Each module (*MOD object) is created from one source member.
  • Each program (*PGM object) is created by copying or "binding" one or more modules and specifying the name of the *MOD to initially receive control.
  • Linkages are established at compile time.
  • Each module can be written in any ILE program.
    • Thus a combined program can have several different languages in the same program, each being in a different module.
  • Static Program Call has less overhead.
  • Dynamic Program Call (the prior traditional approach) remains supported.
  • ILE needs more memory.
  • This executes faster than the prior methods.
  • Each *MOD within each *PGM has a unique virtual address.
  • Where in the prior traditional approach, when you called some program or subroutine or whatever, always have smae entry point, but can have multiple exit points, and can leave program active to help performance if expect it to be called again soon, in this reality we can have multiple entry points.

ILE Static Call - Bind by Reference