Rich kids are into COBOL

Rich Alderson RichA at LivingComputerMuseum.org
Wed Feb 18 14:08:27 CST 2015


From: Sean Conner
Sent: Wednesday, February 18, 2015 8:56 AM

> It was thus said that the Great Chuck Guzis once stated:

>> Is there any other language (save PL/I for obvious reasons) that has an
>> equivalent to the COBOL PERFORM...THRU statement?

>> That one always struck me as being a bit offbeat.  Example: Consider a
>> section of a program with 4 consecutive paragraphs, named PARA-1 through
>> PARA-4.  One can say in the same program:

>> PERFORM PARA-2 THRU PARA-3 WITH TEST AFTER VARYING INDEX-1 FROM 10 BY 3
   	   	       	      ^^^^^^^^^ ^^^^^
>> UNTIL FLAG-1 > 0.

Syntax error.  The syntax of the PERFORM verb in this case is

       PERFORM paragraph-1 [{THRU,THROUGH} paragraph-2]
       	       VARYING {identifier-1, index-name-1} FROM {identifier-2,
	       	       		      		    	  index-name-2,
							  literal-1}
						    BY {identifier-3,
						        index-name-3,
							literal-2}
						    UNTIL condition-1
	      [AFTER VARYING {identifier-4, index-name-4} FROM {identifier-5
		                                                index-name-5
                    						literal-3}
							  BY {identifier-6,
							      index-name-6,
							      literal-4}
							  UNTIL condition-2
	      [AFTER VARYING {identifier-7, index-name-7} FROM {identifier-8
	                                                        index-name-8
	                                                        literal-5}
	                                                  BY {identifier-9,
	                                                      index-name-9,
	                                                      literal-6}
	                                                  UNTIL condition-3]]
        .

Braces indicate alternatives, brackets indicate optional portions of the statement.

An AFTER VARYING clause can only occur in a 2nd or 3rd position following
the 1st VARYING clause.

There is no "WITH xxxx" in the 1968 or 1974 CODASYL standard; did that come
into the language in 1985 or later?  Never mind, I just checked the IBM COBOL
reference manual, based on the 1985 standard, and do not see it there, either.

    index_1 = 10
    ^^^^^^^^^^^^
>   repeat	
>     para_2()	
>     para_3()	
>     index_1 -= 3
>   until flag_1 > 0

Sean forgot to initialize index_1 to 10 before beginning the repeat ... until
loop.

                                                                Rich

Rich Alderson
Vintage Computing Sr. Systems Engineer
Living Computer Museum
2245 1st Avenue S
Seattle, WA 98134

mailto:RichA at LivingComputerMuseum.org

http://www.LivingComputerMuseum.org/


More information about the cctalk mailing list