See QuineProgram.
IDENTIFICATION DIVISION.
PROGRAM-ID. QUINE.
AUTHOR. DAVE BURT.
DATE-WRITTEN. 18-09-2002.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
OCCURS 4 REDEFINES WS-DATA.
PROCEDURE DIVISION.
PERFORM VARYING WS-NDX
FROM WS-START BY 1
UNTIL WS-NDX >= WS-SPLIT
MOVE WS-ARR(WS-NDX) TO WS-OUT-AREA
DISPLAY WS-OUT-REC
END-PERFORM
MOVE WS-ARR(1) TO WS-OUT-PFX
MOVE QUOTE TO WS-OUT-Q1
MOVE QUOTE TO WS-OUT-Q2
MOVE WS-ARR(2) TO WS-OUT-SFX
PERFORM VARYING WS-NDX
FROM 1 BY 1
UNTIL WS-NDX > WS-CNT
MOVE WS-ARR(WS-NDX) TO WS-OUT-STR
DISPLAY WS-OUT-REC
END-PERFORM
PERFORM VARYING WS-NDX
FROM WS-SPLIT BY 1
UNTIL WS-NDX > WS-CNT
MOVE WS-ARR(WS-NDX) TO WS-OUT-AREA
DISPLAY WS-OUT-REC
END-PERFORM
STOP RUN.
-- dave@burt.id.au
Excuse: I was very bored, and saw on some QuineInManyLanguages Web site that such a thing was missing. If I recall correctly, this is version two. CobolLanguage presents an interesting challenge in writing such things in a number of ways, not least of which is the line length limit. Also there is a shorter version by Tom Dawes-Gamble (a real COBOL programmer) at http://www.tmdg.co.uk/programing/quine.cbl.php