COBOL PROGRAM-ID represents fundamental program identification and comprehensive naming specification capabilities within enterprise development environments, providing essential program identification mechanisms for systematic application organization, enhanced metadata management features for professional development workflows, and intelligent naming conventions that enable precise program identification, optimal program organization strategies, and systematic program management while maintaining naming consistency, ensuring unique program identification, and enabling flexible program architectures across business applications requiring exact program specification, comprehensive identification metadata, and reliable program naming throughout sophisticated enterprise development scenarios and professional programming environments.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219*> Basic PROGRAM-ID specifications and naming conventions IDENTIFICATION DIVISION. *> 1. Simple PROGRAM-ID specification PROGRAM-ID. CUSTOMER-PROCESSING. *> 2. PROGRAM-ID with descriptive business name PROGRAM-ID. ACCOUNTS-RECEIVABLE-REPORT. *> 3. PROGRAM-ID with system prefix PROGRAM-ID. SYS-FINANCIAL-CALCULATOR. *> 4. PROGRAM-ID with version indicator PROGRAM-ID. PAYROLL-PROCESSOR-V2. *> 5. PROGRAM-ID with department code PROGRAM-ID. HR-EMPLOYEE-MAINTENANCE. *> 6. PROGRAM-ID with application domain PROGRAM-ID. INV-STOCK-MANAGEMENT. *> 7. PROGRAM-ID with INITIAL clause (for reentrant programs) PROGRAM-ID. UTILITY-DATE-CONVERTER INITIAL. *> 8. PROGRAM-ID with RECURSIVE clause PROGRAM-ID. MATH-FACTORIAL-CALC RECURSIVE. *> 9. PROGRAM-ID with COMMON clause (for nested programs) PROGRAM-ID. SHARED-ERROR-HANDLER COMMON. *> 10. Complex PROGRAM-ID with multiple clauses PROGRAM-ID. BATCH-PROCESSOR INITIAL RECURSIVE. *> Demonstration of proper naming conventions IDENTIFICATION DIVISION. PROGRAM-ID. ENTERPRISE-CUSTOMER-MGMT. AUTHOR. Enterprise Development Team. DATE-WRITTEN. 2024-01-15. DATE-COMPILED. REMARKS. Comprehensive customer management system demonstrating proper PROGRAM-ID naming conventions and specifications. Program naming follows enterprise standards: - Descriptive business function name - Hyphen-separated word components - Maximum 30 character limit - Unique within application domain This program handles: - Customer data validation - Account balance processing - Report generation - Error handling and logging. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-Z15. OBJECT-COMPUTER. IBM-Z15. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-PROGRAM-IDENTIFICATION. 05 WS-PROGRAM-NAME PIC X(30) VALUE "ENTERPRISE-CUSTOMER-MGMT". 05 WS-PROGRAM-VERSION PIC X(10) VALUE "1.2.3". 05 WS-PROGRAM-TYPE PIC X(15) VALUE "MAIN-PROGRAM". 05 WS-PROGRAM-AUTHOR PIC X(30) VALUE "Enterprise Development Team". 01 WS-NAMING-VALIDATION. 05 WS-NAME-LENGTH PIC 9(2) VALUE 0. 05 WS-NAME-VALID PIC X VALUE 'Y'. 88 VALID-NAME VALUE 'Y'. 88 INVALID-NAME VALUE 'N'. 05 WS-NAMING-ERROR PIC X(50). 01 WS-PROGRAM-METADATA. 05 WS-BUSINESS-DOMAIN PIC X(20) VALUE "CUSTOMER-MANAGEMENT". 05 WS-FUNCTIONAL-AREA PIC X(20) VALUE "ACCOUNT-PROCESSING". 05 WS-SYSTEM-PREFIX PIC X(10) VALUE "ENT". 05 WS-MODULE-TYPE PIC X(15) VALUE "BATCH-PROCESSOR". PROCEDURE DIVISION. MAIN-PROGRAM-ID-DEMO. DISPLAY "=== PROGRAM-ID DEMONSTRATION ===" DISPLAY "Program: " WS-PROGRAM-NAME DISPLAY "Version: " WS-PROGRAM-VERSION DISPLAY "Type: " WS-PROGRAM-TYPE PERFORM DEMONSTRATE-NAMING-CONVENTIONS PERFORM VALIDATE-PROGRAM-NAMES PERFORM DISPLAY-METADATA-EXAMPLES DISPLAY "=== PROGRAM-ID DEMO COMPLETE ===" STOP RUN. DEMONSTRATE-NAMING-CONVENTIONS. DISPLAY " " DISPLAY "📋 PROGRAM-ID NAMING CONVENTIONS" DISPLAY "================================" DISPLAY "Current Program Details:" DISPLAY " Program Name: " WS-PROGRAM-NAME DISPLAY " Business Domain: " WS-BUSINESS-DOMAIN DISPLAY " Functional Area: " WS-FUNCTIONAL-AREA DISPLAY " System Prefix: " WS-SYSTEM-PREFIX DISPLAY " Module Type: " WS-MODULE-TYPE DISPLAY " " DISPLAY "✅ Best Practice Examples:" DISPLAY " CUSTOMER-ACCOUNT-INQUIRY" DISPLAY " PAYROLL-WEEKLY-PROCESSOR" DISPLAY " INVENTORY-STOCK-REPORT" DISPLAY " HR-EMPLOYEE-ONBOARDING" DISPLAY " FIN-BUDGET-CALCULATOR" DISPLAY " " DISPLAY "❌ Poor Naming Examples:" DISPLAY " PROG1 (too generic)" DISPLAY " CUSTOMERACCOUNTINQUIRYPROCESS (too long)" DISPLAY " Cust-Acct (inconsistent case)" DISPLAY " PROGRAM- (ends with hyphen)" DISPLAY " 123CUSTOMER (starts with digit)". VALIDATE-PROGRAM-NAMES. DISPLAY " " DISPLAY "🔍 PROGRAM NAME VALIDATION" DISPLAY "==========================" *> Test various program names PERFORM TEST-PROGRAM-NAME WITH "CUSTOMER-PROCESSING" PERFORM TEST-PROGRAM-NAME WITH "PAYROLL-CALC" PERFORM TEST-PROGRAM-NAME WITH "VERY-LONG-PROGRAM-NAME-EXCEEDS-LIMITS" PERFORM TEST-PROGRAM-NAME WITH "123INVALID" PERFORM TEST-PROGRAM-NAME WITH "VALID-NAME-" PERFORM TEST-PROGRAM-NAME WITH "GOOD-PROGRAM-NAME". TEST-PROGRAM-NAME. USING PROGRAM-NAME-TO-TEST. MOVE 'Y' TO WS-NAME-VALID MOVE SPACES TO WS-NAMING-ERROR *> Check length MOVE FUNCTION LENGTH(FUNCTION TRIM(PROGRAM-NAME-TO-TEST)) TO WS-NAME-LENGTH IF WS-NAME-LENGTH > 30 MOVE 'N' TO WS-NAME-VALID MOVE "Name exceeds 30 character limit" TO WS-NAMING-ERROR END-IF IF WS-NAME-LENGTH = 0 MOVE 'N' TO WS-NAME-VALID MOVE "Name cannot be empty" TO WS-NAMING-ERROR END-IF *> Check first character IF PROGRAM-NAME-TO-TEST(1:1) IS NUMERIC MOVE 'N' TO WS-NAME-VALID MOVE "Name cannot start with digit" TO WS-NAMING-ERROR END-IF *> Check last character IF PROGRAM-NAME-TO-TEST(WS-NAME-LENGTH:1) = "-" MOVE 'N' TO WS-NAME-VALID MOVE "Name cannot end with hyphen" TO WS-NAMING-ERROR END-IF *> Display results DISPLAY "Testing: '" PROGRAM-NAME-TO-TEST "'" DISPLAY " Length: " WS-NAME-LENGTH " characters" IF VALID-NAME DISPLAY " ✅ Valid program name" ELSE DISPLAY " ❌ Invalid: " WS-NAMING-ERROR END-IF DISPLAY " ". DISPLAY-METADATA-EXAMPLES. DISPLAY "📊 PROGRAM METADATA EXAMPLES" DISPLAY "============================" PERFORM SHOW-PROGRAM-CATEGORY WITH "MAIN-PROGRAMS" PERFORM SHOW-PROGRAM-CATEGORY WITH "SUBPROGRAMS" PERFORM SHOW-PROGRAM-CATEGORY WITH "UTILITY-PROGRAMS" PERFORM SHOW-PROGRAM-CATEGORY WITH "REPORT-PROGRAMS". SHOW-PROGRAM-CATEGORY. USING CATEGORY-NAME. DISPLAY " " DISPLAY "📂 " CATEGORY-NAME ":" EVALUATE CATEGORY-NAME WHEN "MAIN-PROGRAMS" DISPLAY " CUSTOMER-MASTER-UPDATE" DISPLAY " MONTHLY-SALES-PROCESSOR" DISPLAY " YEAR-END-CLOSING-JOB" DISPLAY " DAILY-TRANSACTION-LOAD" WHEN "SUBPROGRAMS" DISPLAY " DATE-VALIDATION-MODULE" DISPLAY " CURRENCY-CONVERTER" DISPLAY " TAX-CALCULATION-ROUTINE" DISPLAY " ADDRESS-STANDARDIZER" WHEN "UTILITY-PROGRAMS" DISPLAY " FILE-BACKUP-UTILITY" DISPLAY " DATA-COMPRESSION-TOOL" DISPLAY " LOG-FILE-ANALYZER" DISPLAY " SYSTEM-HEALTH-CHECKER" WHEN "REPORT-PROGRAMS" DISPLAY " FINANCIAL-SUMMARY-RPT" DISPLAY " CUSTOMER-AGING-REPORT" DISPLAY " INVENTORY-STATUS-RPT" DISPLAY " EMPLOYEE-PAYROLL-RPT" END-EVALUATE.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376*> Advanced PROGRAM-ID features and nested program examples IDENTIFICATION DIVISION. PROGRAM-ID. ADVANCED-PROGRAM-DEMO INITIAL RECURSIVE. AUTHOR. Advanced Development Team. REMARKS. Demonstrates advanced PROGRAM-ID features including INITIAL clause for reentrant behavior, RECURSIVE clause for recursive calls, and nested program organization. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-Z15. OBJECT-COMPUTER. IBM-Z15. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-PROGRAM-ATTRIBUTES. 05 WS-IS-INITIAL PIC X VALUE 'Y'. 88 PROGRAM-IS-INITIAL VALUE 'Y'. 05 WS-IS-RECURSIVE PIC X VALUE 'Y'. 88 PROGRAM-IS-RECURSIVE VALUE 'Y'. 05 WS-NESTING-LEVEL PIC 9(2) VALUE 0. 01 WS-RECURSIVE-DATA. 05 WS-FACTORIAL-INPUT PIC 9(3) VALUE 0. 05 WS-FACTORIAL-RESULT PIC 9(10) VALUE 1. 05 WS-RECURSION-DEPTH PIC 9(3) VALUE 0. 01 WS-PROGRAM-STATISTICS. 05 WS-CALL-COUNT PIC 9(6) VALUE 0. 05 WS-NESTED-CALLS PIC 9(4) VALUE 0. 05 WS-RECURSIVE-CALLS PIC 9(4) VALUE 0. PROCEDURE DIVISION. MAIN-ADVANCED-DEMO. DISPLAY "=== ADVANCED PROGRAM-ID FEATURES ===" PERFORM DEMONSTRATE-INITIAL-BEHAVIOR PERFORM DEMONSTRATE-RECURSIVE-CALLS PERFORM DEMONSTRATE-NESTED-PROGRAMS PERFORM DISPLAY-PROGRAM-STATISTICS DISPLAY "=== ADVANCED DEMO COMPLETE ===" GOBACK. DEMONSTRATE-INITIAL-BEHAVIOR. DISPLAY " " DISPLAY "🔄 INITIAL CLAUSE DEMONSTRATION" DISPLAY "===============================" ADD 1 TO WS-CALL-COUNT DISPLAY "Program call #" WS-CALL-COUNT IF PROGRAM-IS-INITIAL DISPLAY "✅ Program has INITIAL clause" DISPLAY " - Working-Storage initialized on each call" DISPLAY " - Program state reset between calls" DISPLAY " - Suitable for reentrant processing" ELSE DISPLAY "⚠️ Program does not have INITIAL clause" DISPLAY " - Working-Storage retains values" DISPLAY " - Program state persists between calls" END-IF DISPLAY "Current call count: " WS-CALL-COUNT. DEMONSTRATE-RECURSIVE-CALLS. DISPLAY " " DISPLAY "🔁 RECURSIVE CLAUSE DEMONSTRATION" DISPLAY "=================================" IF PROGRAM-IS-RECURSIVE DISPLAY "✅ Program has RECURSIVE clause" DISPLAY " - Can call itself directly or indirectly" DISPLAY " - Supports recursive algorithms" MOVE 5 TO WS-FACTORIAL-INPUT PERFORM CALCULATE-FACTORIAL DISPLAY "Factorial calculation example:" DISPLAY " Input: " WS-FACTORIAL-INPUT DISPLAY " Result: " WS-FACTORIAL-RESULT DISPLAY " Recursion depth: " WS-RECURSION-DEPTH ELSE DISPLAY "⚠️ Program does not have RECURSIVE clause" DISPLAY " - Cannot call itself" DISPLAY " - Recursive calls would cause errors" END-IF. CALCULATE-FACTORIAL. ADD 1 TO WS-RECURSION-DEPTH ADD 1 TO WS-RECURSIVE-CALLS DISPLAY " Recursive call depth: " WS-RECURSION-DEPTH DISPLAY " Calculating factorial of: " WS-FACTORIAL-INPUT IF WS-FACTORIAL-INPUT <= 1 MOVE 1 TO WS-FACTORIAL-RESULT DISPLAY " Base case reached: result = 1" ELSE COMPUTE WS-FACTORIAL-RESULT = WS-FACTORIAL-INPUT * WS-FACTORIAL-RESULT SUBTRACT 1 FROM WS-FACTORIAL-INPUT *> Recursive call (simulated for demonstration) DISPLAY " Recursive call with: " WS-FACTORIAL-INPUT PERFORM CALCULATE-FACTORIAL END-IF SUBTRACT 1 FROM WS-RECURSION-DEPTH. DEMONSTRATE-NESTED-PROGRAMS. DISPLAY " " DISPLAY "📦 NESTED PROGRAM DEMONSTRATION" DISPLAY "===============================" DISPLAY "Calling nested utility programs:" CALL "DATE-UTILITY" ADD 1 TO WS-NESTED-CALLS CALL "MATH-UTILITY" ADD 1 TO WS-NESTED-CALLS CALL "STRING-UTILITY" ADD 1 TO WS-NESTED-CALLS DISPLAY "Nested program calls completed: " WS-NESTED-CALLS. DISPLAY-PROGRAM-STATISTICS. DISPLAY " " DISPLAY "📊 PROGRAM EXECUTION STATISTICS" DISPLAY "===============================" DISPLAY "Program Name: ADVANCED-PROGRAM-DEMO" DISPLAY "Attributes:" DISPLAY " - INITIAL: " WS-IS-INITIAL DISPLAY " - RECURSIVE: " WS-IS-RECURSIVE DISPLAY " " DISPLAY "Execution Metrics:" DISPLAY " Total calls: " WS-CALL-COUNT DISPLAY " Nested calls: " WS-NESTED-CALLS DISPLAY " Recursive calls: " WS-RECURSIVE-CALLS DISPLAY " Maximum recursion depth: " WS-RECURSION-DEPTH. *> ================================================================ *> NESTED UTILITY PROGRAMS *> ================================================================ IDENTIFICATION DIVISION. PROGRAM-ID. DATE-UTILITY COMMON. REMARKS. Common nested program for date operations. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-DATE-WORK. 05 WS-CURRENT-DATE PIC X(8). 05 WS-FORMATTED-DATE PIC X(10). PROCEDURE DIVISION. DATE-UTILITY-MAIN. DISPLAY " 📅 DATE-UTILITY executing..." MOVE FUNCTION CURRENT-DATE(1:8) TO WS-CURRENT-DATE STRING WS-CURRENT-DATE(1:4) "/" WS-CURRENT-DATE(5:2) "/" WS-CURRENT-DATE(7:2) DELIMITED BY SIZE INTO WS-FORMATTED-DATE DISPLAY " Current date: " WS-FORMATTED-DATE GOBACK. END PROGRAM DATE-UTILITY. IDENTIFICATION DIVISION. PROGRAM-ID. MATH-UTILITY COMMON. REMARKS. Common nested program for mathematical operations. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-MATH-WORK. 05 WS-NUMBER-1 PIC 9(3) VALUE 25. 05 WS-NUMBER-2 PIC 9(3) VALUE 15. 05 WS-RESULT PIC 9(6) VALUE 0. PROCEDURE DIVISION. MATH-UTILITY-MAIN. DISPLAY " 🧮 MATH-UTILITY executing..." ADD WS-NUMBER-1 TO WS-NUMBER-2 GIVING WS-RESULT DISPLAY " " WS-NUMBER-1 " + " WS-NUMBER-2 " = " WS-RESULT MULTIPLY WS-NUMBER-1 BY WS-NUMBER-2 GIVING WS-RESULT DISPLAY " " WS-NUMBER-1 " × " WS-NUMBER-2 " = " WS-RESULT GOBACK. END PROGRAM MATH-UTILITY. IDENTIFICATION DIVISION. PROGRAM-ID. STRING-UTILITY COMMON. REMARKS. Common nested program for string operations. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-STRING-WORK. 05 WS-INPUT-STRING PIC X(30) VALUE "Hello COBOL World". 05 WS-OUTPUT-STRING PIC X(30). 05 WS-STRING-LENGTH PIC 9(3) VALUE 0. PROCEDURE DIVISION. STRING-UTILITY-MAIN. DISPLAY " 🔤 STRING-UTILITY executing..." MOVE FUNCTION LENGTH(FUNCTION TRIM(WS-INPUT-STRING)) TO WS-STRING-LENGTH MOVE FUNCTION UPPER-CASE(WS-INPUT-STRING) TO WS-OUTPUT-STRING DISPLAY " Input: '" WS-INPUT-STRING "'" DISPLAY " Length: " WS-STRING-LENGTH DISPLAY " Upper: '" WS-OUTPUT-STRING "'" GOBACK. END PROGRAM STRING-UTILITY. END PROGRAM ADVANCED-PROGRAM-DEMO. *> ================================================================ *> PROGRAM NAMING STANDARDS *> ================================================================ IDENTIFICATION DIVISION. PROGRAM-ID. NAMING-STANDARDS-GUIDE. AUTHOR. Standards Committee. REMARKS. Comprehensive guide to enterprise PROGRAM-ID naming standards and organizational conventions. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAMING-STANDARDS. 05 WS-STANDARD-CATEGORIES OCCURS 8 TIMES. 10 WS-CATEGORY-NAME PIC X(20). 10 WS-NAMING-PATTERN PIC X(30). 10 WS-EXAMPLE-NAME PIC X(30). 10 WS-DESCRIPTION PIC X(50). 01 WS-DOMAIN-PREFIXES. 05 WS-PREFIX-COUNT PIC 9(2) VALUE 6. 05 WS-DOMAIN-PREFIX OCCURS 6 TIMES. 10 WS-PREFIX-CODE PIC X(5). 10 WS-PREFIX-DOMAIN PIC X(25). 10 WS-PREFIX-EXAMPLE PIC X(30). PROCEDURE DIVISION. NAMING-STANDARDS-DEMO. DISPLAY "=== PROGRAM-ID NAMING STANDARDS ===" PERFORM LOAD-NAMING-STANDARDS PERFORM DISPLAY-NAMING-CATEGORIES PERFORM DISPLAY-DOMAIN-PREFIXES PERFORM SHOW-COMPLETE-EXAMPLES DISPLAY "=== NAMING STANDARDS COMPLETE ===" STOP RUN. LOAD-NAMING-STANDARDS. *> Load naming categories MOVE "BATCH-PROGRAMS" TO WS-CATEGORY-NAME(1) MOVE "DOMAIN-FUNCTION-TYPE" TO WS-NAMING-PATTERN(1) MOVE "PAYROLL-WEEKLY-BATCH" TO WS-EXAMPLE-NAME(1) MOVE "Scheduled batch processing programs" TO WS-DESCRIPTION(1) MOVE "ONLINE-PROGRAMS" TO WS-CATEGORY-NAME(2) MOVE "SYSTEM-MODULE-FUNC" TO WS-NAMING-PATTERN(2) MOVE "CICS-CUSTOMER-INQUIRY" TO WS-EXAMPLE-NAME(2) MOVE "Interactive online transaction programs" TO WS-DESCRIPTION(2) MOVE "UTILITY-PROGRAMS" TO WS-CATEGORY-NAME(3) MOVE "UTIL-FUNCTION-TYPE" TO WS-NAMING-PATTERN(3) MOVE "UTIL-FILE-CONVERTER" TO WS-EXAMPLE-NAME(3) MOVE "General purpose utility programs" TO WS-DESCRIPTION(3) MOVE "REPORT-PROGRAMS" TO WS-CATEGORY-NAME(4) MOVE "RPT-BUSINESS-PERIOD" TO WS-NAMING-PATTERN(4) MOVE "RPT-SALES-MONTHLY" TO WS-EXAMPLE-NAME(4) MOVE "Report generation programs" TO WS-DESCRIPTION(4) MOVE "SUBPROGRAMS" TO WS-CATEGORY-NAME(5) MOVE "FUNC-PURPOSE-MOD" TO WS-NAMING-PATTERN(5) MOVE "CALC-INTEREST-MODULE" TO WS-EXAMPLE-NAME(5) MOVE "Reusable subprogram modules" TO WS-DESCRIPTION(5) MOVE "TEST-PROGRAMS" TO WS-CATEGORY-NAME(6) MOVE "TEST-COMPONENT-NUM" TO WS-NAMING-PATTERN(6) MOVE "TEST-VALIDATION-01" TO WS-EXAMPLE-NAME(6) MOVE "Testing and quality assurance programs" TO WS-DESCRIPTION(6) *> Load domain prefixes MOVE "HR" TO WS-PREFIX-CODE(1) MOVE "HUMAN RESOURCES" TO WS-PREFIX-DOMAIN(1) MOVE "HR-EMPLOYEE-ONBOARDING" TO WS-PREFIX-EXAMPLE(1) MOVE "FIN" TO WS-PREFIX-CODE(2) MOVE "FINANCIAL SYSTEMS" TO WS-PREFIX-DOMAIN(2) MOVE "FIN-ACCOUNTS-PAYABLE" TO WS-PREFIX-EXAMPLE(2) MOVE "INV" TO WS-PREFIX-CODE(3) MOVE "INVENTORY MANAGEMENT" TO WS-PREFIX-DOMAIN(3) MOVE "INV-STOCK-REPLENISH" TO WS-PREFIX-EXAMPLE(3) MOVE "CRM" TO WS-PREFIX-CODE(4) MOVE "CUSTOMER RELATIONSHIP" TO WS-PREFIX-DOMAIN(4) MOVE "CRM-LEAD-TRACKING" TO WS-PREFIX-EXAMPLE(4) MOVE "SYS" TO WS-PREFIX-CODE(5) MOVE "SYSTEM OPERATIONS" TO WS-PREFIX-DOMAIN(5) MOVE "SYS-BACKUP-MANAGER" TO WS-PREFIX-EXAMPLE(5) MOVE "RPT" TO WS-PREFIX-CODE(6) MOVE "REPORTING SYSTEMS" TO WS-PREFIX-DOMAIN(6) MOVE "RPT-EXECUTIVE-DASH" TO WS-PREFIX-EXAMPLE(6). DISPLAY-NAMING-CATEGORIES. DISPLAY " " DISPLAY "📋 NAMING CATEGORIES AND PATTERNS" DISPLAY "==================================" PERFORM VARYING WS-CATEGORY-INDEX FROM 1 BY 1 UNTIL WS-CATEGORY-INDEX > 6 DISPLAY " " DISPLAY "📂 " WS-CATEGORY-NAME(WS-CATEGORY-INDEX) DISPLAY " Pattern: " WS-NAMING-PATTERN(WS-CATEGORY-INDEX) DISPLAY " Example: " WS-EXAMPLE-NAME(WS-CATEGORY-INDEX) DISPLAY " Purpose: " WS-DESCRIPTION(WS-CATEGORY-INDEX) END-PERFORM. DISPLAY-DOMAIN-PREFIXES. DISPLAY " " DISPLAY "🏷️ DOMAIN PREFIXES" DISPLAY "==================" PERFORM VARYING WS-PREFIX-INDEX FROM 1 BY 1 UNTIL WS-PREFIX-INDEX > 6 DISPLAY " " DISPLAY WS-PREFIX-CODE(WS-PREFIX-INDEX) " - " WS-PREFIX-DOMAIN(WS-PREFIX-INDEX) DISPLAY " Example: " WS-PREFIX-EXAMPLE(WS-PREFIX-INDEX) END-PERFORM. SHOW-COMPLETE-EXAMPLES. DISPLAY " " DISPLAY "✅ COMPLETE NAMING EXAMPLES" DISPLAY "===========================" DISPLAY " " DISPLAY "Enterprise Application Programs:" DISPLAY " MAIN-CUSTOMER-PROCESSOR" DISPLAY " BATCH-MONTHLY-BILLING" DISPLAY " ONLINE-ORDER-ENTRY" DISPLAY " RPT-QUARTERLY-SALES" DISPLAY " UTIL-DATA-MIGRATION" DISPLAY " " DISPLAY "Domain-Specific Programs:" DISPLAY " HR-PAYROLL-CALCULATION" DISPLAY " FIN-BUDGET-ANALYSIS" DISPLAY " INV-WAREHOUSE-MGMT" DISPLAY " CRM-CONTACT-SYNC" DISPLAY " SYS-LOG-ARCHIVER" DISPLAY " " DISPLAY "Modular Components:" DISPLAY " CALC-TAX-ROUTINE" DISPLAY " VALID-ADDRESS-CHECK" DISPLAY " FORMAT-PHONE-NUMBER" DISPLAY " CONVERT-DATE-FORMAT" DISPLAY " ENCRYPT-SENSITIVE-DATA". END PROGRAM NAMING-STANDARDS-GUIDE.