Tenho sempre por hábito fazer pequenos algoritmos que poderão dar jeito em alguma circunstância do nosso dia a dia profissional.
A finalidade deste algoritmo é comparar dois nomes, e verificar que mesmo que contenham alguns dos nomes abreviados, ele verifica que se trata de nomes iguais.

Algoritmo – Comparação de nomes abreviados

IDENTIFICATION DIVISION.
PROGRAM-ID. COMPARACAO-NOMES-ABREVIATURAS.
DATA DIVISION.
    WORKING-STORAGE SECTION.
        01  NOME1.
            02 CARACTER1 PIC X(01) OCCURS 60.
        01 NOME1-RED REDEFINES NOME1 PIC X(60).
        01  NOME2.
            02 CARACTER2 PIC X(01) OCCURS 60.
        01 NOME2-RED REDEFINES NOME2 PIC X(60).
        01 IND1 PIC 9(02).
        01 IND2 PIC 9(02).
        01 IND3 PIC 9(02).
        01 IND4 PIC 9(02).
        01 NOMEP PIC X(15).
        01 NOMEU PIC X(15).
        01 TAMANHO1 PIC 9(02).
        01 TAMANHO2 PIC 9(02).
        01 ESPACOS PIC 9(02).
PROCEDURE DIVISION.
    MOVE 'MARCELO NUNO DUARTE REBELO DE SOUSA' TO NOME1.
    MOVE 'MARCELO N D REBELO DE SOUSA' TO NOME2.
    INSPECT NOME1-RED TALLYING ESPACOS FOR TRAILING SPACES
    COMPUTE TAMANHO1 = FUNCTION LENGTH(NOME1-RED) - ESPACOS
  
    MOVE ZEROS TO ESPACOS
    
    INSPECT NOME2-RED TALLYING ESPACOS FOR TRAILING SPACES
    COMPUTE TAMANHO2 = FUNCTION LENGTH(NOME2-RED) - ESPACOS
    
    IF TAMANHO1 < TAMANHO2
        MOVE TAMANHO2       TO TAMANHO1
    END-IF
    
    MOVE 1      TO IND1 IND2.
    PERFORM UNTIL IND1 > TAMANHO1
        IF CARACTER1(IND1) = CARACTER2(IND2)
            ADD 1       TO IND1
            ADD 1       TO IND2
            IF CARACTER1(IND1) = SPACES
                PERFORM UNTIL CARACTER1(IND1) = SPACES
                    ADD 1   TO IND1
                END-PERFORM
                ADD 1   TO IND1
                PERFORM UNTIL CARACTER2(IND2) = SPACES
                    ADD 1   TO IND2
                END-PERFORM
                ADD 1   TO IND2
            END-IF
            IF CARACTER2(IND2) = SPACES
                PERFORM UNTIL CARACTER1(IND1) = SPACES
                    ADD 1   TO IND1
                END-PERFORM
                ADD 1   TO IND1
                PERFORM UNTIL CARACTER2(IND2) = SPACES
                    ADD 1   TO IND2
                END-PERFORM
                ADD 1   TO IND2
            END-IF
        ELSE
            DISPLAY 'NOMES DIFERENTES' IND2
            COMPUTE  IND1 = TAMANHO1 + 1
        END-IF
    END-PERFORM
STOP RUN.


Podes sempre testar este código no site: https://www.jdoodle.com/execute-cobol-online/

Nota: Recordo que todos os algoritmos aqui apresentados poderão estar sujeitos a maior optimização. Como todos nós sabemos, existe várias formas de chegar ao objectivo final. Eu apresento a minha… o que não quer dizer que a sua também não seja válida.