Modernization Hub

Intrinsic - Built-in

Enhanced Definition

In mainframe computing, "intrinsic" or "built-in" refers to functions, statements, or capabilities that are an inherent part of a programming language (like COBOL, REXX) or a system utility (like JCL) and are directly provided by its compiler, interpreter, or runtime environment. These capabilities do not require external definitions, libraries, or explicit linking, offering fundamental operations for common tasks.

Key Characteristics

    • Directly available: No need for explicit declaration, inclusion, or linking of external modules or libraries; they are part of the language's core syntax.
    • Language/System specific: Their syntax, parameters, and behavior are defined by the particular language standard (e.g., ANSI COBOL, IBM REXX) or system utility specification.
    • Optimized performance: Often highly optimized by the compiler or interpreter for efficiency, leveraging z/OS hardware and software capabilities.
    • Standardized behavior: Provide consistent and predictable results across different environments or program executions, adhering to the language's specification.
    • Common utility: Designed to perform frequently required operations such as string manipulation, date/time handling, mathematical calculations, or data type conversions.

Use Cases

    • COBOL Intrinsic Functions: Performing mathematical operations (SQRT, MAX, SUM), string manipulation (UPPER-CASE, REVERSE, NUMVAL), or date/time retrieval (CURRENT-DATE) within a COBOL program.
    • REXX Built-in Functions: Handling string operations (SUBSTR, POS, LENGTH), parsing data, or converting data types (C2X, X2C) directly within a REXX EXEC.
    • JCL Built-in Symbols/Functions: Accessing system-provided values like the current date (&SYSDATE), time (&SYSTIME), or job name (&SYSJOBNAME) directly within JCL procedures or steps.
    • CICS Built-in Commands: CICS provides intrinsic commands (e.g., EXEC CICS LINK, EXEC CICS SEND, EXEC CICS READ FILE) for transaction management, file I/O, and inter-program communication directly embedded within COBOL or Assembler programs.

Related Concepts

Intrinsic functions stand in contrast to user-defined functions or external subroutines, which require separate compilation, linking, and explicit calls. They are implemented directly by the compiler or interpreter, often leveraging underlying z/OS system services for certain operations (e.g., accessing system clocks). Their existence simplifies development by abstracting complex low-level operations, similar to how APIs provide a defined interface for system interaction, but intrinsics are typically at a more fundamental language level.

Best Practices:
  • Prioritize intrinsic functions: For tasks they cover, prefer them over custom code or external routines for better performance, reliability, and readability.
  • Consult documentation: Always refer to the specific language or utility reference manual (e.g., IBM COBOL Language Reference) for exact syntax, parameters, and behavior, as implementations can vary slightly.
  • Understand limitations: Be aware of any specific constraints or edge cases for intrinsic functions, such as data type handling, maximum input sizes, or error conditions.
  • Enhance code readability: Using well-known intrinsic functions can make code easier to understand and maintain for other mainframe developers, promoting consistency.
  • Leverage compiler optimization: Intrinsic functions often allow the compiler to generate highly optimized machine code, leading to efficient execution on z/OS, which is crucial for high-volume batch or online transactions.

Related Vendors

Macro 4

20 products

Applied Software

7 products

Related Categories

Administration

395 products

Encryption

41 products

Files and Datasets

168 products