On 2020-04-08 7:24 PM, Seymour J Metz wrote:
Recursive programs cannot contain nested subprograms.
Why, in the name of the great lord Harry, not? I'll stick to PL/I, TYVM.

COBOL semantics probably don't have anything to do with it as other COBOL compilers support it. I would suggest it's an implementation detail with how z/OS COBOL allocates LOCAL-STORAGE.




--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, April 8, 2020 4:37 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Why rip out COBOL when you can modernize key applications? - 
Weirdware

*RECURSIVE*
     An optional clause that allows COBOL programs to be recursively
     reentered.

     You can specify the RECURSIVE clause only on the outermost program
     of a compilation unit. Recursive programs cannot contain nested
     subprograms.

     If the RECURSIVE clause is specified, program-name can be
     recursively reentered while a previous invocation is still active.
     If the RECURSIVE clause is not specified, an active program cannot
     be recursively reentered.

On 2020-04-08 4:09 PM, Mike Schwab wrote:
PROGRAM-ID pgmname RECURSIVE.

https://www.ibm.com/support/knowledgecenter/en/SS6SG3_4.2.0/com.ibm.entcobol.doc_4.2/PGandLR/tasks/tpsubw03.htm

On Tue, Apr 7, 2020 at 9:47 PM Seymour J Metz <sme...@gmu.edu> wrote:
Maybe,but there's nothing in his example to suggest that COBOL supports 
recursion; you'd have to check the documentation.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, April 7, 2020 9:44 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Why rip out COBOL when you can modernize key applications? - 
Weirdware

Wow, and some people criticize Java for being verbose!

So using nested programs one can implement recursion in COBOL which you
couldn't do before without using a table stack.

On 2020-04-08 5:14 AM, Frank Swarbrick wrote:
Nested subroutines.

Small example:

    ID DIVISION.
    PROGRAM-NAME. MAINPROG.
    [...]
    PROCEDURE DIVISION.
        CALL 'NESTED-PROGRAM-1'
        GOBACK.

    ID DIVISION.
    PROGRAM-ID. NESTED-PROGRAM-1.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01  LOCAL-VAR-1 PIC X.
    [...]
    PROCEDURE DIVISION.
        DISPLAY 'IN NESTED-PROGRAM-1'
        GOBACK.

    END PROGRAM NESTED-PROGRAM-1.

    END PROGRAM MAINPROG.

________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of David 
Spiegel <dspiegel...@hotmail.com>
Sent: Tuesday, April 7, 2020 2:58 PM
To: IBM-MAIN@LISTSERV.UA.EDU <IBM-MAIN@LISTSERV.UA.EDU>
Subject: Re: Why rip out COBOL when you can modernize key applications? - 
Weirdware

Hi Frank,
Thank you for that information.
(All the COBOL I support(ed) didn't contain these and neither did my
university courses in the '70s.)

If I wanted to look them up, which keyword(s) would I use?

Thanks and regards,
David

On 2020-04-07 15:49, Frank Swarbrick wrote:
Internal subroutines and local variables have been supported since COBOL 1985 
(VS COBOL II era).
They're not ideal, but they do exist.

________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of David 
Spiegel <dspiegel...@hotmail.com>
Sent: Tuesday, April 7, 2020 12:58 PM
To: IBM-MAIN@LISTSERV.UA.EDU <IBM-MAIN@LISTSERV.UA.EDU>
Subject: Re: Why rip out COBOL when you can modernize key applications? - 
Weirdware

How about no internal subroutines with local variables?

On 2020-04-07 14:47, Bob Bridges wrote:
I used to bad-mouth COBOL, and I still prefer languages that are less wordy.  But I came 
somewhat reluctantly to see that it has its strengths.  The one I think most important is 
that it encourages even novice programmers to organize their logic in what we used to 
call a "top-down" manner:  This paragraph accomplish a certain task by 
executing paragraphs one through three, then two more, and this subparagraph executes 
subsubparagraphs, and so on.  Forms good habits, I think.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* My life is in the hands of any fool who can make me lose my temper.  
-driving motto */

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of scott Ford
Sent: Tuesday, April 7, 2020 12:55

I learned Assembler first and then Cobol and then some PL/1.  I always felt 
each language had its strengths and weaknesses and all were like tools in a 
toolbox.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to