---
name: "ILU"
section: "1"
platform: "linux"
package: "ilu-base"
version: "2.0.0.12-5"
release: "Debian 2.1 (Slink)"
platforms: ["linux"]
url: "https://new.carta.tech/ILU"
---

# ILU(1)

Inter-Language Unification object interface system

## NAME

ILU - Inter-Language Unification object interface system

## DESCRIPTION

The Inter-Language Unification system (**ILU**) is a multi-language object interface system.  The object interfaces provided by ILU hide implementation distinctions between different languages, between different address spaces, and between operating system types.  ILU can be used to build multi-lingual object-oriented libraries (**class libraries**) with well-specified language-independent interfaces.  It can also be used to implement **distributed systems**.  It can also be used to define and document interfaces between the modules of non-distributed programs.  ILU interfaces can be specified in either the OMG's IDL language, or in ILU's Interface Specification Language, which contains extensions to the CORBA spec.  Programming languages supported in 2.0alpha8 are **ANSI C** and **Python**; rough **C++** support is also present.  Operating systems supported in 2.0alpha8 are all **Windows** platforms with Win32 and WinSock, and all **UNIX** platforms with BSD sockets and minimal POSIX compliance.  2.0alpha8 supports interoperability with **ONC RPC** services, **OMG CORBA** services, **World Wide Web HTTP** services, and **XNS Courier** services.  \`\`Plug-in'' extensibility is provided for RPC message formats, message transport schemes, URL schemes, accounting and authorization identity types, threading and event loop processing, and various other things.  ILU is provided free for unrestricted use.

ILU works by having programmers or systems designers write down the interface exported by a particular program module in a programming-language neutral *interface description language*, called ISL.  During the implementation of that module, the programmer uses an ILU tool called a *stubber* to produce code, in the preferred programming language, which corresponds to the API described in ISL file. This code is linked with the programmer's implementation of the module's functionality, and the ILU \`\`kernel'' library, to form an *ILU module*. Multiple ILU modules may be linked into a single executable, or the system implementor may prefer to keep each module in a separate dynamically-linked library.  At run-time, the various ILU modules in the program communicate by calling back and forth through the interfaces specified in the ISL file. The ILU kernel library provides communications services between modules in different address spaces, and provides data conversion services between modules written in different programming lanuages.  The ISL file also serves as system documentation of the interface for each module.

On this system, ILU is installed under `/usr`.

## ENVIRONMENT VARIABLES

To use ILU, the directory `/usr/bin` should be on your `PATH` environment variable.  If you are using the Python programming lanugage, your `PYTHONPATH` environment variable should include the directory `/usr/lib`.  If you are using the Java programming language, the directory `/usr/lib/javaclasses` should be on your `CLASSPATH` environment variable, and the directory `/usr/lib`  should be on your `LD_LIBRARY_PATH` environment variable. The environment variable `ILU_DEBUG` can have an effect on built-in ILU debugging messages in the kernel library; see the ILU reference manual for more information.

## SEE ALSO

`c++-stubber(1), lisp-stubber(1), python-stubber(1), c-stubber(1), java-stubber(1)`

**The ILU Reference Manual**, in `/usr/doc/manual.ps`.

## AUTHORS

Antony Courtney, Doug Cutting, Mark Davidson, Scott Hassan, Rob Head, Chris Jacobi, Bill Janssen, Swen Johnson, Dan Larner, Denis Severson, Bridget Spitznagel, Mike Spreitzer, Mark Stefik, Farrell Wymore, Rick Yardumian
