What's wrong with extending the standard on the platform where COBOL rules? The mainframe's raison d'ĂȘtre is to run COBOL programs! The ANSI standard specifies OO but that seems to be only for Java interop on z/OS.

On 2020-04-08 8:30 PM, Seymour J Metz wrote:
Either ANSI requires allowing recursive inner subroutines or it doesn't. If 
ANSI requires it then IBM isn't ANSI compliant; if ANSI doesn't require it then 
it clearly has to do with COBOL semantics and the other compilers have extended 
the standard. If ANSI doesn't require it then the question remains why not.


--
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 7:37 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Why rip out COBOL when you can modernize key applications? - 
Weirdware

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

----------------------------------------------------------------------
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