COBOL Terminology Used in This Product Help

You will come across various terms related to the COBOL language and programming in the documentation for this and previous versions of this product, and on the Micro Focus Web site. The following list describes the most common terms:

.NET COBOL
.NET COBOL is COBOL with extensions to support the .NET Framework and .NET. It offers OO syntax support and syntax to allow access to the available .NET class libraries.
JVM COBOL
JVM COBOL is COBOL with extensions to support the JVM. It offers OO syntax support and syntax to allow access to the available Java class libraries.
Managed COBOL
Used as a collective term for .NET COBOL and JVM COBOL. The Visual COBOL documentation would typically refer to specifically .NET COBOL or JVM COBOL.
Managed code
A Microsoft term used to indicate code which runs under the management of a run-time system and not directly on the machine. In the Microsoft world, the run-time system is the Common Language Runtime (CLR) as part of the .NET Framework or .NET. The CLR compiles the managed code to machine code and executes it. It also provides a variety of management services such as exception handling, garbage collection, and thread management.
Though the term "managed code" is not used in Java, Java is in essence a managed language since it runs in the Java Virtual Machine (JVM) which is the run-time system.
Other examples of managed languages are COBOL, which can be compiled to run either in .NET or in the JVM, and all .NET languages (such as C#).
Native COBOL
Native COBOL is COBOL which is compiled to native code.
Native code
Native code is code which compiles directly to the machine language native to the computer it is run on. It is compiled to run on the Operating System and is executed directly by the machine's processor. Examples of native languages are C, C++ and procedural COBOL compiled as native code.
Native OO COBOL
Refers to the OO syntax before .NET COBOL and JVM COBOL. Native OO COBOL means either ISO 2002 COBOL syntax, the Micro Focus COBOL OO syntax alternative to ISO 2002 COBOL standard, or a mixture of both.
Object-Oriented (OO) programming
Object-oriented programming uses objects that interact with each other. Objects include data, represented by fields (properties and attributes), and procedures (methods). The methods of an object can access and modify the properties of that object.

A programming task consists of objects.

Procedural COBOL

COBOL was originally a procedural programming language. Procedural COBOL uses syntax that does not include the syntax for .NET and JVM. This is the COBOL that was used when writing applications in Net Express, Server Express and Mainframe Express, and it is still actively supported today.

You can compile procedural COBOL to either native or (in most cases) managed code.

The procedural COBOL syntax is supported in .NET COBOL and in JVM COBOL code, although there are some features that are not supported (for example Panels V2, Dialog System and ACUCOBOL-GT). This means that you can take most existing COBOL applications and simply recompile them to create .NET COBOL or JVM COBOL applications.

Procedural programming
Procedural programming is a programming paradigm that uses a linear or top-down approach. It relies on procedures or subroutines to perform computations.
Unmanaged code
A synonym of native, non-managed code.