Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

The COBOL2000 runtime system

The COBOL2000 runtime system is a component of the Common RunTime Environment (CRTE) for COBOL2000 and C/C++ programs.

CRTE is described in a separate “CRTE User Guide” [2].

The COBOL2000 runtime routines are subprograms that are known to the COBOL2000 compiler. They can basically be divided into three groups:

1.Subprograms for complex COBOL statements

Examples of complex COBOL statements are given in “COBOL2000 Reference Manual” [1] (e.g. SEARCH ALL...). However, even seemingly simple functions (e.g. COMPUTE A = B ** C), for which no corresponding machine instructions exist, are broken down by forming subprograms which are then stored externally in precompiled modules.

2.Subprograms for connecting the generated module to operating system functions

The main purpose of these subprograms is to ensure that the code generation of the compiler is totally independent of the operating system. The resulting loss in efficiency is largely offset by greater operating system independence. If interfaces to the operating system are changed, it is generally sufficient to relink the existing modules with the new runtime system.

Essential functions in this context are:

  • Connection of COBOL programs to the input-output system

  • Connection of COBOL programs to SORT

  • Connection of COBOL programs to UDS/SQL

  • Connection of COBOL programs to Executive functions

The following table contains a list of the names and functions of the COBOL2000 runtime modules. The table does not include those runtime modules that must be present in the COBOL2000 runtime system for compatibility reasons only, nor those modules that are used for access to the POSIX file system.

Name

Function

ITCMADPT *)

Adapter module for the partial bind technique

ITCMAID1 *)

AID connection module (Data Division)

ITCMECE1 *)

ENTRY, CANCEL, EXIT work area

ITCMECE2 *)

Table for COMOPT OPTIMIZE-CALL-IDENTIFIER and SDF CALL-IDENTIFIER =OPTIMIZE

ITCMERF1 *)

Error analysis routine for input/output

ITCMINIT *)

ILCS initialization

ITCMMAT1 *)

Data for math (IML...-) functions

ITCMMDP0 *)

OCCURS DEPENDING (recursive)

ITCMMEM1

ALLOCATE and FREE work area

ITCMOBAS *)

OO: BASE CLASS

ITCMOWK0 *)

OO: work area for OO runtime routines

ITCMPOVH *)

COBOL2000 program manager

ITCMSMG0 *)

SORT/MERGE statement

ITCMSTBO *)

Table sort

ITCMTOM0 *)

TOM adapter routine

ITCMXCAB *)

XML: callback adapter for basic functions

ITCMXCAS *)

XML: callback adapter for XML PARSE statement

ITCMXDT1 *)

Data module for exception handling

ITCMXHC2 *)

XHCS conversion work area

ITCMXMD1 *)

XML: data area for XML PARSE special registers

ITCMXWK0 *)

XML: data area for XML runtime routines

ITCRACA0

ACCEPT statement

ITCRACX0

ACCEPT statement for environment variable/command line

ITCRAID2

AID connection module (Procedure Division)

ITCRBCT0

Binary constant table

ITCRBEG0

Program system initialization routine

ITCRCCL1

CLOSE for INITIAL / CANCEL

ITCRCHP0

RERUN clause with integer RECORDS phrase

ITCRCHP2

RERUN clause for SORT files and END OF REEL

ITCRCLA0

Compare ALL literal

ITCRCLI0

CLOSE statement for indexed files

ITCRCLL0

CLOSE statement for line-sequential files

ITCRCLR0

CLOSE statement for relative files

ITCRCLS0

CLOSE statement for sequential files

ITCRCLX0

CLOSE statement for XML files

ITCRCMD0

Execution of a BS2000 command

ITCRCNA0

Comparison national figurative constant

ITCRCVB0

Conversion of packed decimal to binary (10 to 18 digits)

ITCRCVD0

Conversion of binary to packed decimal (10 to 18 digits)

ITCRCVF0

Conversion to and from floating point

ITCRCVL0

Conversion of packed + decimal to/from binary (>18 digits)

ITCRDFE0

Division external floating point

ITCRDPL0

Division of decimal numbers > 15 positions

ITCRDSA0

DISPLAY statement

ITCRDSI1

Storage assignment DYNAMIC data

ITCRDSX0

DISPLAY statement for environment variable

ITCRDYF1

Reservation of storage space for the functions REVERSE, UPPER-CASE, and LOWER-CASE

ITCRECE0

ENTRY, CANCEL, EXIT for separately compiled programs

ITCREND0

Program termination routine (normal and abnormal)

ITCREPL2

Output line with line-feed control character

ITCREV0

Event handling (return from subroutine of another language)

ITCREV1

Event handling (“recoverable interrupts”)

ITCREV2

Event handling (“unrecoverable interrupts”)

ITCREV3

Event handling (remaining events)

ITCRFAT0

Table for FACTORIAL function

ITCRFCH0

Message output for function argument check

ITCRFCT1

Floating point constants

ITCRFDT0

Date conversion functions

ITCRFMD0

MEDIAN function

ITCRFMX0

Functions: MAX, MIN, ORD-MAX, ORD-MIN, RANGE, MIDRANGE

ITCRFNM0

Functions: NUMVAL, NUMVAL-C

ITCRFPV0

PRESENT-VALUE function

ITCRFRN0

RANDOM function

ITCRFST0

