Glossary

Technology Independent Machine Interface

TIMI

The middle layer that lets an IBM i program compiled decades ago run on today's IBM Power servers without going back to its source code. IBM i compilers do not emit native machine code; they emit TIMI instructions, which the operating system translates ahead of time and stores inside the program object, so IBM can change the processor or the program format and rebuild the object from that stored data.

Also calledMachine Interface, or MI
What it isThe instruction set IBM i compilers target
Carried to PowerPCV3R6, December 1995
Last big conversionIBM i 6.1, March 2008

What TIMI does

On most systems a compiler turns your code straight into instructions for one kind of chip. IBM i does not. IBM says applications compiled on IBM i are compiled to a set of intermediate code instructions defined as the Technology Independent Machine Interface. Think of a recipe written in plain words instead of in one cook's shorthand. Any kitchen can follow it. IBM can change the chip, the firmware and the virtualization layer underneath, and IBM says that happens without rewriting, changing, or even recompiling the applications written by users.

How a program gets from RPG to the processor

Four stages between your source and the chip

  1. You compile the sourceYou compile code written in RPG, COBOL or Control Language. RPG is short for Report Program Generator and is the platform's main business language. Control Language, or CL, is the command language built into the operating system.
  2. You get TIMI, not chip codeThe compiler writes TIMI instructions. Those instructions act on objects rather than on memory addresses, so they are not tied to one processor.
  3. The system translates ahead of timeIBM i turns the TIMI instructions into real machine code for the chip in that server before the program runs, then keeps the machine code for next time. TIMI instructions are not read one line at a time while the program runs.
  4. Both halves live in the objectThe program object holds the TIMI instructions next to the machine code. That is how IBM can build fresh machine code later out of what is already stored.

Storing the TIMI instructions alongside the native machine code is called observability. IBM describes creation data as a subset of observability.

What creation data is, and when it is missing

Creation data is the piece of that stored information IBM i needs to build machine code again. IBM's wording is that this data is necessary to translate the code into machine instructions. On the Change Program command, CHGPGM, it appears as *CRTDTA. Debug data, *DBGDTA, is the separate piece that lets you step through a program while it runs. IBM warns that once you have removed the data, it is not possible to change the object in any way unless you re-create it.

  • MI programs keep creation data by default, so most programs can be rebuilt, going all the way back to programs first created for System/38.
  • Even when someone removed creation data from outside view, the Licensed Internal Code can still reach it if the program and all of its modules target V5R1 or later.
  • A program truly lacks creation data only if it, or at least one of its modules, was created for OS/400 V4R5 or an earlier release and the data was then explicitly removed.
  • When creation data is really gone, the only fix is to compile the program again from source.

Those release rules are IBM's, from its program conversion Redpaper, REDP-4293. Ahead of the 6.1 upgrade IBM also shipped a command, Analyze Object Conversion (ANZOBJCVN), that ran on V5R3 or V5R4 and listed the programs that would not convert.

What TIMI has carried the platform through

Hardware and program-format changes TIMI absorbed

  1. Aug 1988OS/400 ships with the AS/400 on August 26, 1988. From the start, programs compile to the Machine Interface instead of straight to the chip.
  2. Dec 1995V3R6 is the first release that runs on PowerPC chips. Programs built for the older CISC chips move over by being translated again, not recompiled from source.
  3. 2007IBM launches IBM Power Systems, putting the i and AIX hardware lines into one machine family.
  4. Mar 2008IBM delivers IBM i 6.1. The program format changes, so every MI program from an earlier release has to be re-created before it will run. IBM says all MI programs with enough creation data convert, even ones first created for System/38.

IBM's own wording for the last row is that IBM delivered IBM i 6.1 in March 2008. IBM i PASE and Java programs are not based on MI, so that conversion did not reach them the same way.

Does TIMI give AI tools your source code?

No. TIMI instructions are compiled output, not the RPG or COBOL someone typed. A program can hold enough creation data to be rebuilt for a brand new Power server and still leave you nothing an AI tool can read. The AI coding tools for this platform work on source. IBM's BOB is an example: IBM says it works against source on your local computer, and its guide has you export your RPG, RPGLE, CL, DDS and SQL members to a local folder first. So TIMI protects the running program. It does not protect the source.

One narrow exception is Control Language. A CL program created with ALWRTVSRC(*YES) saves its own source with the object, and the Retrieve CL Source command, RTVCLSRC, pulls that source back out. It is source that was saved, not source recovered from TIMI.

Related Terms

OS/400

OS/400 is the original name of the operating system IBM now calls IBM i. It shipped with the AS/400 on August 26, 1988, became i5/OS in 2004 and IBM i in 2008, so the RPG, COBOL and Db2 for i objects that today's AI tools read sit on one unbroken operating system line.

IBM i

IBM's operating system for Power servers running traditional AS/400-lineage business applications, with Db2 for i built directly into the OS.

AS/400

IBM's original 1988 midrange business computer platform; the term is still used informally to refer to IBM i systems and shops even though IBM has rebranded the hardware and OS multiple times since.

Integrated Language Environment (ILE)

ILE is the current program model on IBM i, where a compiler turns source code into module objects (*MODULE) that are then bound into programs (*PGM) and shared service programs (*SRVPGM), and modules written in RPG, COBOL, C, C++ and CL can be bound into one program. It is also what AI modernization work on the platform aims at, since IBM's guided Bob workflows include older RPG to ILE RPG and monolithic to modular refactoring.

RPG

Report Program Generator, the primary business application programming language on IBM i and its AS/400 predecessors, still running the majority of production logic in most IBM i shops.

COBOL

A long-established business programming language still running production logic on IBM i and other legacy enterprise platforms alongside RPG.

IBM PASE for i

PASE for i is the AIX runtime built into IBM i, and it is where the open-source software behind most AI work on the platform actually runs. It ships as option 33 of 5770-SS1, has been a no-charge option since V5R2M0, and it hosts the yum-installed Node.js and Python builds under /QOpenSys/pkgs, including the Mapepire server that IBM's IBM i MCP Server connects through on port 8076.

IBM Bob (Project Bob)

IBM's generally available AI coding agent for IBM i, built as a fork of Visual Studio Code and tuned for RPG, CL, DDS, and SQL. Reached GA on March 24, 2026; Bob 2.0 and the IBM i-specific Bob Premium Package for i shipped June 24, 2026.

ppc64le

The name Linux, Red Hat packages, container images and Python wheels use for a 64-bit IBM Power processor running in little endian byte order, and the word an IBM i shop has to match when it installs AI software on Power hardware. IBM i itself is not ppc64le, so a ppc64le build runs in a Linux partition on the same Power server, never inside IBM i or PASE.