The SYMBOL keyword in COBOL is used to define symbolic constants and data representations. It allows programmers to assign meaningful names to values, making code more readable and maintainable.
SYMBOL is defined in the SPECIAL-NAMES paragraph of the CONFIGURATION SECTION and can be referenced throughout the program.
123456789101112131415161718192021222324* Basic SYMBOL syntax examples IDENTIFICATION DIVISION. PROGRAM-ID. SYMBOL-DEMO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANTS MAX-RECORDS IS 1000 MIN-BALANCE IS 0 DEFAULT-CURRENCY IS "USD" SYSTEM-DATE-FORMAT IS "YYYY-MM-DD" ERROR-CODE-SUCCESS IS 0 ERROR-CODE-FAILURE IS 1 SYMBOLIC CHARACTERS PLUS-SIGN IS "+" MINUS-SIGN IS "-" DECIMAL-POINT IS "." COMMA-SEPARATOR IS "," SYMBOLIC VALUES TRUE-VALUE IS "Y" FALSE-VALUE IS "N" BLANK-VALUE IS SPACE ZERO-VALUE IS "0".
Basic SYMBOL usage for defining symbolic constants and values.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061* Complete COBOL program demonstrating SYMBOL usage IDENTIFICATION DIVISION. PROGRAM-ID. SYMBOL-EXAMPLE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANTS MAX-CUSTOMERS IS 10000 MIN-ACCOUNT-BALANCE IS 0 DEFAULT-INTEREST-RATE IS 0.05 SYSTEM-TIMEOUT IS 30 SUCCESS-STATUS IS "SUCCESS" ERROR-STATUS IS "ERROR" SYMBOLIC CHARACTERS CURRENCY-SYMBOL IS "$" PERCENT-SYMBOL IS "%" ASTERISK-SYMBOL IS "*" HASH-SYMBOL IS "#" SYMBOLIC VALUES ACTIVE-STATUS IS "A" INACTIVE-STATUS IS "I" PENDING-STATUS IS "P" COMPLETED-STATUS IS "C". DATA DIVISION. WORKING-STORAGE SECTION. 01 PROGRAM-CONSTANTS. 05 MAX-RECORDS-PER-BATCH PIC 9(4) VALUE MAX-CUSTOMERS. 05 MIN-BALANCE-REQUIRED PIC 9(8)V99 VALUE MIN-ACCOUNT-BALANCE. 05 DEFAULT-RATE PIC 9(3)V99 VALUE DEFAULT-INTEREST-RATE. 01 STATUS-VALUES. 05 CUSTOMER-STATUS PIC X. 05 TRANSACTION-STATUS PIC X(10). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-PROGRAM PERFORM PROCESS-CUSTOMER-DATA PERFORM DISPLAY-RESULTS STOP RUN. INITIALIZE-PROGRAM. DISPLAY "Program initialized with symbolic constants" DISPLAY "Max customers: " MAX-CUSTOMERS DISPLAY "Min balance: " MIN-ACCOUNT-BALANCE DISPLAY "Default rate: " DEFAULT-INTEREST-RATE. PROCESS-CUSTOMER-DATA. MOVE ACTIVE-STATUS TO CUSTOMER-STATUS MOVE SUCCESS-STATUS TO TRANSACTION-STATUS DISPLAY "Customer status: " CUSTOMER-STATUS DISPLAY "Transaction status: " TRANSACTION-STATUS. DISPLAY-RESULTS. DISPLAY "=== SYMBOL USAGE RESULTS ===" DISPLAY "Currency symbol: " CURRENCY-SYMBOL DISPLAY "Percent symbol: " PERCENT-SYMBOL DISPLAY "Active status: " ACTIVE-STATUS DISPLAY "Success status: " SUCCESS-STATUS.
The program demonstrates comprehensive SYMBOL usage for constants and values.
SYMBOL is essential in various scenarios where symbolic constants, special characters, and configuration values are needed.
12345678910111213141516* Configuration and constants using SYMBOL ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANTS DATABASE-TIMEOUT IS 60 FILE-BUFFER-SIZE IS 4096 MAX-RETRY-ATTEMPTS IS 3 LOG-LEVEL-INFO IS 1 LOG-LEVEL-WARNING IS 2 LOG-LEVEL-ERROR IS 3 SYMBOLIC VALUES DATABASE-STATUS-OK IS "OK" DATABASE-STATUS-ERROR IS "ERROR" FILE-STATUS-OPEN IS "OPEN" FILE-STATUS-CLOSED IS "CLOSED".
Configuration and constants use SYMBOL for program settings and status values.
123456789101112131415* Special character representation using SYMBOL ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CHARACTERS TAB-CHARACTER IS X"09" NEWLINE-CHARACTER IS X"0A" CARRIAGE-RETURN IS X"0D" ESCAPE-CHARACTER IS X"1B" NULL-CHARACTER IS X"00" BACKSPACE-CHARACTER IS X"08" SYMBOLIC VALUES YES-RESPONSE IS "Y" NO-RESPONSE IS "N" UNKNOWN-RESPONSE IS "U".
Special character representation uses SYMBOL for control characters and responses.
Following these best practices ensures effective use of SYMBOL in COBOL applications for better maintainability.
Aspect | Description | Example |
---|---|---|
Location | SPECIAL-NAMES paragraph | CONFIGURATION SECTION |
Basic Syntax | SYMBOLIC CONSTANTS name IS value | MAX-RECORDS IS 1000 |
Character Symbols | SYMBOLIC CHARACTERS name IS value | PLUS-SIGN IS "+" |
Value Symbols | SYMBOLIC VALUES name IS value | TRUE-VALUE IS "Y" |
Usage | Reference by name in program | MOVE MAX-RECORDS TO WS-COUNTER |
1. What is the primary purpose of SYMBOL in COBOL?
2. Where is SYMBOL typically defined in a COBOL program?
3. What types of values can SYMBOL represent?
4. How does SYMBOL improve program maintainability?
5. Which of the following is a common use of SYMBOL?