Object Implementation Language 2


Object Implementation Language 2 (OIL2) is the successor to Object-Oriented G, which was renamed OIL in 1991 by the Open Software Foundation when it was selected for use in the OSF Distrbuted Management Environment. A complete example of OIL can be found in the appendix of this paper from 1992, which takes only 5 pages to document a distributed, load-balanced, fault-tolerant SNMP polling algorithm (used for network monitoring). It is instructive to contrast the simplicity and conciseness of that code with the capabilities of current network management platforms.

Peruse the directory of OIL2 Example Source Code to access the complete source code to several useful applications, including a distributed JobController, SMTP server, POP3 server, etc.

OIL2 shares an almost identical syntax with OIL, but any pre-existing OIL applications will invariably require modification due to the completely different runtime environments.

The oil2script executable enables OIL2 to be used as a scripting language.


Almost every class implementation intended for a FARGOS/VISTA™ Object Management Environment is written in OIL2. Some of the reasons include:

designed for distributed applications
OIL2 is designed for the building of distributed applications. It is the right tool for the job.
The conciseness of OIL2 allows algorithms to be specified with few keystrokes, yet remain readable. Registration of classes, methods and associated descriptive information is handled automatically.
Common housekeeping, such as the dynamic allocation and eventual recovery of memory are handled automatically and eliminate the opportunity for programming mistakes, such as buffer overflows, that contribute to unstable applications and simultaneously introduce windows for hostile parties to exploit in their attempts to penetrate a host.
insulation from variations in target systems
OIL2 source compiles on all platforms without requiring modification or target-specific includes.
multiple forms of object code
OIL2 source can be compiled to either an architecture-neutral format that can be dynamically loaded into any FARGOS/VISTA Object Management Environment or to the native object code of a specific target platform. If native object code is used, the code can be either statically linked to form a customized FARGOS/VISTA Object Management Environment executable or dynamically loaded into the standard core.
Code generated by the OIL2 compiler is always reentrant and compatible with the high-performance multithreading capabilities of the FARGOS/VISTA Object Management Environment.

Additional Information

The "FARGOS/VISTA Examples" document contains many complete (and, hopefully, interesting) examples that are written in OIL2. Some example OIL2 source code can be downloaded from the OIL2 Example Source code directory. The language is described in the "OIL2 Reference Manual". An OIL2 compiler is provided with the FARGOS/VISTA Software Development Kit; however, the functionality available to a particular developer is controlled by a license. The default license only permits the generation of OIL2 Architecture Neutral Format object code and documentation.