COBOL Terminology Used in This Product Help

You might 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:

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.
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 Core. 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#).
Unmanaged code
A synonym of native, non-managed code.
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 programming
Procedural programming uses linear instructions meaning you write a set of commands that are executed step-by-step. A programming task consists of data structures and subroutines.
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.

Native COBOL
Native COBOL is COBOL which is compiled to native code.
.NET COBOL is COBOL with extensions to support the .NET Framework and .NET Core. It offers OO syntax support and syntax to allow access to the available .NET class libraries.
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 Micro Focus documentation would typically refer to specifically .NET COBOL or JVM COBOL.
Refers to the OO syntax before .NET COBOL and JVM COBOL. Native OO COBOL means either ISO 2002 COBOL syntax, the Micro Focus OO syntax alternative to ISO 2002 COBOL standard, or a mixture of both.