As Martin previously mentioned some languages implement proper tail calls so they effectively turn recursion into iteration https://www.lua.org/pil/6.3.html.

This is a great optimization as recursion is often the most elegant method to implement many data structures and algorithms (quicksort, binary trees etc).


On 2020-04-09 12:40 AM, Frank Swarbrick wrote:
Yes, very verbose.
And yes, recursion is possible, but you must specify "IS RECURSIVE" on the 
PROGRAM-ID.  Not sure what having nested programs has to do with that, though.

________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of David 
Crayford <dcrayf...@gmail.com>
Sent: Tuesday, April 7, 2020 7:44 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

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

Reply via email to