• Article on new mainframe use

    From Stephen Fuld@21:1/5 to All on Wed Aug 14 10:48:09 2024
    I don't think this is behind a paywall, but if it is I apologize.

    https://www.wsj.com/articles/mainframes-find-new-life-in-ai-era-1e32b951?page=1

    The article seems to confuse using a mainframe for AI with issues of
    using old COBOL applications, but otherwise interesting.



    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to All on Wed Aug 14 20:14:57 2024
    It says:: "please enable JS and disable add-blocker"

    ha

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Stephen Fuld on Thu Aug 15 00:02:11 2024
    On Wed, 14 Aug 2024 10:48:09 -0700, Stephen Fuld wrote:

    I don't think this is behind a paywall, but if it is I apologize.

    The easy way to test it for yourself is to try viewing it in private
    browsing mode.

    Mainframes are obsolete. The mindset of “the CPU is expensive, let’s surround it with complex channel controllers to handle batch I/O” stopped being relevant sometime in the 1980s, if not before.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From George Neuner@21:1/5 to All on Thu Aug 15 12:04:13 2024
    On Wed, 14 Aug 2024 20:14:57 +0000, mitchalsup@aol.com (MitchAlsup1)
    wrote:

    It says:: "please enable JS and disable add-blocker"

    ha

    8-) I do allow JS, but I tightly control it with NoScript.



    The article started ok, talking about how certain applications are
    latency sensitive and how they could benefit from having an AI be
    resident on the mainframe.

    Actually a good portion of the article seemed rather positive on the
    idea of implementing AI models on mainframes. Unfortunately it
    devolves into implications that AI doesn't play nice with COBOL and
    that mainframes can't be programmed in other languages.

    Not knowing COBOL well, I can't speak to the former. The latter,
    however, is bullshit.


    from the article:
    "
    Mainframes do have limitations. They are constrained by the computing
    power within their boxes, unlike the cloud, which can scale up by
    drawing on computing power distributed across many locations and
    servers. They are also unwieldy—with years of old code tacked on—and don’t integrate well with new applications. That makes them costly to
    manage and difficult to use as a platform for developing new
    applications.

    :

    Still, efforts to do away with the mainframe have been going for
    years, especially as the number of developers conversant in Cobol—one
    of the primary programming languages used in mainframes—quickly
    dwindles.
    "

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to Lawrence D'Oliveiro on Thu Aug 15 17:44:42 2024
    On Thu, 15 Aug 2024 0:02:11 +0000, Lawrence D'Oliveiro wrote:


    Mainframes are obsolete. The mindset of “the CPU is expensive, let’s surround it with complex channel controllers to handle batch I/O”
    stopped being relevant sometime in the 1980s, if not before.

    If one defines a mainframe computer as having the ability to remove and
    replace every component without taking the computer off line--then
    mainframes are still relevant. Reliability, Availability,
    Serviceability.

    And when I say everything I mean everything:
    power supplies, memories, disks, NICs, other devices, CPUs, cooling,
    ..

    Reliability may trade speed for never failing as a good trade off
    Availability 100% up time 24/7/365 for a decade or longer without
    outages
    Serviceability replacement of any and all modules while keeping the
    system "up"

    Thus a mainframe is more about how it is constructed than what parts
    are used to construct it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Fuld@21:1/5 to George Neuner on Thu Aug 15 10:29:41 2024
    On 8/15/2024 9:04 AM, George Neuner wrote:
    On Wed, 14 Aug 2024 20:14:57 +0000, mitchalsup@aol.com (MitchAlsup1)
    wrote:

    It says:: "please enable JS and disable add-blocker"

    ha

    8-) I do allow JS, but I tightly control it with NoScript.



    The article started ok, talking about how certain applications are
    latency sensitive and how they could benefit from having an AI be
    resident on the mainframe.

    Yes.



    Actually a good portion of the article seemed rather positive on the
    idea of implementing AI models on mainframes. Unfortunately it
    devolves into implications that AI doesn't play nice with COBOL and
    that mainframes can't be programmed in other languages.

    As I sort of said in my original post, I agree with your comment completely.


    Not knowing COBOL well, I can't speak to the former.

    I don't know how IBM implemented its interface to the neural net
    chiplet, but I would guess it is some sort of function call from the
    main program. Since COBOL has this capability, I don't see the problem.
    And I doubt IBM would have developed the capability if it could be
    accessed be accessed by pretty much any language that is commonly used
    on its computers. But again, I don't know the details.



    The latter,
    however, is bullshit.

    Of course.


    Another part of the article I found interesting is the market
    information of who uses mainframes, and the market size.



    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to George Neuner on Thu Aug 15 17:58:31 2024
    On Thu, 15 Aug 2024 16:04:13 +0000, George Neuner wrote:

    On Wed, 14 Aug 2024 20:14:57 +0000, mitchalsup@aol.com (MitchAlsup1)
    wrote:

    It says:: "please enable JS and disable add-blocker"

    ha

    8-) I do allow JS, but I tightly control it with NoScript.



    The article started ok, talking about how certain applications are
    latency sensitive and how they could benefit from having an AI be
    resident on the mainframe.

    There are only 3 kinds of applications::
    a) those that are latency sensitive
    b) those that are bandwidth sensitive
    c) those that are balanced between latency and bandwidth.

    Caches deal with (a)
    Vectors and/or GPUs deal with (b)
    (c) occurs few and far between.

    All SPEC benchmarks are (a)

    Actually a good portion of the article seemed rather positive on the
    idea of implementing AI models on mainframes. Unfortunately it
    devolves into implications that AI doesn't play nice with COBOL and
    that mainframes can't be programmed in other languages.

    The only way AI would not play nice with COBOL is if COBOL has no
    data type appropriate to the AI interface(s) as an argument or as
    a result. {{You can argue if this is a COBOL problem or an AI
    problem}}

    Not knowing COBOL well, I can't speak to the former. The latter,
    however, is bullshit.


    from the article:
    "
    Mainframes do have limitations. They are constrained by the computing
    power within their boxes, unlike the cloud, which can scale up by
    drawing on computing power distributed across many locations and
    servers. They are also unwieldy—with years of old code tacked on—and don’t integrate well with new applications. That makes them costly to manage and difficult to use as a platform for developing new
    applications.

    In 1982 I was sitting a room of sever TI silent 700 keyboards, logged
    onto a CDC 7600 in San Diego typing in 8085 ASM code; when all of a
    sudden the room went quiet (so much for the Silent part of Silent 700)
    About a minute later the clatter began again, this time I was still
    logged onto a CDC 7600, but not it was in Chicago, and I had all my
    files there ready for work. Apparently the San Diego machine took a
    hard crash, and the PPs shipped the workload to Chicago where we
    continues to work as if nothing had happened....

    1982 people--NOS--pre internet...

    :

    Still, efforts to do away with the mainframe have been going for
    years, especially as the number of developers conversant in Cobol—one
    of the primary programming languages used in mainframes—quickly
    dwindles.
    "

    While dusty deck COBOL programs make assumptions about the environment
    they compute within, there is nothing preventing computer makers from supporting those features that COBOL programs require and getting a
    COBOL compiler for their ISA up and running. The problem is that as
    long as there are mainframe makers, the other computer makers do not
    see a big enough market to make the required investments.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Fuld@21:1/5 to All on Thu Aug 15 11:10:35 2024
    On 8/15/2024 10:58 AM, MitchAlsup1 wrote:
    On Thu, 15 Aug 2024 16:04:13 +0000, George Neuner wrote:

    On Wed, 14 Aug 2024 20:14:57 +0000, mitchalsup@aol.com (MitchAlsup1)
    wrote:

    It says:: "please enable JS and disable add-blocker"

    ha

    8-)  I do allow JS, but I tightly control it with NoScript.



    The article started ok, talking about how certain applications are
    latency sensitive and how they could benefit from having an AI be
    resident on the mainframe.

    There are only 3 kinds of applications::
    a) those that are latency sensitive
    b) those that are bandwidth sensitive
    c) those that are balanced between latency and bandwidth.

    Caches deal with (a)

    Not in the case discussed in the article. The functionality required by
    the program was some sort of neural net to detect fraud (for a credit
    card authorization) and done on a specialized chiplet. The latency was
    the difference between the chiplet on the same chip as the "main" CPU
    versus on some cloud a network away.



    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Niklas Holsti@21:1/5 to All on Thu Aug 15 22:06:16 2024
    On 2024-08-15 20:58, MitchAlsup1 wrote:
    On Thu, 15 Aug 2024 16:04:13 +0000, George Neuner wrote:

    ...

    from the article:

    ...

    "Still, efforts to do away with the mainframe have been going for
    years, especially as the number of developers conversant in Cobol—one
    of the primary programming languages used in mainframes—quickly
    dwindles.
    "

    While dusty deck COBOL programs make assumptions about the environment
    they compute within, there is nothing preventing computer makers from supporting those features that COBOL programs require and getting a
    COBOL compiler for their ISA up and running. The problem is that as
    long as there are mainframe makers, the other computer makers do not
    see a big enough market to make the required investments.


    The late prof. Robert Dewar, founder of AdaCore and proponent of the Ada language, also had great respect for COBOL and had earlier written a
    COBOL compiler for PCs, which (I believe) became Micro Focus Visual
    COBOL, now Rocket Visual COBOL.

    Dewar used to say that COBOL is the "Rodney Dangerfield of programming languages", which just "don't get no respect".

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Terje Mathisen@21:1/5 to All on Thu Aug 15 21:14:15 2024
    MitchAlsup1 wrote:
    On Thu, 15 Aug 2024 0:02:11 +0000, Lawrence D'Oliveiro wrote:


    Mainframes are obsolete. The mindset of “the CPU is expensive, let’s
    surround it with complex channel controllers to handle batch I/O”
    stopped being relevant sometime in the 1980s, if not before.

    If one defines a mainframe computer as having the ability to remove and replace every component without taking the computer off line--then
    mainframes are still relevant. Reliability, Availability,
    Serviceability.

    And when I say everything I mean everything:
    power supplies, memories, disks, NICs, other devices, CPUs, cooling,
    ..

    Reliability may trade speed for never failing as a good trade off Availability 100% up time 24/7/365 for a decade or longer without
    outages
    Serviceability replacement of any and all modules while keeping the
    system "up"

    Thus a mainframe is more about how it is constructed than what parts
    are used to construct it.

    This is exactly why a cloud data center can be viwed as an extremely
    redundant virtual machine, with the unit of redundancy being whatever is located on a motherboard connected with an Ethernet plug.

    Google and the others assume everything can and will fail, but all
    operations can fail over to some other unit, which might even be in a
    totally different geographic region.

    Terje

    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Koenig@21:1/5 to mitchalsup@aol.com on Thu Aug 15 19:15:41 2024
    MitchAlsup1 <mitchalsup@aol.com> schrieb:

    While dusty deck COBOL programs make assumptions about the environment
    they compute within, there is nothing preventing computer makers from supporting those features that COBOL programs require and getting a
    COBOL compiler for their ISA up and running. The problem is that as
    long as there are mainframe makers, the other computer makers do not
    see a big enough market to make the required investments.

    https://gnucobol.sourceforge.io/ exists :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael S@21:1/5 to mitchalsup@aol.com on Fri Aug 16 00:12:32 2024
    On Thu, 15 Aug 2024 17:44:42 +0000
    mitchalsup@aol.com (MitchAlsup1) wrote:

    On Thu, 15 Aug 2024 0:02:11 +0000, Lawrence D'Oliveiro wrote:


    Mainframes are obsolete. The mindset of “the CPU is expensive, let’s surround it with complex channel controllers to handle batch I/O”
    stopped being relevant sometime in the 1980s, if not before.

    If one defines a mainframe computer as having the ability to remove
    and replace every component without taking the computer off line--then mainframes are still relevant. Reliability, Availability,
    Serviceability.

    And when I say everything I mean everything:
    power supplies, memories, disks, NICs, other devices, CPUs, cooling,
    ..


    And then there comes an electrician and pulls big red switch. Twice.
    And after that it turns out that live link to reserved computer 20 miles
    apart and the whole restart procedure was never tested.
    That's exactly what happened in Heathrow not so many (7) years ago.

    It was never confirmed that computers in fault were IBM mainframes, but
    what else it could have possibly been?

    Reliability may trade speed for never failing as a good trade off Availability 100% up time 24/7/365 for a decade or longer without
    outages
    Serviceability replacement of any and all modules while keeping the
    system "up"

    Thus a mainframe is more about how it is constructed than what parts
    are used to construct it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to Michael S on Thu Aug 15 22:57:37 2024
    Michael S <already5chosen@yahoo.com> writes:
    On Thu, 15 Aug 2024 17:44:42 +0000
    mitchalsup@aol.com (MitchAlsup1) wrote:

    On Thu, 15 Aug 2024 0:02:11 +0000, Lawrence D'Oliveiro wrote:
    =20

    Mainframes are obsolete. The mindset of =E2=80=9Cthe CPU is expensive, = >let=E2=80=99s
    surround it with complex channel controllers to handle batch I/O=E2=80= >=9D
    stopped being relevant sometime in the 1980s, if not before. =20
    =20
    If one defines a mainframe computer as having the ability to remove
    and replace every component without taking the computer off line--then
    mainframes are still relevant. Reliability, Availability,
    Serviceability.
    =20
    And when I say everything I mean everything:
    power supplies, memories, disks, NICs, other devices, CPUs, cooling,
    ..


    And then there comes an electrician and pulls big red switch. Twice.
    And after that it turns out that live link to reserved computer 20 miles >apart and the whole restart procedure was never tested.
    That's exactly what happened in Heathrow not so many (7) years ago.

    It was never confirmed that computers in fault were IBM mainframes, but
    what else it could have possibly been?

    Univac 2200 (Unisys Clearpath Dorado) are still common in the air
    travel space.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Fri Aug 16 00:09:08 2024
    On Thu, 15 Aug 2024 17:44:42 +0000, MitchAlsup1 wrote:

    On Thu, 15 Aug 2024 0:02:11 +0000, Lawrence D'Oliveiro wrote:

    Mainframes are obsolete. The mindset of “the CPU is expensive, let’s
    surround it with complex channel controllers to handle batch I/O”
    stopped being relevant sometime in the 1980s, if not before.

    If one defines a mainframe computer as having the ability to remove and replace every component without taking the computer off line--then
    mainframes are still relevant. Reliability, Availability,
    Serviceability.

    Then Google’s half-million server farm built on el cheapo commodity PCs counts as more of a “mainframe” than anything IBM (or any other member of the BUNCH) ever made.

    There is an item at Bitsavers dated from 1986, about how to set the
    correct time on an IBM mainframe. There is a recommendation there that, if
    you are turning daylight saving on or off, you should really reboot the
    whole machine.

    So much for “without taking the computer off line” ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Terje Mathisen on Fri Aug 16 00:09:56 2024
    On Thu, 15 Aug 2024 21:14:15 +0200, Terje Mathisen wrote:

    Google and the others assume everything can and will fail, but all
    operations can fail over to some other unit, which might even be in a
    totally different geographic region.

    That’s the way to do it. And it is much more cost-effective than any “mainframe”-based solution.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Niklas Holsti on Fri Aug 16 02:05:27 2024
    On Thu, 15 Aug 2024 22:06:16 +0300, Niklas Holsti wrote:

    Dewar used to say that COBOL is the "Rodney Dangerfield of programming languages", which just "don't get no respect".

    Except people laughed *with* Rodney Dangerfield, whereas they laugh *at*
    COBOL. For Dangerfield, it was just an act, after all: you don’t think his real life was like that, do you?

    COBOL was designed specifically for “business” computing, back when there was a clearly demarcation of what this meant: no need for complex
    mathematical formulae, no need for string/text manipulation, no need for interactive terminals.

    One major crack in this wall came with the introduction of relational
    DBMSes, particularly ones using SQL as their interface language: suddenly,
    the use of such databases became very much a core “business” need.

    The best way to interface to such a DBMS was to be able to generate SQL
    strings on the fly; but this required some facility with manipulation of dynamic, variable-length strings, which COBOL completely lacked. And so
    special extensions were tacked on, just to cope with the generation of SQL queries and templates.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lynn Wheeler@21:1/5 to mitchalsup@aol.com on Thu Aug 15 15:37:31 2024
    mitchalsup@aol.com (MitchAlsup1) writes:
    If one defines a mainframe computer as having the ability to remove and replace every component without taking the computer off line--then
    mainframes are still relevant. Reliability, Availability,
    Serviceability.

    After Jim Gray left IBM for Tandem, he did study of service availability
    & outages, finding hardware reliability was getting to point where
    outages were becoming more people mistakes and environmental (aka
    earthquakes, floods, hurricanes, tornados, etc). Old overview
    "APPROACHES TO FAULT TOLERANCE":
    https://www.garlic.com/~lynn/grayft84.pdf
    also Tandem Technical
    reports http://www.bitsavers.org/pdf/tandem/technical_reports/
    Why Do Computers Stop and What Can Be Done About It? http://www.bitsavers.org/pdf/tandem/technical_reports/TR85-07_Why_Do_Computers_Stop_and_What_Can_Be_Done_About_IT_Jun85.pdf

    we got HA/6000 project in late 80s, originally for NYTimes to move their newspaper system (ATEX) off VAXCluster to RS/6000; I rename it HA/CMP
    when I start doing technical/scientific cluster scale-up with national
    labs and commecial cluster scale-up with RDBMS vendors (oracle, sybase, informix, ingres). Out marketing, I coin "disaster survivability" and "geographic survivabilty"; then the IBM S/88 Product Administrator
    starts taking us around to their customers and got me to write a section
    for the corporate continuous available strategy document (it got pulled
    with both Rochester/AS400 and POK/mainframe complained they couldn't
    meet the objectives).

    In early jan92 meeting with Oracle CEO, AWD/Hester told them that we
    would have 16processor clusters mid92 and 128processor clusters ye92,
    but a couple weeks later cluster scale-up is transferred for announce as
    IBM Supercomputer (technical/scientific *ONLY*) and we are told we can't
    work with anything that had more than four processors; we leave IBM a
    few months later (commercial AS400 & mainframe complaining they couldn't compete likely contributed).

    The structure of System/88, a fault-tolerant computer https://ieeexplore.ieee.org/document/5387672
    IBM High Availability Cluster Multiprocessing https://en.wikipedia.org/wiki/IBM_High_Availability_Cluster_Multiprocessing

    --
    virtualization experience starting Jan1968, online at home since Mar1970

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Fri Aug 16 14:14:51 2024
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    On Thu, 15 Aug 2024 22:06:16 +0300, Niklas Holsti wrote:

    Dewar used to say that COBOL is the "Rodney Dangerfield of programming
    languages", which just "don't get no respect".

    Except people laughed *with* Rodney Dangerfield, whereas they laugh *at* >COBOL. For Dangerfield, it was just an act, after all: you don’t think his >real life was like that, do you?

    COBOL was designed specifically for “business” computing, back when there >was a clearly demarcation of what this meant: no need for complex >mathematical formulae, no need for string/text manipulation, no need for >interactive terminals.

    One major crack in this wall came with the introduction of relational
    DBMSes, particularly ones using SQL as their interface language: suddenly, >the use of such databases became very much a core “business” need.

    The best way to interface to such a DBMS was to be able to generate SQL >strings on the fly; but this required some facility with manipulation of >dynamic, variable-length strings, which COBOL completely lacked. And so >special extensions were tacked on, just to cope with the generation of SQL >queries and templates.

    Back when I was in school it was fashionable to sneer at COBOL, but I don't think many of the people doing the sneering knew anything about the language. For example, it has coroutines implemented in a very useful way. I doubt any of them knew that, and at the time, very few other languages did.

    The current version of COBOL has a lot of extensions over the 1960s version which should be no surprise. The current versions of Fortran and C are a
    lot bigger than the classic versions, too.

    For some kinds of work, COBOL is still an entirely reasonable language, albeit one where the learning curve can be pretty steep.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to Lawrence D'Oliveiro on Fri Aug 16 14:35:19 2024
    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 15 Aug 2024 22:06:16 +0300, Niklas Holsti wrote:

    Dewar used to say that COBOL is the "Rodney Dangerfield of programming
    languages", which just "don't get no respect".

    Except people laughed *with* Rodney Dangerfield, whereas they laugh *at* >COBOL.

    Nonsense.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From George Neuner@21:1/5 to ldo@nz.invalid on Fri Aug 16 13:43:27 2024
    On Fri, 16 Aug 2024 02:05:27 -0000 (UTC), Lawrence D'Oliveiro
    <ldo@nz.invalid> wrote:


    The best way to interface to [relational] DBMS was to be able to generate SQL >strings on the fly; but this required some facility with manipulation of >dynamic, variable-length strings, which COBOL completely lacked. And so >special extensions were tacked on, just to cope with the generation of SQL >queries and templates.

    You mean the *WORST* way.

    Just about every SQL injection attack is made possible by programmers dynamically generating queries. Most[1] attacks can be prevented
    simply by proper use of SQL parameters.


    There are only a few situations in which dynamic SQL actually is
    necessary - it is not possible to specify table or column names using parameters, so to reuse a query with a different table or column name
    does require generating new query text.

    Some applications do have a need to do this - but in most cases the
    names to use will be known statically, will be predictable (e.g., date related), or, if necessary, can be discovered by querying the database
    schema - so they should not be provided by user input.

    The only exception is to permit a user to create a new *custom* table
    type ... but there is little/no need for most applications to do this.
    Most applications that must create new tables at runtime know what
    names to use, and/or how to generate them, and do not need any input
    from a user to do so.

    If creating custom table types with user specified names even is
    permitted by the application, it should be an operation reserved to
    privileged users [presumably who know what they are doing].


    ---
    [1] many RDBMS now directly support JSON and/or XML data, and it is
    possible via SQL parameters to inject false "path" information for
    working with these data types. To guard against this the application
    itself has to be aware of the data layout.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lynn Wheeler@21:1/5 to Lawrence D'Oliveiro on Fri Aug 16 08:28:01 2024
    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    One major crack in this wall came with the introduction of relational
    DBMSes, particularly ones using SQL as their interface language: suddenly, the use of such databases became very much a core “business” need.

    The best way to interface to such a DBMS was to be able to generate SQL strings on the fly; but this required some facility with manipulation of dynamic, variable-length strings, which COBOL completely lacked. And so special extensions were tacked on, just to cope with the generation of SQL queries and templates.

    I was brought in as consultant to small client/server startup, two
    former Oracle people (that we had worked on doing cluster scale-up for
    HA/CMP) were there responsible for "commerce server" and wanted to do
    payment transactions on the server, the startup had also invented SSL
    they wanted to use, the result is now frequently called ecommerce.

    First webservers were flat files ... but later there were increasing RDBMS-based webservers that were experiencing increase number of
    exploits. One problem was that as part of periodic maintenance, the
    internet interfaces were shutdown, multiple layers of firewalls and
    security facilities shutdown; maintenance performed and process reversed
    to bring webserver back up. WEBSERVER RDBMS mainteance tended to be much
    more complex and time consuming (than flat file based webservers)
    ... and they were frequently in big rush to get back online, failed to reactivate all the firewall and security facilities.

    trivia: I worked with Jim Gray and Vera Watson on the original
    SQL/relational implementation, "System/R". Also we were able to do
    technical transfer to Endicott (under the "radar" while corporation was preoccupied with "EAGLE", next great DBMS) for SQL/DS. Then when "EAGLE" imploded, there was a request for how fast could "System/R" be ported to
    MVS (eventually released as DB2).

    --
    virtualization experience starting Jan1968, online at home since Mar1970

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Fuld@21:1/5 to Lynn Wheeler on Fri Aug 16 11:52:20 2024
    On 8/16/2024 11:28 AM, Lynn Wheeler wrote:

    snip

    trivia: I worked with Jim Gray and Vera Watson on the original
    SQL/relational implementation, "System/R". Also we were able to do
    technical transfer to Endicott (under the "radar" while corporation was preoccupied with "EAGLE", next great DBMS) for SQL/DS.

    This is the first I have heard of "EAGLE". Can you talk about what it
    was like? Was it an "enhanced IMS", or did it follow the CODASYL model,
    or something completely different?


    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lynn Wheeler@21:1/5 to Stephen Fuld on Fri Aug 16 13:24:30 2024
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> writes:
    This is the first I have heard of "EAGLE". Can you talk about what it
    was like? Was it an "enhanced IMS", or did it follow the CODASYL
    model, or something completely different?

    ... pg11 https://archive.computerhistory.org/resources/access/text/2013/05/102658267-05-01-acc.pdf
    a little more here https://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95-DB2.html

    note there were a few System/R "joint studies" ... one was BofA getting
    60 vm4341s for distributed operation (Jim wanted me to take it over when
    he leaves for Tandem).

    --
    virtualization experience starting Jan1968, online at home since Mar1970

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Lynn Wheeler on Fri Aug 16 23:39:01 2024
    On Fri, 16 Aug 2024 08:28:01 -1000, Lynn Wheeler wrote:

    trivia: I worked with Jim Gray and Vera Watson on the original
    SQL/relational implementation, "System/R". Also we were able to do
    technical transfer to Endicott (under the "radar" while corporation was preoccupied with "EAGLE", next great DBMS) for SQL/DS. Then when "EAGLE" imploded, there was a request for how fast could "System/R" be ported to
    MVS (eventually released as DB2).

    I didn’t realize that DB2 was basically an adaptation of the original
    SQL/DS or System/R code; I thought it was some all-new product.

    Misled by that “2” in the name, I guess ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Levine on Fri Aug 16 23:37:32 2024
    On Fri, 16 Aug 2024 14:14:51 -0000 (UTC), John Levine wrote:

    Back when I was in school it was fashionable to sneer at COBOL, but I
    don't think many of the people doing the sneering knew anything about
    the language.

    I avoided COBOL at University for the most part. Then in my first job
    after graduating, I spent about eight months of the first year writing
    COBOL code.

    So don’t tell me I don’t know anything about it.

    And yes, I still sneer at it, even more so.

    For example, it has coroutines implemented in a very
    useful way. I doubt any of them knew that, and at the time, very few
    other languages did.

    Really?? You’re not talking about that “ALTER ... TO PROCEED TO ...” crap,
    are you?

    The current version of COBOL has a lot of extensions over the 1960s
    version which should be no surprise. The current versions of Fortran
    and C are a lot bigger than the classic versions, too.

    Fortran at least has been quite nicely rethought in its extensions, from Fortran 90 onwards. It even has a kind of generic type.

    COBOL still doesn’t have a good, standard way to deal with those dynamically-generated SQL queries I was talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Sat Aug 17 01:22:29 2024
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    For example, it has coroutines implemented in a very
    useful way. I doubt any of them knew that, and at the time, very few
    other languages did.

    Really?? You’re not talking about that “ALTER ... TO PROCEED TO ...” crap,
    are you?

    Nope. Guess again.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From OrangeFish@21:1/5 to John Levine on Sun Aug 18 11:21:52 2024
    On 2024-08-16 10:14, John Levine wrote (in part):
    For some kinds of work, COBOL is still an entirely reasonable language, albeit
    one where the learning curve can be pretty steep.

    An interesting comment on the learning curve (and I know nothing about
    COBOL) given the story that the language was created to allow
    non-programmers to programme.

    OF

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Sun Aug 18 17:02:14 2024
    According to OrangeFish <OrangeFish@invalid.invalid>:
    On 2024-08-16 10:14, John Levine wrote (in part):
    For some kinds of work, COBOL is still an entirely reasonable language, albeit
    one where the learning curve can be pretty steep.

    An interesting comment on the learning curve (and I know nothing about
    COBOL) given the story that the language was created to allow
    non-programmers to programme.

    At the time, the alternative was writing progams in octal or decimal machine language, or
    if you were lucky, a simple assembler.

    I believe it was never true that COBOL's English-like was intended to let non-programmers
    write programs. The idea was to make it easier for them to read the programs so they could
    do things like compare what the program did to whatever the previous system did, probably
    involving card sorters and plugboards and manual adding machines.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to OrangeFish on Sun Aug 18 19:21:00 2024
    In article <v9t3ih$2e8ee$1@dont-email.me>, OrangeFish@invalid.invalid (OrangeFish) wrote:

    An interesting comment on the learning curve (and I know nothing
    about COBOL) given the story that the language was created to allow non-programmers to programme.

    It doesn't require learning concepts that are strange to accountants or bookkeepers. Just about all of its keywords are ordinary English words
    being used in something like their normal sense. It's much easier for
    business people to learn than assembler, which is what it was intended to replace.

    However, it has a /lot/ of keywords and is generally verbose, the rules
    on combining keywords are a bit weird, and it lacks "expressive power" -
    trying to get it to deal with data types that aren't built into it is
    kind of hard. I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to John Dallman on Sun Aug 18 19:59:27 2024
    On Sun, 18 Aug 2024 18:21:00 +0000, John Dallman wrote:

    I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    John

    So, John is not a COBOholic !!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Dallman on Mon Aug 19 01:00:08 2024
    On Sun, 18 Aug 2024 19:21 +0100 (BST), John Dallman wrote:

    In article <v9t3ih$2e8ee$1@dont-email.me>, OrangeFish@invalid.invalid (OrangeFish) wrote:

    An interesting comment on the learning curve (and I know nothing about
    COBOL) given the story that the language was created to allow
    non-programmers to programme.

    It doesn't require learning concepts that are strange to accountants or bookkeepers.

    Level numbers? “USAGE IS COMPUTATIONAL”? “RESERVE «n» ALTERNATE AREAS”,
    “ALTER «target» TO PROCEED TO «dest»”? All the fun of the “MOVE” statement?

    (That’s just off the top of my head; I’m not going to look at any actual COBOL documentation to try to remember more.)

    Makes you wonder why they didn’t include double-entry bookkeeping as a built-in language primitive: now *that* would have made it more directly relevant to the bean-counter types.

    Oh, and compound interest requires working with transcendental functions, doesn’t it? Which means worrying about rounding errors. But noooo, that
    would have been encroaching into “scientific” territory, which was firmly off limits ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Mon Aug 19 03:32:12 2024
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    It doesn't require learning concepts that are strange to accountants or
    bookkeepers.

    Level numbers? “USAGE IS COMPUTATIONAL”? “RESERVE «n» ALTERNATE AREAS”,
    “ALTER «target» TO PROCEED TO «dest»”? All the fun of the “MOVE” >statement?

    We all agree ALTER was a mistake, but a lot of this stuff is straightforward to read if a
    programmer uses it reasonably. Level numbers are not exotic; it's easy enough to see that
    subfields are part of fields which are part of a record. MOVE by name was pretty slick,
    something that made it into PL/I but not into C or C++.

    Oh, and compound interest requires working with transcendental functions, >doesn’t it?

    Uh, no, it's just repeated multiplication. COBOL makes it easy to say what the precision
    of each number is with the decimal point location to get the rounding right. I suppose if
    you want to compute the APR for a daily compounded rate that's more complicated but not
    something I'd expect in typical COBOL code, more likely to be an input that's changed when
    they change the interest rate they charge.

    If you want bond prices or internal rates of return, you need to compute the zero of a
    long polynomial which is tedious (I did it for a financial package in the 1980s) but still
    not transcendental, and in any event, I doubt either were common in the kind of bookkeeping stuff COBOL was typically used for.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to mitchalsup@aol.com on Mon Aug 19 06:39:00 2024
    In article <61a50eac95ff8fa39af47f03daa885d0@www.novabbs.org>, mitchalsup@aol.com (MitchAlsup1) wrote:

    So, John is not a COBOholic !!

    Chocoholic, more like. I departed college quite skilled at learning
    programming languages, but not expecting that any of the ones I knew
    would be long-term job skills. 6502 assembler, which I'd learned on the
    side rather than as part of the course, was the only one I used.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to Keith Thompson on Tue Aug 20 14:37:23 2024
    Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Fri, 16 Aug 2024 14:14:51 -0000 (UTC), John Levine wrote:
    [...]
    For example, it has coroutines implemented in a very
    useful way. I doubt any of them knew that, and at the time, very few
    other languages did.

    Really?? You’re not talking about that “ALTER ... TO PROCEED TO ...” crap,
    are you?

    A Google search for "cobol coroutines" would have saved you some time
    and embarrassment.

    It's waaaaay too late for that.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to John Dallman on Tue Aug 20 14:40:05 2024
    jgd@cix.co.uk (John Dallman) writes:
    In article <v9t3ih$2e8ee$1@dont-email.me>, OrangeFish@invalid.invalid >(OrangeFish) wrote:

    An interesting comment on the learning curve (and I know nothing
    about COBOL) given the story that the language was created to allow
    non-programmers to programme.

    It doesn't require learning concepts that are strange to accountants or >bookkeepers. Just about all of its keywords are ordinary English words
    being used in something like their normal sense. It's much easier for >business people to learn than assembler, which is what it was intended to >replace.

    However, it has a /lot/ of keywords and is generally verbose, the rules
    on combining keywords are a bit weird, and it lacks "expressive power" - >trying to get it to deal with data types that aren't built into it is
    kind of hard. I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    Burroughs Cobol 68 compiler was used to implement various
    system utilities, including the disk/pack defragmenter. Granted,
    it had an 'ENTER SYMBOLIC' verb which allowed embedded assembler :-).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From EricP@21:1/5 to John Levine on Tue Aug 20 11:51:14 2024
    John Levine wrote:
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    Oh, and compound interest requires working with transcendental functions,
    doesn’t it?

    Uh, no, it's just repeated multiplication. COBOL makes it easy to say what the precision
    of each number is with the decimal point location to get the rounding right. I suppose if
    you want to compute the APR for a daily compounded rate that's more complicated but not
    something I'd expect in typical COBOL code, more likely to be an input that's changed when
    they change the interest rate they charge.

    If you want bond prices or internal rates of return, you need to compute the zero of a
    long polynomial which is tedious (I did it for a financial package in the 1980s) but still
    not transcendental, and in any event, I doubt either were common in the kind of
    bookkeeping stuff COBOL was typically used for.

    For some simple bonds, parts of the price or yield calculations are
    integer power series so one could roll your own integer power function optimized to do the minimum number of multiplies.

    x^17 = ((((x^2)^2)^2)^2)*x

    I built a real-time bond pricing system for a customer around 1997.
    The price server listened to the market ticker and revalued the inventory
    of 100,000 bonds in under 1 second, and broadcast the results to its
    user interface consoles and to existing trading systems.
    This replaced two systems that each took over an hour to do 10,000 bonds.

    For bond trading, there are many different types of bonds each with its
    own calculation for price or yield and the power is not always integer,
    if the trade settlement date falls part way through a compounding period,
    or if a bond has "odd" long or short first or last coupon.

    So it needs a POW function. I used double precision as its ~15 decimal
    digits is sufficient to meet the US standards for bond calculation accuracy, which is at least 8 digits after the decimal point (11 digits total).
    And you might as well have log, exp, log10, exp10 as well.

    There are also analytics that use power series.

    One can avoid looping over the power series by using the substitution
    for the sum of a geometric series:

    1 + x + x^2 + ... x^(n-2) + x^(n-1) = (1 - x^n) / (1 - x)

    After rearranging the standard bond equations into the second form,
    the main power series loop becomes 2 POW calls,
    one for the integer power sum and one for the fraction parts.

    Calculating yield given price requires doing a Newton Raphson on the above
    to find the zero crossing, so taking the derivative of all the equations.
    After an initial first guess the NR would resolve in 3 or 4 iterations
    (I set the limit to when the NR delta was < 1.0e-11).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to Scott Lurndal on Tue Aug 20 17:51:00 2024
    In article <9V1xO.583702$qO%5.449825@fx16.iad>, scott@slp53.sl.home
    (Scott Lurndal) wrote:

    Burroughs Cobol 68 compiler was used to implement various
    system utilities, including the disk/pack defragmenter. Granted,
    it had an 'ENTER SYMBOLIC' verb which allowed embedded assembler
    :-).

    Were Burroughs deliberately eccentric, or was that just an emergent
    property of the company?

    I am so glad I did not take up the idea of specialising in Burroughs
    stuff after graduation. It was suggested because I was fond of Algol 68,
    but it would have been very career-limiting.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to John Dallman on Tue Aug 20 17:08:33 2024
    jgd@cix.co.uk (John Dallman) writes:
    In article <9V1xO.583702$qO%5.449825@fx16.iad>, scott@slp53.sl.home
    (Scott Lurndal) wrote:

    Burroughs Cobol 68 compiler was used to implement various
    system utilities, including the disk/pack defragmenter. Granted,
    it had an 'ENTER SYMBOLIC' verb which allowed embedded assembler
    :-).

    Were Burroughs deliberately eccentric, or was that just an emergent
    property of the company?

    What's eccentric about it? The BCD Medium systems line was designed
    from the start as a COBOL machine (influenced heavily by the earlier
    B300, which in turn was influenced heavily by the 1950s Electrodata/Burroughs 220).

    The B3500 supported an assembler, a systems language (BPL), Fortran,
    COBOL (68, and later 74. 85 was in development when the line
    was terminated in 1990). The Burroughs MCP was always far more
    advanced (and much easier to use) than any contemporaneous IBM
    operating system (or even today's versions of z/OS).

    COBOL is a good language for moving data around which is
    the primary activity when defragmenting (squashing in burroughs parlance)
    a disk.


    I am so glad I did not take up the idea of specialising in Burroughs
    stuff after graduation. It was suggested because I was fond of Algol 68,
    but it would have been very career-limiting.

    I've been quite glad that I spent a most of a decade writing
    portions of a new SMP version of the operating system
    for that line of computers in the 80's. It was quite different architecturally from the VAXen that I had been programming for
    several years prior to that. A valuable learning experience, and
    enjoyable as well - the experience of developing new software with
    new hardware has been very useful at most PPOE and my CPOE
    (where we build server-grade ARM64 SoCs).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Fuld@21:1/5 to John Dallman on Tue Aug 20 11:31:29 2024
    On 8/20/2024 9:51 AM, John Dallman wrote:
    In article <9V1xO.583702$qO%5.449825@fx16.iad>, scott@slp53.sl.home
    (Scott Lurndal) wrote:

    Burroughs Cobol 68 compiler was used to implement various
    system utilities, including the disk/pack defragmenter. Granted,
    it had an 'ENTER SYMBOLIC' verb which allowed embedded assembler
    :-).

    Were Burroughs deliberately eccentric, or was that just an emergent
    property of the company?

    I am so glad I did not take up the idea of specialising in Burroughs
    stuff after graduation. It was suggested because I was fond of Algol 68,
    but it would have been very career-limiting.

    Of course, I can't comment on your career choices :-), but you are
    confusing two different computer lines. Burroughs, like many of the big computer companies in the 1960s had multiple, incompatible, lines of
    computers.

    The one to which Scott was referring was called the Medium Systems.
    They were decimal machines, intended for business, and mostly programmed
    in COBOL. This was not unlike say some of the IBM lines of the day.

    The "Algol oriented" systems were called the Large Scale systems. By
    the standards of the day, you might call them "eccentric", but most
    people would also say innovative. Among the innovations were
    hardware/software co-design and OS and system software written in a high
    level language. Of course, they had some issues, and got caught in the
    demise of most mainframe architectures (it exists now in emulation).


    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to EricP on Tue Aug 20 23:27:34 2024
    On Tue, 20 Aug 2024 11:51:14 -0400, EricP wrote:

    John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    Oh, and compound interest requires working with transcendental
    functions, doesn’t it?

    Uh, no, it's just repeated multiplication.

    For some simple bonds, parts of the price or yield calculations are
    integer power series so one could roll your own integer power function optimized to do the minimum number of multiplies.

    x^17 = ((((x^2)^2)^2)^2)*x


    I’d really like to see how you’d write that in COBOL ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Scott Lurndal on Tue Aug 20 23:25:13 2024
    On Tue, 20 Aug 2024 17:08:33 GMT, Scott Lurndal wrote:

    The Burroughs MCP was always far more advanced
    (and much easier to use) than any contemporaneous IBM operating
    system ...

    That’s a pretty low bar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to Keith Thompson on Wed Aug 21 02:29:06 2024
    On Wed, 21 Aug 2024 0:52:58 +0000, Keith Thompson wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Tue, 20 Aug 2024 11:51:14 -0400, EricP wrote:
    [...]
    x^17 = ((((x^2)^2)^2)^2)*x


    I’d really like to see how you’d write that in COBOL ...

    COMPUTE X17 = ((((X**2)**2)**2)**2)*X

    Why not::

    COMPUTE x17 = x**17

    There are compilers these days that produce the above from
    the simpler evaluation.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to EricP on Wed Aug 21 15:46:25 2024
    EricP <ThatWouldBeTelling@thevillage.com> writes:
    MitchAlsup1 wrote:
    On Wed, 21 Aug 2024 0:52:58 +0000, Keith Thompson wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Tue, 20 Aug 2024 11:51:14 -0400, EricP wrote:
    [...]
    x^17 = ((((x^2)^2)^2)^2)*x


    I’d really like to see how you’d write that in COBOL ...

    COMPUTE X17 = ((((X**2)**2)**2)**2)*X

    Why not::

    COMPUTE x17 = x**17

    There are compilers these days that produce the above from
    the simpler evaluation.

    In Cobol does that ** operator raise an FP or decimal value to an
    integer power by repeated multiplication, as John originally wanted,
    or does it use a transcendental POW?

    That may depend on the PIC clause that defines the datum
    (i.e. DISPLAY, COMP, COMP-3, etc).

    The Burroughs medium systems (a BCD machine) only supported fixed
    point decimal numbers (of 1 to 100 digits in length). This
    COMPUTE statement was implemented using repeated multiplication
    for both COMP and DISPLAY formats (on that architecture display
    format used 8-bits and the arithmetic instructions would ignore
    the zone digit of each byte so either could be used in arithmetic
    expressions).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From EricP@21:1/5 to All on Wed Aug 21 11:20:15 2024
    MitchAlsup1 wrote:
    On Wed, 21 Aug 2024 0:52:58 +0000, Keith Thompson wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Tue, 20 Aug 2024 11:51:14 -0400, EricP wrote:
    [...]
    x^17 = ((((x^2)^2)^2)^2)*x


    I’d really like to see how you’d write that in COBOL ...

    COMPUTE X17 = ((((X**2)**2)**2)**2)*X

    Why not::

    COMPUTE x17 = x**17

    There are compilers these days that produce the above from
    the simpler evaluation.

    In Cobol does that ** operator raise an FP or decimal value to an
    integer power by repeated multiplication, as John originally wanted,
    or does it use a transcendental POW?

    Fortran 77 had an ** exponential operator but only for FP to an FP power
    and it used transcendentals, not FP to an integer power using multiply.
    C just has FP POW library routine.

    IF one wanted to raise an FP or decimal value to an integer power
    by repeated multiplies and had to roll your own routine,
    then what is the optimal way to do so?

    Looks like: right shift the unsigned integer power and calculate all the
    value squares up to the power high order bit. For each 1 bit in the power multiply that square into the result. Max of 2 multiplies per power bit.

    For a 64 bit unsigned integer power, max of 128 FP or decimal multiplies.
    For realistic powers up to 127 or 7 power bits, more like 14 multiplies
    which is quite acceptable.

    // Raise value to an unsigned integer power
    double DblToIntPower (double value, unsigned long power)
    {
    double result = 1.0;

    // For each 1 bit in power, multiply that square into result.
    if (power)
    {
    for (;;)
    {
    if (power & 1)
    result *= value;
    power >>= 1
    if (power == 0)
    break;
    value *= value;
    }
    }
    return result;
    }

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Fuld@21:1/5 to BGB on Thu Aug 22 15:05:25 2024
    On 8/22/2024 1:59 PM, BGB wrote:

    snip

    If I could find a spec for SQLlite's table format, might also be worth looking at, TBD...

    https://www.sqlite.org/fileformat2.html


    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to BGB on Fri Aug 23 02:36:34 2024
    On Thu, 22 Aug 2024 15:59:34 -0500, BGB wrote:

    Underused: It is a sensible way of structuring data, but needing to
    interface with it though SQL strings is awkward and inefficient.

    Actually, that works fine in any language with decent string handling.

    Or, do some weird OO thing where object methods exist for SQL keywords
    and each method returns an object that can be used to glue on the next keyword:
    res=db.select().from("FOOTAB").where().equals("NAME", "John").end();

    ORMs are a waste of time.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Terje Mathisen@21:1/5 to All on Fri Aug 23 09:40:00 2024
    MitchAlsup1 wrote:
    On Sun, 18 Aug 2024 18:21:00 +0000, John Dallman wrote:

                  I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    John

    So, John is not a COBOholic !!

    Also not a COBOL fan, mostly due to the verbosity.

    I once ported a COBOL-specific algorithm to Pascal, which meant that I
    had to reimplement code for all the 80-col punch card formatted IO as
    well as sorting according to quite special rules.

    The original was 25 pages, my replacement ~5, at least half of which was
    the COBOL specific function replacements, so the mainline code became an
    order of magnitude smaller.

    Terje

    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Terje Mathisen@21:1/5 to Michael S on Fri Aug 23 10:32:25 2024
    Michael S wrote:
    On Fri, 23 Aug 2024 09:40:00 +0200
    Terje Mathisen <terje.mathisen@tmsw.no> wrote:

    MitchAlsup1 wrote:
    On Sun, 18 Aug 2024 18:21:00 +0000, John Dallman wrote:

                  I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    John

    So, John is not a COBOholic !!

    Also not a COBOL fan, mostly due to the verbosity.

    I once ported a COBOL-specific algorithm to Pascal, which meant that
    I had to reimplement code for all the 80-col punch card formatted IO
    as well as sorting according to quite special rules.

    The original was 25 pages, my replacement ~5, at least half of which
    was the COBOL specific function replacements, so the mainline code
    became an order of magnitude smaller.

    Terje


    What would be the size if you were porting it from COBOL to COBOL ?

    Huh?

    Are you asking about optimizing the COBOL to be much less verbose?

    I have absolutely no idea where I would even have started such a task, I
    just looked at the actual source code, while already knowing _what_ it
    was doing, and then figured out how to reimplement it in a different
    language.

    It is quite possible that the original COBOL was non-optimal, but I
    still have no way to determine that.

    Terje

    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael S@21:1/5 to Terje Mathisen on Fri Aug 23 11:54:40 2024
    On Fri, 23 Aug 2024 10:32:25 +0200
    Terje Mathisen <terje.mathisen@tmsw.no> wrote:

    Michael S wrote:
    On Fri, 23 Aug 2024 09:40:00 +0200
    Terje Mathisen <terje.mathisen@tmsw.no> wrote:

    MitchAlsup1 wrote:
    On Sun, 18 Aug 2024 18:21:00 +0000, John Dallman wrote:

    I had a basic COBOL course at college in 1980-81,
    and became quite clear that this wasn't what I wanted to do.

    John

    So, John is not a COBOholic !!

    Also not a COBOL fan, mostly due to the verbosity.

    I once ported a COBOL-specific algorithm to Pascal, which meant
    that I had to reimplement code for all the 80-col punch card
    formatted IO as well as sorting according to quite special rules.

    The original was 25 pages, my replacement ~5, at least half of
    which was the COBOL specific function replacements, so the
    mainline code became an order of magnitude smaller.

    Terje


    What would be the size if you were porting it from COBOL to COBOL ?

    Huh?

    Are you asking about optimizing the COBOL to be much less verbose?

    I have absolutely no idea where I would even have started such a
    task, I just looked at the actual source code, while already knowing
    _what_ it was doing, and then figured out how to reimplement it in a different language.

    It is quite possible that the original COBOL was non-optimal, but I
    still have no way to determine that.

    Terje


    My assumption was that majority of size reduction happened due to
    identifying repeated patterns and implementing them as subroutines.
    Which could be done in any reasonable language. I know nothing about
    COBOL, but hope that it supports subroutines.
    I simply don't see how mere syntax difference between COBOL and Pascal,
    which by itself is not particularly terse or particularly expressive,
    could alone account for such massive reduction in the size of the
    progarm text.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael S@21:1/5 to Terje Mathisen on Fri Aug 23 11:20:29 2024
    On Fri, 23 Aug 2024 09:40:00 +0200
    Terje Mathisen <terje.mathisen@tmsw.no> wrote:

    MitchAlsup1 wrote:
    On Sun, 18 Aug 2024 18:21:00 +0000, John Dallman wrote:

    I had a basic COBOL course at college in 1980-81, and
    became quite clear that this wasn't what I wanted to do.

    John

    So, John is not a COBOholic !!

    Also not a COBOL fan, mostly due to the verbosity.

    I once ported a COBOL-specific algorithm to Pascal, which meant that
    I had to reimplement code for all the 80-col punch card formatted IO
    as well as sorting according to quite special rules.

    The original was 25 pages, my replacement ~5, at least half of which
    was the COBOL specific function replacements, so the mainline code
    became an order of magnitude smaller.

    Terje


    What would be the size if you were porting it from COBOL to COBOL ?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Fri Aug 23 17:43:13 2024
    According to Michael S <already5chosen@yahoo.com>:
    I once ported a COBOL-specific algorithm to Pascal, which meant
    that I had to reimplement code for all the 80-col punch card
    formatted IO as well as sorting according to quite special rules.

    The original was 25 pages, my replacement ~5, at least half of
    which was the COBOL specific function replacements, so the
    mainline code became an order of magnitude smaller.

    My assumption was that majority of size reduction happened due to
    identifying repeated patterns and implementing them as subroutines.
    Which could be done in any reasonable language. I know nothing about
    COBOL, but hope that it supports subroutines.

    COBOL is by design, really really verbose, e.g. what we would write as

    tg = kb + ro

    is

    ADD KICK-BACK TO RAKE-OFF GIVING TOTAL-GRAFT.

    It has only weak subroutines. You can say

    PERFORM PARA1 THRU PARA2 VARYING THING-INDEX FROM THING-BASE TO THING-LIMIT.

    it will set THING-BASE, jump to PARA1 and loop and return at the end
    of PARA2 more or less like a FOR loop, but handling the parameters
    beyond that is up to you. At least in IBM COBOL there is a way to
    break up a program into subroutines you can call with parameters
    but there is so much mandatory glop for each routine (the whole
    ENVIRONMENT DIVISION, DATA DIVISION thing) that you're not going
    to end up with a short program.

    Also, as someone else keeps pointing out, any sort of string
    processing beyond putting stuff in fixed fields is very painful.

    I simply don't see how mere syntax difference between COBOL and Pascal,

    You should look at some COBOL programs. It's a whole different world.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From George Neuner@21:1/5 to ldo@nz.invalid on Fri Aug 23 16:08:12 2024
    On Fri, 23 Aug 2024 02:36:34 -0000 (UTC), Lawrence D'Oliveiro
    <ldo@nz.invalid> wrote:

    On Thu, 22 Aug 2024 15:59:34 -0500, BGB wrote:

    Underused: It is a sensible way of structuring data, but needing to
    interface with it though SQL strings is awkward and inefficient.

    Actually, that works fine in any language with decent string handling.

    I believe BGB was referring to how bad SQL is as a language. It's
    overly verbose, assymetric, context sensitive, uses synonyms to
    distinguish context, etc. Don Chamberlan and Ed Codd both have said
    SQL's grammar simply grew rather than being planned, and that IBM
    releasing it as it existed was a mistake. But due to IBM's market
    power, it caught on so quickly that there was no chance to fix or
    refine the grammar.


    Homework: read up on QUEL.
    Factoid : SQL originally was called SEQUEL.


    Or, do some weird OO thing where object methods exist for SQL keywords
    and each method returns an object that can be used to glue on the next
    keyword:
    res=db.select().from("FOOTAB").where().equals("NAME", "John").end();

    ORMs are a waste of time.

    Absolutely!

    The real problem with most ORM tools is that they tend to treat the
    database as dumb storage rather than as an intelligent server.

    ORM generated applications often end up doing a lot of unnecessary
    work on the client because the SQL that would perform the task on the
    server very often is vendor specific.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to BGB on Sat Aug 24 07:13:53 2024
    On Fri, 23 Aug 2024 02:31:46 -0500, BGB wrote:

    On 8/22/2024 9:36 PM, Lawrence D'Oliveiro wrote:

    On Thu, 22 Aug 2024 15:59:34 -0500, BGB wrote:

    Underused: It is a sensible way of structuring data, but needing to
    interface with it though SQL strings is awkward and inefficient.

    Actually, that works fine in any language with decent string handling.

    String processing adds bulk and inefficiency.
    Granted, maybe not enough to matter in the face of a typical database
    query.

    Remember what Knuth (or maybe it was Hoare) said: “Premature optimization
    is the root of all evil”. String processing has to be in the language for other reasons (think: composing messages and processing input when
    interacting with a human user), why not use it for this?

    Also, it is quite common now to use text-based protocols for networks
    (e.g. messages in JSON format). That may sound inefficient, but it eases debugging so much, that has become a major consideration.

    But, I was left thinking, some programs use SQLite, which exists as a
    single giant C file. I guess it technically works, but has the downside
    of adding something like IIRC around 900K or so to the size of the
    binaries' ".text" section.

    SQLite is so resource-light, it’s the world’s most popular DBMS. You
    almost certainly have a copy literally at your fingertips right now, in
    your mobile phone.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Scott Lurndal on Sat Aug 24 07:17:01 2024
    On Fri, 23 Aug 2024 17:54:36 GMT, Scott Lurndal wrote:

    05 COMMAND PIC X(3).
    88 NAVIGATE VALUE "NAV".
    88 PHASERS VALUE "PHA".
    88 TORPEDO VALUE "TOR".
    88 SHIELDS VALUE "DEF".
    88 DOCK VALUE "DOC".
    88 LIB-COM VALUE "COM".
    88 NAV-C VALUE "NAV".
    88 PHA-C VALUE "PHA".
    88 TOR-C VALUE "TOR".
    88 DEF-C VALUE "DEF".
    88 DOC-C VALUE "DOC".
    88 COM-C VALUE "COM".

    Simple-minded translation to Pascal:

    type
    command_type = (NAV, PHA, TOR, DEF, DOC, COM);

    var
    command : command_type;

    Can you see now, why the Pascal version would end up so much smaller?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to Michael S on Sat Aug 24 15:21:00 2024
    In article <20240823115440.0000782b@yahoo.com>, already5chosen@yahoo.com (Michael S) wrote:

    I simply don't see how mere syntax difference between COBOL and
    Pascal, which by itself is not particularly terse or particularly
    expressive, could alone account for such massive reduction in the
    size of the program text.

    COBOL is exceptionally verbose and un-expressive. It makes elementary
    logic very long-winded. I don't think it was specifically designed to
    make simple programming tasks look like vast intellectual feats to
    managers who don't understand what their staff are doing, but it does
    that job quite well.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to Stephen Fuld on Sat Aug 24 15:21:00 2024
    In article <va2ne1$1uo38$1@dont-email.me>, sfuld@alumni.cmu.edu.invalid (Stephen Fuld) wrote:


    ... you are confusing two different computer lines.

    Yes, I was. I thought the COBOL compiler with inline assembler was on the Algol-based Large Scale system. I think calling that combination
    eccentric would have been fair comment.

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Sat Aug 24 17:33:29 2024
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    String processing adds bulk and inefficiency.
    Granted, maybe not enough to matter in the face of a typical database
    query.

    Remember what Knuth (or maybe it was Hoare) said: “Premature optimization >is the root of all evil”. String processing has to be in the language for >other reasons (think: composing messages and processing input when >interacting with a human user), why not use it for this?

    Interactimg? Human user? COBOL was designed for computers that took their inputs from mag tapes or card readers and sent their output to printers or other tapes. The human user had lights and switches. By the 1960s most computers had a console terminal but even so the interaction tended to
    be MOUNT CHECK FORM XYZ123 IN PRINTER, not anything complex.

    I realize times have changed, viz, the Star Trek program, but in the era
    when COBOL was designed the goal was to keep the expensive computer doing
    work, not hanging around waiting for someone to type something.

    Also, it is quite common now to use text-based protocols for networks
    (e.g. messages in JSON format). That may sound inefficient, but it eases >debugging so much, that has become a major consideration.

    I see that IBM has JSON GENERATE and JSON PARSE for just this situation.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to John Levine on Mon Aug 26 14:54:52 2024
    John Levine <johnl@taugh.com> writes:
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    String processing adds bulk and inefficiency.
    Granted, maybe not enough to matter in the face of a typical database
    query.

    Remember what Knuth (or maybe it was Hoare) said: “Premature optimization >>is the root of all evil”. String processing has to be in the language for >>other reasons (think: composing messages and processing input when >>interacting with a human user), why not use it for this?

    Interactimg? Human user? COBOL was designed for computers that took their >inputs from mag tapes or card readers and sent their output to printers or >other tapes. The human user had lights and switches. By the 1960s most >computers had a console terminal but even so the interaction tended to
    be MOUNT CHECK FORM XYZ123 IN PRINTER, not anything complex.

    I realize times have changed, viz, the Star Trek program, but in the era
    when COBOL was designed the goal was to keep the expensive computer doing >work, not hanging around waiting for someone to type something.

    Even in the mid 60's, burroughs cobol supported 'ACCEPT' and 'DISPLAY'
    verbs. Granted, they weren't generally used for interactive usage
    until CANDE rolled around.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to Keith Thompson on Tue Aug 27 22:24:52 2024
    On Tue, 27 Aug 2024 21:26:21 +0000, Keith Thompson wrote:

    John Levine <johnl@taugh.com> writes:
    [...]
    COBOL is by design, really really verbose, e.g. what we would write as

    tg = kb + ro

    is

    ADD KICK-BACK TO RAKE-OFF GIVING TOTAL-GRAFT.
    [...]

    Or:
    COMPUTE TOTAL-GRAPH = KICK-BACK + RAKE-OFF

    Shouldn't that be::

    COMPUTE TOTAL-GRAFT = ICK-BACK + RAKE-OFF

    or even:
    COMPUTE TG = KB + RO

    The use of verbose names like KICK-BACK rather than overly abbreviated
    names like kb is not a feature of the language, though it may be more idiomatic in Cobol than in most other languages. I wouldn't use "tg",
    "kb", and "ro" in any language unless they were well known abbreviations
    in the problem domain (or very localized).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Levine on Wed Aug 28 06:51:40 2024
    On Sat, 24 Aug 2024 17:33:29 -0000 (UTC), John Levine wrote:

    COBOL was designed for computers that took
    their inputs from mag tapes or card readers and sent their output to
    printers or other tapes.

    Precisely my point. That left it unprepared for the coming of relational databases and SQL. And indeed interactive computing in business use.

    I see that IBM has JSON GENERATE and JSON PARSE for just this situation.

    Not standard COBOL though, is it?

    But then, COBOL was never quite IBM’s thing ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Scott Lurndal on Wed Aug 28 06:52:22 2024
    On Mon, 26 Aug 2024 14:54:52 GMT, Scott Lurndal wrote:

    Even in the mid 60's, burroughs cobol supported 'ACCEPT' and 'DISPLAY'
    verbs.

    How exciting. That works fine for one terminal; what if you have to work
    with several?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Dallman on Wed Aug 28 06:49:40 2024
    On Sat, 24 Aug 2024 15:21 +0100 (BST), John Dallman wrote:

    COBOL is exceptionally verbose and un-expressive. It makes elementary
    logic very long-winded. I don't think it was specifically designed to
    make simple programming tasks look like vast intellectual feats to
    managers who don't understand what their staff are doing, but it does
    that job quite well.

    PHB appeal!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Thu Aug 29 01:12:23 2024
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    On Sat, 24 Aug 2024 17:33:29 -0000 (UTC), John Levine wrote:

    COBOL was designed for computers that took
    their inputs from mag tapes or card readers and sent their output to
    printers or other tapes.

    Precisely my point. That left it unprepared for the coming of relational >databases and SQL. And indeed interactive computing in business use.

    I see that IBM has JSON GENERATE and JSON PARSE for just this situation.

    Not standard COBOL though, is it?

    Beats me, I don't have a recent COBOL standard and I don't feel like paying $278 for a copy. I see that MicroFocus has the same JSON stuff so it's not
    just an IBM extension.

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since the 705 III.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From George Neuner@21:1/5 to ldo@nz.invalid on Wed Aug 28 22:15:01 2024
    On Wed, 28 Aug 2024 06:52:22 -0000 (UTC), Lawrence D'Oliveiro
    <ldo@nz.invalid> wrote:

    On Mon, 26 Aug 2024 14:54:52 GMT, Scott Lurndal wrote:

    Even in the mid 60's, burroughs cobol supported 'ACCEPT' and 'DISPLAY'
    verbs.

    How exciting. That works fine for one terminal; what if you have to work
    with several?

    Interactive mainframe programs were almost always single terminal
    only. N terminals? N copies of the program.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Levine on Fri Aug 30 03:26:52 2024
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since the
    705 III.

    Umm, three-digit IBM model numbers were vacuum-tube machines, not transistorized. COBOL dates from the transistor era.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to Lawrence D'Oliveiro on Fri Aug 30 14:28:17 2024
    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since the
    705 III.

    Umm, three-digit IBM model numbers were vacuum-tube machines, not >transistorized. COBOL dates from the transistor era.

    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael S@21:1/5 to Scott Lurndal on Fri Aug 30 18:37:42 2024
    On Fri, 30 Aug 2024 14:28:17 GMT
    scott@slp53.sl.home (Scott Lurndal) wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since
    the 705 III.

    Umm, three-digit IBM model numbers were vacuum-tube machines, not >transistorized. COBOL dates from the transistor era.

    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    FLOW-MATIC influenced COBOL, but it's not the same language as COBOL.
    Which does not mean that COBOL was not implemented on IBM 705 m3.
    Unlike majority of posters in this group, John tends to be correct about
    facts.
    It would not surprise me if COBOL compiler was implemented and tested on
    7080 then, while still on 7080, ported to emulated 705 and then sold to
    users of real 705.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to Michael S on Fri Aug 30 16:19:34 2024
    Michael S <already5chosen@yahoo.com> writes:
    On Fri, 30 Aug 2024 14:28:17 GMT
    scott@slp53.sl.home (Scott Lurndal) wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:
    =20
    According to Lawrence D'Oliveiro <ldo@nz.invalid>:
    =20
    But then, COBOL was never quite IBM=C3=A2=E2=82=AC=E2=84=A2s thing ...=
    =20
    =20
    Uh, on what planet? IBM has had COBOL on their mainframes since
    the 705 III. =20

    Umm, three-digit IBM model numbers were vacuum-tube machines, not=20
    transistorized. COBOL dates from the transistor era. =20
    =20
    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    FLOW-MATIC influenced COBOL, but it's not the same language as COBOL.
    Which does not mean that COBOL was not implemented on IBM 705 m3.=20
    Unlike majority of posters in this group, John tends to be correct about >facts.
    It would not surprise me if COBOL compiler was implemented and tested on
    7080 then, while still on 7080, ported to emulated 705 and then sold to
    users of real 705.


    COBOL was available on the Burroughs B300 as well.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From EricP@21:1/5 to Michael S on Fri Aug 30 12:24:35 2024
    Michael S wrote:
    On Fri, 30 Aug 2024 14:28:17 GMT
    scott@slp53.sl.home (Scott Lurndal) wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...
    Uh, on what planet? IBM has had COBOL on their mainframes since
    the 705 III.
    Umm, three-digit IBM model numbers were vacuum-tube machines, not
    transistorized. COBOL dates from the transistor era.
    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    FLOW-MATIC influenced COBOL, but it's not the same language as COBOL.
    Which does not mean that COBOL was not implemented on IBM 705 m3.
    Unlike majority of posters in this group, John tends to be correct about facts.
    It would not surprise me if COBOL compiler was implemented and tested on
    7080 then, while still on 7080, ported to emulated 705 and then sold to
    users of real 705.


    Or if IBM wanted to launch the 7080 with ready software,
    maybe concurrently develop IBM Cobol on a 705 but targeting the 7080,
    which according to Wikipedia has a 705 compatibility mode,
    then later make it available on the 705
    (timed so it doesn't cut into their 7080 sales).

    VAX Fortran77 and other compilers and tools were developed concurrently with VAX hardware on the PDP-11 but emitting VAX instructions. The first versions ran on VAX in PDP-11 compatibility mode and were later updated to run native.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to All on Fri Aug 30 20:10:07 2024
    According to Michael S <already5chosen@yahoo.com>:
    On Fri, 30 Aug 2024 14:28:17 GMT
    scott@slp53.sl.home (Scott Lurndal) wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since
    the 705 III.

    Umm, three-digit IBM model numbers were vacuum-tube machines, not
    transistorized. COBOL dates from the transistor era.

    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    FLOW-MATIC influenced COBOL, but it's not the same language as COBOL.
    Which does not mean that COBOL was not implemented on IBM 705 m3.

    In the unlikely event anyone cares, here's the manual:

    https://bitsavers.org/pdf/ibm/7080/J28-6177-3_IBM_705_7080_Programming_Systems_COBOL_Additional_Specifications_Apr64.pdf

    I can easily believe they wrote COBOL on the 7080 and then backported it to the 705, but so what?

    The original question whether "COBOL was never quite IBM's thing" and it is obvious to
    anyone who spends five minutes looking that they supported it up and down the product
    lines. There was even COBOL for the 1401 which is pretty amazing considering how tiny
    a 1401 was and it ran in 4000 characters of core. You needed tapes or a disk but even so.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Lurndal@21:1/5 to John Levine on Fri Aug 30 21:26:15 2024
    John Levine <johnl@taugh.com> writes:
    According to Michael S <already5chosen@yahoo.com>:
    On Fri, 30 Aug 2024 14:28:17 GMT
    scott@slp53.sl.home (Scott Lurndal) wrote:

    Lawrence D'Oliveiro <ldo@nz.invalid> writes:
    On Thu, 29 Aug 2024 01:12:23 -0000 (UTC), John Levine wrote:

    According to Lawrence D'Oliveiro <ldo@nz.invalid>:

    But then, COBOL was never quite IBM’s thing ...

    Uh, on what planet? IBM has had COBOL on their mainframes since
    the 705 III.

    Umm, three-digit IBM model numbers were vacuum-tube machines, not
    transistorized. COBOL dates from the transistor era.

    As usual, you are incorrect. The Univac I was a vacuum tube
    machine (valves for the right-ponders) and was used for COBOL
    development (via FLOW-MATIC) by Admiral Hopper (whom I met
    at ACM '80).

    FLOW-MATIC influenced COBOL, but it's not the same language as COBOL.
    Which does not mean that COBOL was not implemented on IBM 705 m3.

    In the unlikely event anyone cares, here's the manual:

    https://bitsavers.org/pdf/ibm/7080/J28-6177-3_IBM_705_7080_Programming_Systems_COBOL_Additional_Specifications_Apr64.pdf

    I can easily believe they wrote COBOL on the 7080 and then backported it to the 705, but so what?

    The original question whether "COBOL was never quite IBM's thing" and it is obvious to
    anyone who spends five minutes looking that they supported it up and down the product
    lines. There was even COBOL for the 1401 which is pretty amazing considering how tiny
    a 1401 was and it ran in 4000 characters of core. You needed tapes or a disk but even so.

    I still have a copy of the Nevada COBOL compiler for the Commodore 64.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to EricP on Sat Aug 31 22:38:06 2024
    On Fri, 30 Aug 2024 12:24:35 -0400, EricP wrote:

    VAX Fortran77 and other compilers and tools were developed concurrently
    with VAX hardware on the PDP-11 but emitting VAX instructions.

    DEC was quite fond of BLISS at the time. Its high-performance “Fortran IV Plus” compiler for the PDP-11 was written in BLISS.

    Trouble is, they were not able to get a decent BLISS compiler to fit
    within the limitations of the PDP-11. So the Fortran IV Plus compiler had
    to be built on a PDP-10.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Michael S on Sat Aug 31 22:33:58 2024
    On Fri, 30 Aug 2024 18:37:42 +0300, Michael S wrote:

    It would not surprise me if COBOL compiler was implemented and tested on
    7080 then, while still on 7080, ported to emulated 705 and then sold to
    users of real 705.

    As I recall, IBM wasn’t part of CODASYL, and had no part in COBOL development. So it had the usual “NIH” attitude and was trying to push
    PL/I as its all-singing, all-dancing language for both business and
    scientific use, for some time.

    Eventually, of course, customers forced it to relent and offer COBOL.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MitchAlsup1@21:1/5 to Lawrence D'Oliveiro on Sun Sep 1 00:52:34 2024
    On Sat, 31 Aug 2024 22:38:06 +0000, Lawrence D'Oliveiro wrote:

    On Fri, 30 Aug 2024 12:24:35 -0400, EricP wrote:

    VAX Fortran77 and other compilers and tools were developed concurrently
    with VAX hardware on the PDP-11 but emitting VAX instructions.

    DEC was quite fond of BLISS at the time. Its high-performance “Fortran
    IV Plus” compiler for the PDP-11 was written in BLISS.

    Imagine trying to fit LLVM or GCC into a PDP/11 address space.

    Trouble is, they were not able to get a decent BLISS compiler to fit
    within the limitations of the PDP-11. So the Fortran IV Plus compiler
    had to be built on a PDP-10.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Dallman@21:1/5 to D'Oliveiro on Sun Sep 1 11:56:00 2024
    In article <vb05om$162j5$2@dont-email.me>, ldo@nz.invalid (Lawrence
    D'Oliveiro) wrote:

    As I recall, IBM wasn't part of CODASYL, and had no part in COBOL development. So it had the usual _NIH_ attitude and was trying to
    push PL/I as its all-singing, all-dancing language for both business
    and scientific use, for some time.

    I'm afraid you recall incorrectly. IBM had a significant part in the
    design of COBOL in 1959-60 and implemented it early on.

    <https://en.wikipedia.org/wiki/COBOL>

    They did later try to promote PL/1 as "the language for everything," but
    the language design effort started in 1963, and the first compiler was delivered in 1966.

    <https://en.wikipedia.org/wiki/PL/I>

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to All on Mon Sep 2 03:28:52 2024
    On Sun, 1 Sep 2024 00:52:34 +0000, MitchAlsup1 wrote:

    Imagine trying to fit LLVM or GCC into a PDP/11 address space.

    Pretty much from the moment the PDP-11 range was introduced, it was
    obvious the 16-bit address space was going to be a significant limitation.

    The main OS I was familiar with on those machines was RSTS/E. In its later versions it introduced some wondrous hacks to try to increase the
    available address space for programs, making use of various features of
    the PDP-11 in ways they were never quite meant to be used.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to John Dallman on Mon Sep 2 03:21:02 2024
    On Sun, 1 Sep 2024 11:56 +0100 (BST), John Dallman wrote:

    They did later try to promote PL/1 as "the language for everything,"

    I think that should be “PL/I”, even if it was meant to be pronounced as “Pee-Ell One” or “Programming Language One”.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Keith Thompson on Mon Sep 2 03:25:19 2024
    On Wed, 28 Aug 2024 13:41:31 -0700, Keith Thompson wrote:

    Every typo correction must include at least one additional typo.

    That’s called “Muphry’s Law”, for obvious reasons ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Tim Rentsch@21:1/5 to EricP on Mon Sep 2 00:22:12 2024
    EricP <ThatWouldBeTelling@thevillage.com> writes:

    IF one wanted to raise an FP or decimal value to an integer power
    by repeated multiplies and had to roll your own routine, then what
    is the optimal way to do so?

    A harder problem than most people expect. Covered in The Art of
    Computer Programming, vol 2, "The Evaluation of Powers".

    In practical terms, repeated squaring and optionally multiplying
    is just fine. But it isn't always optimal.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From EricP@21:1/5 to Tim Rentsch on Mon Sep 2 09:02:18 2024
    Tim Rentsch wrote:
    EricP <ThatWouldBeTelling@thevillage.com> writes:

    IF one wanted to raise an FP or decimal value to an integer power
    by repeated multiplies and had to roll your own routine, then what
    is the optimal way to do so?

    A harder problem than most people expect. Covered in The Art of
    Computer Programming, vol 2, "The Evaluation of Powers".

    In practical terms, repeated squaring and optionally multiplying
    is just fine. But it isn't always optimal.

    Thanks. The Evaluation of Powers section earns 24 pages in AoCP.
    The binary method I later "rediscovered" and posted is the same as in AoCP.
    It says "The great calculator al-Kashi stated Algorithm A in A.D. 1427 [Istoriko-Mat. Issledovania 7 (1954), 256257]. The method is closely
    related to a procedure for multiplication that was actually used by
    Egyptian mathematicians as early as 2000 B.C."

    But it also shows that it is not the minimum number of multiplies possible. "Several authors have published statements (without proof) that the binary method actually gives the minimum possible number of multiplications.
    But that is not true. The smallest counterexample is n = 15, when the
    binary method needs six multiplications, yet we can calculate y = x^3
    in two multiplications and x^15 = y^5 in three more, achieving the desired result with only five multiplications."

    And then follows about 20+ pages of how to do this optimally.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)