Functions: REVERSE, UPPER-CASE, LOWER-CASE, DISPLAY-OF, NATIONAL-OF

ITCRFVR0

VARIANCE function

ITCRHSW0

Set and check job/user switches

ITCRIFA0

FCB initialization; control routine

ITCRIFC1

RERUN clause FCB generation

ITCRIFI1

ISAM FCB generation for indexed files

ITCRIFL1

SAM FCB generation for line-sequential files

ITCRIFR1

ISAM FCB generation for relative files

ITCRIFS1

SAM FCB generation for sequential files

ITCRIFX1

FCB generation for XML files

ITCRINI0

INITIALIZE statement

ITCRINS0

INSPECT statement

ITCRLHS2

User label handling for sequential files

ITCRLNL1

LINKAGE clause with WRITE for line-sequential files

ITCRLNS1

LINKAGE clause with WRITE for record-sequential files

ITCRMAT0

Connection module for math (IML...-) functions

ITCRMEM0

ALLOCATE and FREE statement

ITCRMEV2

Interrupt message for event handling routine

ITCRMPL0

Multiplication of decimal numbers > 15 positions

ITCRMSG0

Output of error messages, level 0

ITCRMSG3

Output of error messages

ITCRMVE0

MOVE for numeric-edited items

ITCRNED0

De-editing MOVE

ITCRNSP0

CALL, CANCEL, ENTRY, EXIT in nested program

ITCROCA0

Check match between current / formal methods parameters

ITCROFP2

OO:Formal parameter description

ITCROIF1

OO: Initialization routine for files in objects

ITCROIS0

OO: Initialization routine for classes / interfaces

ITCROMD0

OO: Check routine for object view

ITCROMS1

OO: Output of OO error messages

ITCRONW1

OO: Create and initialize new object

ITCROOI0

Control routine for object-oriented initialization and termination

ITCROPI0

OPEN statement for indexed files

ITCROPL0

OPEN statement for line-sequential files

ITCROPR0

OPEN statement for relative files

ITCROPS0

OPEN statement for sequential files

ITCROPX0

OPEN statement for XML files

ITCROSM0

OO: Select method

ITCROTC2

OO: Conformance test

ITCROVC1

OO: Check interface conformance

ITCROVI2

OO: Check class inheritance

ITCRPAM1

Physical read/write routine for relative files (PAM)

ITCRPBND

Partial-bind large module

ITCRPCA0

Comparisons under PROGRAM COLLATING SEQUENCE

ITCRPCS0

Comparisons under PROGRAM COLLATING SEQUENCE

ITCRRCH0

Check table limits

ITCRRDI0

READ/START statement for indexed files

ITCRRDL0

READ/START statement for line-sequential files

ITCRRDR0

READ/START statement for relative files

ITCRRDS0

READ statement for sequential files

ITCRRDX0

READ/START statement for XML files

ITCRRPW0

REPORT-WRITER control module

ITCRSCH0

SEARCH ALL statement

ITCRSEG0

Activation of segmented COBOL programs

ITCRST11

CODE SET table for ASCII

ITCRST21

CODE SET table for ISO-7

ITCRSTG0

STRING statement

ITCRSTP0

STOP literal statement

ITCRTCA1

Class test table for ALPHABETIC test

ITCRTCD1

Class test table for NUMERIC (COMP-3 with sign) test

ITCRTCE1

Class test table for NUMERIC (COMP-3 without sign) test

ITCRTCL1

Class test table for ALPHABETIC-LOWER test

ITCRTCN0

Class test for national operands

ITCRTCP1

Class test table for ALPHABETIC-UPPER test

ITCRTCS1

Class test table for NUMERIC test (with sign)

ITCRTCU1

Class test table for NUMERIC test

ITCRTCV0

Class test for data items > 256 bytes or variables

ITCRTOD3

Time of day / Date (SVC-free)

ITCRUDS0

DML link to database handler

ITCRUPC0

Processing declaratives

ITCRUPC1

Processing declaratives

ITCRUPC2

Processing declaratives

ITCRUST0

UNSTRING statement

ITCRVCL0

Comparison for items of variable length/address or > 256 bytes

ITCRVCN0

Comparison for national items of variable length/address or > 256 bytes

ITCRVMA0

MOVE ALL literal

ITCRVMN0

MOVE for national items of variable length/address or > 256 bytes

ITCRVMP0

Padding for items > 256 bytes in case of MOVE

ITCRVMV0

MOVE for items of variable length/address or > 256 bytes

ITCRWRI0

WRITE/REWRITE statement for indexed files

ITCRWRL0

WRITE/REWRITE statement for line sequential files

ITCRWRR0

WRITE/REWRITE statement for relative files

ITCRWRS0

WRITE statement for sequential files

ITCRXBND

XML: parser dynamic loading routing

ITCRXCFB

XML: callback functions for basic functionality

ITCRXCFS

XML: callback functions for XML PARSE statement

ITCRXDP1

XML: document tree processing

ITCRXFS0

Extended file status

ITCRXGE0

XML GENERATE statement

ITCRXHC0

XHCS conversions

ITCRXIT0

FILE STATUS and error handling routine

ITCRXLC0

Exception handling

ITCRXPA0

XML PARSE statement

ITCRXPC1

XML: document file processing

ITCRXPF0

Exponentiation (floating point)

ITCRXPI0

Exponentiation (integer)

*) Module not shareable