Walt Mankowski via plug on 11 Apr 2022 06:16:11 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Book: Modern Mainframe Development


5 years ago I did a talk for PLUG called "Secrets of the Dead: What
Modern Programmers Can Learn from COBOL". We've got a bunch of new
folks coming to the meetings, especially since we went virtual. I
could do an encore version of it for North tomorrow night if anyone's
interested.

Walt

On Mon, Apr 11, 2022 at 08:27:26AM -0400, Walt Mankowski via plug wrote:
> The COBOL Fibonacci sequence example on Rosetta Code is a lot more
> complex than it needs to be. I've attached a much simpler version.
> 
> Walt
> 
> On Mon, Apr 11, 2022 at 12:37:51AM -0400, Lynn Bradshaw via plug wrote:
> > Not having used COBOL directly but having seen code examples, like the
> > Fibonacci sequence ones on Rosetta Code, it looks insanely
> > arthritis-inducing. I get the idea is for it to be readable for a pretty
> > broad spectrum of different types of workers but I think Smalltalk nailed
> > it down better with a mixture of terse algebraic syntax and syntax more
> > like English language. APL is the other extreme opposite COBOL and
> > Smalltalk sits in that nice golden mean.
> > 
> > On Mon, Apr 11, 2022, 00:21 Steve Litt via plug <plug@lists.phillylinux.org>
> > wrote:
> > 
> > > JP Vossen via plug said on Sat, 9 Apr 2022 15:00:24 -0400
> > >
> > > >While this may seem OT for this list, it's not.
> > > >
> > > >I've just started reading a 2022-03 _Modern Mainframe Development_
> > > >book (345 pages), and I find it really interesting.  Thus far it has
> > > >made a compelling case for the strong demand side of skilling up in
> > > >COBOL and IBM mainframe technologies.  This is pretty interesting too:
> > > >https://github.com/search?q=COBOL.
> > >
> > > I've always thought that COBOL has gotten a bad rap. It has built-in
> > > ISAM, which is pretty darn cool. Except for hitting the hardware
> > > directly, in COBOL you can do most of what you can do in C,
> > > including recursion. I don't know if you can pass references
> > > to paragraphs or linked procedures in order to make callbacks. My only
> > > real complaint about COBOL is that paragraphs can't have their own local
> > > variables: Variables are local to the compiled source file only, so you
> > > need to use CALL to call procedures linked in from other files.
> > >
> > >
> > > SteveT
> > >
> > > Steve Litt
> > > March 2022 featured book: Making Mental Models: Advanced Edition
> > > http://www.troubleshooters.com/mmm
> > > ___________________________________________________________________________
> > > Philadelphia Linux Users Group         --
> > > http://www.phillylinux.org
> > > Announcements -
> > > http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > > General Discussion  --
> > > http://lists.phillylinux.org/mailman/listinfo/plug
> > >
> 
> > ___________________________________________________________________________
> > Philadelphia Linux Users Group         --        http://www.phillylinux.org
> > Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> > General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug
> 

> Program-ID. fib2.
> Data Division.
> Working-Storage Section.
>   01  FIBONACCI-PROCESSING.
>     05  FIB-TMP           PIC 9(36).
>     05  FIB-ONE           PIC 9(36)   VALUE 0.
>     05  FIB-TWO           PIC 9(36)   VALUE 1.
>   01  DESIRED-COUNT       PIC 9(4).
>   01  FORMATTING.
>     05  INTERIM-RESULT    PIC Z(35)9.
> Procedure Division.
>   000-START-PROGRAM.
>     Display "What place of the Fibonacci Sequence would you like (<173)? " with no advancing.
>     Accept DESIRED-COUNT.
>     If DESIRED-COUNT is less than 1
>       Stop run.
>     If DESIRED-COUNT is less than 2
>       Perform 200-DISPLAY-FIBONACCI
>       Stop run.
>     Subtract 1 from DESIRED-COUNT.
>     Perform 200-DISPLAY-FIBONACCI.
>     Perform 100-COMPUTE-FIBONACCI until DESIRED-COUNT = zero.
>     Stop run.
>   100-COMPUTE-FIBONACCI.
>     Move FIB-TWO to INTERIM-RESULT.
>     Perform 200-DISPLAY-FIBONACCI.
>     Compute FIB-TMP = FIB-ONE + FIB-TWO.
>     Move FIB-TWO to FIB-ONE.
>     Move FIB-TMP to FIB-TWO.
>     Subtract 1 from DESIRED-COUNT.
>   200-DISPLAY-FIBONACCI.
>     Display INTERIM-RESULT.




> ___________________________________________________________________________
> Philadelphia Linux Users Group         --        http://www.phillylinux.org
> Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug

Attachment: signature.asc
Description: PGP signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug