I find the syntax with multiple DO groups a bit alarming. The problem in.
this case is the multiple DO groups. If you remove the 1 TO 26 group so reducing things to a single group, and recode it as a loop around the
PUT statement, the results seem correct.
El miércoles, 28 de octubre de 2020 a la(s) 22:20:21 UTC-3, Robin Vowels escribió:years.
On Thursday, October 29, 2020 at 3:19:41 AM UTC+11, c......@gmail.com wrote:
Hi Everyone,
Hi Robin!,
In the compiler version I used I've got a conversion error during runtime, that's why I changed the format. Actually there are some differences in PL/I Subset D, (f) and optimizing, reflecting the development of the software and computer capacity along
PLI(f) was able to run, in computers so tiny, we would consider them a joke.in assembly code, and memory dumps.
I agree PL/I is very permisive in the use of identifiers, and not declaring them, but this is also a nice way, to get hard to find bugs ( for instance the overflows, were caused by endings in 0 and O. or L and I or 1.
As for myself I would have declared all the variables, commenting out them, a way I use since my first PLI in the 1970's. This, along the options, nest, xref and nest and (check:) are wonderful debugging tools, from a time where you had to debug based
I would have modularizated the program, with internal modules, and also would have simplified all the formats.was test using PL/I under CMS. Now half a century later, there are other tools.
Seems like the then candidate to doctorate, was influenced by FORTRAN IV style, very much used in universities, during 1960's and 70's
And why translate to C++ ? Because mr Kumaresh is doctorate candidate, doing original work, using as a tool flow model systems based in C++. Having this programs up and running, can help him to veryfy his results. This original thesis from the 1970's
Regard,.
Carlos
On Friday, October 30, 2020 at 2:41:12 AM UTC+11, c......@gmail.com wrote:along years.
El miércoles, 28 de octubre de 2020 a la(s) 22:20:21 UTC-3, Robin Vowels escribió:
On Thursday, October 29, 2020 at 3:19:41 AM UTC+11, c......@gmail.com wrote:
Hi Everyone,
Hi Robin!,
In the compiler version I used I've got a conversion error during runtime, that's why I changed the format. Actually there are some differences in PL/I Subset D, (f) and optimizing, reflecting the development of the software and computer capacity
based in assembly code, and memory dumps.PLI(f) was able to run, in computers so tiny, we would consider them a joke.
I agree PL/I is very permisive in the use of identifiers, and not declaring them, but this is also a nice way, to get hard to find bugs ( for instance the overflows, were caused by endings in 0 and O. or L and I or 1.
As for myself I would have declared all the variables, commenting out them, a way I use since my first PLI in the 1970's. This, along the options, nest, xref and nest and (check:) are wonderful debugging tools, from a time where you had to debug
was test using PL/I under CMS. Now half a century later, there are other tools.I would have modularizated the program, with internal modules, and also would have simplified all the formats.
Seems like the then candidate to doctorate, was influenced by FORTRAN IV style, very much used in universities, during 1960's and 70's
And why translate to C++ ? Because mr Kumaresh is doctorate candidate, doing original work, using as a tool flow model systems based in C++. Having this programs up and running, can help him to veryfy his results. This original thesis from the 1970's
Well, this thesis on combustion models, was done with the more advanced equpment of it's time, IBM/370, CMS, PLI.But at the time computers were really slow, and with very few memory ( a fortran finite differential equations, took me 15 minutes of CPURegard,.
Carlos
Back in 1966, PL/I took the default rule for names
from FORTRAN, along with the facility to avoid
explicit declarations for names.
That was helpful, because most people had limted typing skills.
For years now, it has been possible to force all variables
to be declared explicitly.
.
As for IBM PL/I subset D, that was intended for small
machines having limited core memory.
.
IBM's PL/I-F compler was intended for modest to large
machines, from 64K core memory and above. It implemented
pretty well all the language.
.
IBM's PL/I Optimising and Checkout compilers introduced a few
extra features relevant to structured programming,
including DO FOREVER; LEAVE and ITERATE.
.
Major enhancements occurred with IBM's PL/I for OS/2 in 1994.
They included many character-handling built-in functions,
and many numeric built-in functions including a random number
generator.
.
There's no need to translate that PL/I program to C++.
You say, "half a century later, there are other tools".
But just because the name of the language has not changed
does not mean that no improvements have been made to the
language. In effect, PL/I has become PL/I++.
It is just as modern and useful as it ever was.
p.s., Thanks for getting the PL/I program to work.
I'm not very impressed with object oriented programming, Most of their concepts, were implemented in PL/I(f) , we had multiple entries for procedures. Internal procedures, are pretty much like classes, we had static and dynamic data storage, evenstructures and arrays could be dynamically allocated.
best regards
Carlos
Carlos, you forgot that PL/I could be compiled to pseudo code, similar to a machine code. One could write an interpreter on any machine to read the pseudo code and execute the local machine's machine code. Just as is done with the JVM (Java VirtualMachine). Which is to say that PL/I was write once, run anywhere. It was way ahead of Java. Unfortunately, IBM considered themselves a hardware company and didn't push their software.
Cornel
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
On Sunday, November 1, 2020 at 3:51:40 AM UTC-5, Eric Jackson wrote:that anyone did.
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
I know what pseudo code means now. And I know that back in the 70's, one of the optional outputs from a PL/I compiler was called pseudo code. And I know that is was like a machine code and one could write an interpreter for it, though I'm not aware
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:.
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
Anyone who thinks PL/I was more advanced than Java doesn't know anything about PL/I or Java..
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:.
That's not what pseudo code is at all. You should look it up the.
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler..
Anyone who thinks PL/I was more advanced than Java doesn't know anything about PL/I or Java..
On Sunday, November 1, 2020 at 7:51:40 PM UTC+11, Eric Jackson wrote:
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:..
That's not what pseudo code is at all. You should look it up the..
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
PL/I has pretty well been "write once, run anywhere".
Additions to the language have not affected the running of existing programs. ..
And it was PL/S, not PL/C. PL/C was a student debugging compiler...
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added about 45 seconds to the compile-link-go sequence.
..
Compilation and execution of a PL/I program via PL/C could be over in less time
than the compile-link-go of the IBM sofware.
..
Execution time of a PL/C program was slower than that of PL/I-F,
but that didn't matter for short running programs.
..
One special advantage of PL/C was its ability to take a program to
execution, because it was a correcting compiler -- far more than
PL/I-F was.
..
PL/C was to PL/I like WATFOR was to FORTRAN -- a fast compiler
that could get the jobs through in a short time.
..
Anyone who thinks PL/I was more advanced than Java doesn't know anything..
about PL/I or Java.
PL/I came out a long time before Java.
On 11/1/20 1:52 PM, Cornell Sternbergh wrote:
On Sunday, November 1, 2020 at 3:51:40 AM UTC-5, Eric Jackson wrote:I believe you are thinking of Pseudo-Assembler Code, a printed hex representation of the object code produced by the compiler, annotated
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
I know what pseudo code means now. And I know that back in the 70's,
one of the optional outputs from a PL/I compiler was called pseudo
code. And I know that is was like a machine code and one could write
an interpreter for it, though I'm not aware that anyone did.
with an approximation of assembler language that might produce it.
Something of the sort has been standard in IBM compilers for many
decades, though more modern systms generally rely on the ability of
symbolic debuggers to display code as it runs.
that anyone did.I know what pseudo code means now. And I know that back in the 70's, one of the optional outputs from a PL/I compiler was called pseudo code. And I know that is was like a machine code and one could write an interpreter for it, though I'm not aware
I believe you are thinking of Pseudo-Assembler Code, a printed hex representation of the object code produced by the compiler, annotatedNope... the assembler/machine code output (it was kind of like machine code, but with some names and stuff to make it easier to read, not quite assembler like) from PL/I was the same kind of output one could get from CoBOL or ForTran, it was needed for
with an approximation of assembler language that might produce it.
Something of the sort has been standard in IBM compilers for many
decades, though more modern systms generally rely on the ability of
symbolic debuggers to display code as it runs.
--
On 11/1/20 10:55 PM, Robin Vowels wrote:
On Sunday, November 1, 2020 at 7:51:40 PM UTC+11, Eric Jackson wrote:
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:..
That's not what pseudo code is at all. You should look it up the..
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
PL/I has pretty well been "write once, run anywhere".
Write once, compile anywhere, as opposed to Java’s compile once, run anywhere.
Additions to the language have not affected the running of existing
programs.
..
And it was PL/S, not PL/C. PL/C was a student debugging compiler...
PL/C was a serious PL/I compiler. Yes, though it was intended for
student use,
it was also intended for general use, because it was so much faster at
compilation
than PL/I-F. The weakness of the IBM offering was the link editor that
added
about 45 seconds to the compile-link-go sequence.
Which is why the load-and-go program was developed as an alternative.
..
Compilation and execution of a PL/I program via PL/C could be over in
less time
than the compile-link-go of the IBM sofware.
..
Execution time of a PL/C program was slower than that of PL/I-F,
but that didn't matter for short running programs.
..
One special advantage of PL/C was its ability to take a program to
execution, because it was a correcting compiler -- far more than
PL/I-F was.
..
PL/C was to PL/I like WATFOR was to FORTRAN -- a fast compiler
that could get the jobs through in a short time.
..
Anyone who thinks PL/I was more advanced than Java doesn't know anything >>> about PL/I or Java...
PL/I came out a long time before Java.
On 11/1/20 4:46 PM, John W Kennedy wrote:
On 11/1/20 1:52 PM, Cornell Sternbergh wrote:
On Sunday, November 1, 2020 at 3:51:40 AM UTC-5, Eric Jackson wrote:I believe you are thinking of Pseudo-Assembler Code, a printed hex
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine >>>> was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
I know what pseudo code means now. And I know that back in the 70's,
one of the optional outputs from a PL/I compiler was called pseudo
code. And I know that is was like a machine code and one could write
an interpreter for it, though I'm not aware that anyone did.
representation of the object code produced by the compiler, annotated
with an approximation of assembler language that might produce it.
Something of the sort has been standard in IBM compilers for many
decades, though more modern systms generally rely on the ability of
symbolic debuggers to display code as it runs.
Iron Spring PL/I does this. That was how the compiler was originally
ported from zOS to OS/2 and Linux. In addition to the listing, one of
the options is to generate the assembler file in a format the assembler accepts. I'm not sure this is actually able to be assembled any more,
since it's been years since I had to use it.
The assembly code listing is quite useful for debugging.
Nope... the assembler/machine code output (it was kind of like machine code, but with some names and stuff to make it easier to read, not quite assembler like) from PL/I was the same kind of output one could get from CoBOL or ForTran, it was needed fordump-reading, the primary debugging method back then. This pseudo code wasn't 360 assembler or machine code, or machine code for any existing hardware. But it was easily (sort of) read by an interpreter which would then execute the local machine's
On Sunday, November 1, 2020 at 6:46:36 PM UTC-5, John W. Kennedy wrote:that anyone did.
I know what pseudo code means now. And I know that back in the 70's, one of the optional outputs from a PL/I compiler was called pseudo code. And I know that is was like a machine code and one could write an interpreter for it, though I'm not aware
dump-reading, the primary debugging method back then. This pseudo code wasn't 360 assembler or machine code, or machine code for any existing hardware. But it was easily (sort of) read by an interpreter which would then execute the local machine'sNope... the assembler/machine code output (it was kind of like machine code, but with some names and stuff to make it easier to read, not quite assembler like) from PL/I was the same kind of output one could get from CoBOL or ForTran, it was needed forI believe you are thinking of Pseudo-Assembler Code, a printed hex
representation of the object code produced by the compiler, annotated
with an approximation of assembler language that might produce it.
Something of the sort has been standard in IBM compilers for many
decades, though more modern systms generally rely on the ability of
symbolic debuggers to display code as it runs.
--
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added about 45 seconds to the compile-link-go sequence.
On 11/1/20 10:55 PM, Robin Vowels wrote:.
On Sunday, November 1, 2020 at 7:51:40 PM UTC+11, Eric Jackson wrote:Write once, compile anywhere, as opposed to Java’s compile once, run anywhere.
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:..
That's not what pseudo code is at all. You should look it up the..
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine >> was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
PL/I has pretty well been "write once, run anywhere".
Additions to the language have not affected the running of existing programs.
..
And it was PL/S, not PL/C. PL/C was a student debugging compiler...
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Which is why the load-and-go program was developed as an alternative..
On Sunday, November 1, 2020 at 6:46:36 PM UTC-5, John W. Kennedy wrote:that anyone did.
I know what pseudo code means now. And I know that back in the 70's, one of the optional outputs from a PL/I compiler was called pseudo code. And I know that is was like a machine code and one could write an interpreter for it, though I'm not aware
dump-reading, the primary debugging method back then.I believe you are thinking of Pseudo-Assembler Code, a printed hex representation of the object code produced by the compiler, annotatedNope... the assembler/machine code output (it was kind of like machine code, but with some names and stuff to make it easier to read, not quite assembler like) from PL/I was the same kind of output one could get from CoBOL or ForTran, it was needed for
with an approximation of assembler language that might produce it. Something of the sort has been standard in IBM compilers for many
decades, though more modern systms generally rely on the ability of symbolic debuggers to display code as it runs.
--
This pseudo code wasn't 360 assembler or machine code, or machine code for any existing hardware. But it was easily (sort of) read by an interpreter which would then execute the local machine's machine code. But again, I'm not aware anyone ever wrote avirtual machine, i.e. interpreter, for it. IBM figured they were a hardware company and didn't push their software.
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times.
and then run many.
times. Student programs are compiled until the student hopes the errors
are gone and never run again.
Nobody used PL/C for serious commercial or scientific work..
It never had extended floating point,.
the macro facility.
nor the fixed decimal data type..
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the then-current IBM 360 OS. PL/I was never write once, run anywhere.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
Anyone who thinks PL/I was more advanced than Java doesn't know anything about PL/I or Java.
Carlos, you forgot that PL/I could be compiled to pseudo code, similar
to a machine code. One could write an interpreter on any machine to
read the pseudo code and execute the local machine's machine code. Just
as is done with the JVM (Java Virtual Machine). Which is to say that
PL/I was write once, run anywhere. It was way ahead of Java.
Unfortunately, IBM considered themselves a hardware company and didn't
push their software.
Cornel
...
I'm not very impressed with object oriented programming, Most of their
concepts, were implemented in PL/I(f) , we had multiple entries for
procedures. Internal procedures, are pretty much like classes, we had
static and dynamic data storage, even structures and arrays could be
dynamically allocated.
best regards
Carlos
Carlos, you forgot that PL/I could be compiled to pseudo code, similar to
a machine code. One could write an interpreter on any machine to read
the pseudo code and execute the local machine's machine code. Just as is done with the JVM (Java Virtual Machine). Which is to say that PL/I was write once, run anywhere. It was way ahead of Java. Unfortunately, IBM considered themselves a hardware company and didn't push their software.
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote:
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times.
Probably many times, especially for large projects.
.
and then run many.
times. Student programs are compiled until the student hopes the errors are gone and never run again.
Nobody used PL/C for serious commercial or scientific work..
Really!?! Tucker did, and probably many others.
.
It never had extended floating point,.
Nor did the machine.
.
the macro facility.
Not everyone needs it.
.
nor the fixed decimal data type..
FIXED DECIMAL was available, but compiled to use floating-point instructions.
On Tuesday, November 3, 2020 at 4:07:14 AM UTC+11, John W. Kennedy wrote:
On 11/1/20 10:55 PM, Robin Vowels wrote:..
On Sunday, November 1, 2020 at 7:51:40 PM UTC+11, Eric Jackson wrote:Write once, compile anywhere, as opposed to Java’s compile once, run
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:..
That's not what pseudo code is at all. You should look it up the..
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine >>>> was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
PL/I has pretty well been "write once, run anywhere".
anywhere.
Additions to the language have not affected the running of existing programs.
..
And it was PL/S, not PL/C. PL/C was a student debugging compiler...
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Which is why the load-and-go program was developed as an alternative...
IBM didn't invent load-and-go, nor PL/C, nor Watfor.
..
Load and go was developed in 1957 by Charles Hamblin -- for GEORGE.
..
Perhaps it was invented even earlier than that.
Eric Jackson <jhril@ca.rr.com> wrote:
On 10/31/2020 9:51 AM, Cornell Sternbergh wrote:
That's not what pseudo code is at all. You should look it up the
definition of pseudo code.
And the only major PL/I compiler that had an interpreted target machine
was The PL/I Checkout Compiler, and it didn't target anything but the
then-current IBM 360 OS. PL/I was never write once, run anywhere.
Not major, but I think there was a machine whose microcoded instruction set was intended to be a direct analog of PL/I.
And it was PL/S, not PL/C. PL/C was a student debugging compiler.
Anyone who thinks PL/I was more advanced than Java doesn't know anything
about PL/I or Java.
Carlos, you forgot that PL/I could be compiled to pseudo code, similar
to a machine code. One could write an interpreter on any machine to
read the pseudo code and execute the local machine's machine code. Just >>> as is done with the JVM (Java Virtual Machine). Which is to say that
PL/I was write once, run anywhere. It was way ahead of Java.
Unfortunately, IBM considered themselves a hardware company and didn't
push their software.
Cornel
Not major, but I think there was a machine whose microcoded instruction set was intended to be a direct analog of PL/I.
Cornell Sternbergh <cornell.s...@gmail.com> wrote:A bit off-topic, but... fond memories... The preprocessor can be lots of fun. It basically used PL/I syntax on strings in the code, and generated strings which would then be consumed as PL/I statements by the compiler. One of the few things I miss
...
I'm not very impressed with object oriented programming, Most of their
concepts, were implemented in PL/I(f) , we had multiple entries for
procedures. Internal procedures, are pretty much like classes, we had
static and dynamic data storage, even structures and arrays could be
dynamically allocated.
best regards
Carlos
Carlos, you forgot that PL/I could be compiled to pseudo code, similar to a machine code. One could write an interpreter on any machine to read
the pseudo code and execute the local machine's machine code. Just as is done with the JVM (Java Virtual Machine). Which is to say that PL/I was write once, run anywhere. It was way ahead of Java. Unfortunately, IBM considered themselves a hardware company and didn't push their software.
I’m having fun now working on the preprocessor. I compiler preprocessor statements to intermediate code, and then interpret that to do the actual preprocessing.
--
Pete
On 11/3/2020 9:49 AM, Peter Flass wrote:
Not major, but I think there was a machine whose microcoded
instruction set
was intended to be a direct analog of PL/I.
Which would be pretty much the opposite of "write once, run everywhere".
Not at all. “Write once, run everywhere” demands only that the source code be compatible.
On 11/4/2020 4:41 PM, John W Kennedy wrote:.
Not at all. “Write once, run everywhere” demands only that the source code be compatible.So it was write once, run anywhere as long "anywhere" is this one
particular machine.
The compiler for the machine in question wasn't source compatible with anything else..
All the PL/I compilers had language differences, even.
among the various IBM compilers.
PL/I wasn't even compatible with its.
original language definition.
You could write portable PL/I if you were careful about staying within certain limitations, but that wasn't any different from FORTRAN or COBOL.
I loved PL/I, but this is claiming something for PL/I that was never there.
On 11/4/2020 4:41 PM, John W Kennedy wrote:
Not at all. “Write once, run everywhere” demands only that the source
code be compatible.
So it was write once, run anywhere as long "anywhere" is this one
particular machine.
The compiler for the machine in question wasn't source compatible with anything else. All the PL/I compilers had language differences, even
among the various IBM compilers. PL/I wasn't even compatible with its original language definition.
You could write portable PL/I if you were careful about staying within certain limitations, but that wasn't any different from FORTRAN or COBOL.
I loved PL/I, but this is claiming something for PL/I that was never there.
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times and then run many times. Student programs are compiled until the student hopes the errors.
are gone and never run again.
Nobody used PL/C for serious commercial or scientific work. It never
had extended floating point, the macro facility nor the fixed decimal
data type.
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote:
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times and then run many.
times. Student programs are compiled until the student hopes the errors
are gone and never run again.
Nobody used PL/C for serious commercial or scientific work. It never
had extended floating point, the macro facility nor the fixed decimal
data type.
For the record, A. B. Tucker compared several compilers, including PL/C, performing matrix inversion on a 20 x 20 matrix, in each case. [1]
The matrix is declared as FLOAT DECIMAL (16).
Times were (Table 9-4, page 279):
compile time execution time
Burroughs B6700 PL/I 7.25 secs 6.10 secs
IBM 370/145 PL/I(F) 14.49 secs 6.31 secs
IBM 370/145 PL/I (Optimiser) 25.92 secs 5.77 secs
IBM 370/145 PL/C 1.37 secs 16.07 secs
Link times for the two IBM compilers are not included. For that
you'd need to add some 30 seconds.
PL/C compiled ten times faster than the two IBM compilers.
The total time (compile + execution) for PL/C was half the compile
time for IBM PL/I Optimising compiler, and just over the compile time
for PL/I(F).
When you add in the link time for the IBM compilers, PL/C
is about four times faster for this task.
[1] A. B. Tucker, Programming languages, McGraw-Hill, 1977.
Robin Vowels <r........@gmail.com> wrote:.
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote:
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times and then run many.
times. Student programs are compiled until the student hopes the errors
are gone and never run again.
Nobody used PL/C for serious commercial or scientific work. It never
had extended floating point, the macro facility nor the fixed decimal
data type.
For the record, A. B. Tucker compared several compilers, including PL/C, performing matrix inversion on a 20 x 20 matrix, in each case. [1]
The matrix is declared as FLOAT DECIMAL (16).
Times were (Table 9-4, page 279):
compile time execution time
Burroughs B6700 PL/I 7.25 secs 6.10 secs
IBM 370/145 PL/I(F) 14.49 secs 6.31 secs
IBM 370/145 PL/I (Optimiser) 25.92 secs 5.77 secs
IBM 370/145 PL/C 1.37 secs 16.07 secs
Link times for the two IBM compilers are not included. For that
you'd need to add some 30 seconds.
PL/C compiled ten times faster than the two IBM compilers.
The total time (compile + execution) for PL/C was half the compile
time for IBM PL/I Optimising compiler, and just over the compile time
for PL/I(F).
When you add in the link time for the IBM compilers, PL/C
is about four times faster for this task.
[1] A. B. Tucker, Programming languages, McGraw-Hill, 1977.
The other interesting stat is that the extra compile time the Optimizing Compiler used, probably doing optimization, only resulted in a small improvement in execution time.
Robin Vowels <robin.vowels@gmail.com> wrote:
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote:
On 11/1/2020 7:55 PM, Robin Vowels wrote:.
PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times and then run many.
times. Student programs are compiled until the student hopes the errors
are gone and never run again.
Nobody used PL/C for serious commercial or scientific work. It never
had extended floating point, the macro facility nor the fixed decimal
data type.
For the record, A. B. Tucker compared several compilers, including PL/C,
performing matrix inversion on a 20 x 20 matrix, in each case. [1]
The matrix is declared as FLOAT DECIMAL (16).
Times were (Table 9-4, page 279):
compile time execution time
Burroughs B6700 PL/I 7.25 secs 6.10 secs
IBM 370/145 PL/I(F) 14.49 secs 6.31 secs
IBM 370/145 PL/I (Optimiser) 25.92 secs 5.77 secs
IBM 370/145 PL/C 1.37 secs 16.07 secs
Link times for the two IBM compilers are not included. For that
you'd need to add some 30 seconds.
PL/C compiled ten times faster than the two IBM compilers.
The total time (compile + execution) for PL/C was half the compile
time for IBM PL/I Optimising compiler, and just over the compile time
for PL/I(F).
When you add in the link time for the IBM compilers, PL/C
is about four times faster for this task.
[1] A. B. Tucker, Programming languages, McGraw-Hill, 1977.
The other interesting stat is that the extra compile time the Optimizing Compiler used, probably doing optimization, only resulted in a small improvement in execution time.
On 11/6/20 8:54 AM, Peter Flass wrote:
Robin Vowels <r........@gmail.com> wrote:
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote: >>> On 11/1/2020 7:55 PM, Robin Vowels wrote:
.PL/C was a serious PL/I compiler. Yes, though it was intended for student use,
it was also intended for general use, because it was so much faster at compilation
than PL/I-F. The weakness of the IBM offering was the link editor that added
about 45 seconds to the compile-link-go sequence.
Most often serious programs were compiled a few times and then run many >>> times. Student programs are compiled until the student hopes the errors >>> are gone and never run again..
Nobody used PL/C for serious commercial or scientific work. It never
had extended floating point, the macro facility nor the fixed decimal >>> data type.
For the record, A. B. Tucker compared several compilers, including PL/C, >> performing matrix inversion on a 20 x 20 matrix, in each case. [1]
The matrix is declared as FLOAT DECIMAL (16).
Times were (Table 9-4, page 279):
compile time execution time
Burroughs B6700 PL/I 7.25 secs 6.10 secs
IBM 370/145 PL/I(F) 14.49 secs 6.31 secs
IBM 370/145 PL/I (Optimiser) 25.92 secs 5.77 secs
IBM 370/145 PL/C 1.37 secs 16.07 secs
Link times for the two IBM compilers are not included. For that
you'd need to add some 30 seconds.
PL/C compiled ten times faster than the two IBM compilers.
The total time (compile + execution) for PL/C was half the compile
time for IBM PL/I Optimising compiler, and just over the compile time
for PL/I(F).
When you add in the link time for the IBM compilers, PL/C
is about four times faster for this task.
[1] A. B. Tucker, Programming languages, McGraw-Hill, 1977.
The other interesting stat is that the extra compile time the Optimizing Compiler used, probably doing optimization, only resulted in a small improvement in execution time.
Without knowing the OPT setting or whether the code is marked REORDER, that’s essentially meaningless.
On Saturday, November 7, 2020 at 7:59:07 AM UTC+11, John W. Kennedy wrote:
On 11/6/20 8:54 AM, Peter Flass wrote:=20udent use,=20
Robin Vowels <r........@gmail.com> wrote:=20
On Tuesday, November 3, 2020 at 12:49:43 PM UTC+11, Eric Jackson wrote= >:=20
On 11/1/2020 7:55 PM, Robin Vowels wrote:=20
PL/C was a serious PL/I compiler. Yes, though it was intended for st=
at compilation=20it was also intended for general use, because it was so much faster =
at added=20than PL/I-F. The weakness of the IBM offering was the link editor th=
ny=20.=20about 45 seconds to the compile-link-go sequence.=20
Most often serious programs were compiled a few times and then run ma=
rs=20times. Student programs are compiled until the student hopes the erro=
=20are gone and never run again.=20
=20
Nobody used PL/C for serious commercial or scientific work. It never=
=20had extended floating point, the macro facility nor the fixed decimal=
C,=20data type.=20.=20
For the record, A. B. Tucker compared several compilers, including PL/=
=20performing matrix inversion on a 20 x 20 matrix, in each case. [1]=20
The matrix is declared as FLOAT DECIMAL (16).=20
=20
Times were (Table 9-4, page 279):=20
compile time execution time=20
Burroughs B6700 PL/I 7.25 secs 6.10 secs=20
IBM 370/145 PL/I(F) 14.49 secs 6.31 secs=20
IBM 370/145 PL/I (Optimiser) 25.92 secs 5.77 secs=20
IBM 370/145 PL/C 1.37 secs 16.07 secs=20
=20
Link times for the two IBM compilers are not included. For that=20
you'd need to add some 30 seconds.=20
=20
PL/C compiled ten times faster than the two IBM compilers.=20
The total time (compile + execution) for PL/C was half the compile=20
time for IBM PL/I Optimising compiler, and just over the compile time=
g=20for PL/I(F).=20=20
When you add in the link time for the IBM compilers, PL/C=20
is about four times faster for this task.=20
=20
[1] A. B. Tucker, Programming languages, McGraw-Hill, 1977.=20
The other interesting stat is that the extra compile time the Optimizin=
Compiler used, probably doing optimization, only resulted in a small=20Without knowing the OPT setting or whether the code is marked REORDER,=20
improvement in execution time.=20
that=E2=80=99s essentially meaningless.
I said that REORDER wasn't used.
And the info is not meaningless.
The fact is that the optimiser took twice as long as PL/I-F and produced on= ly
a marginal improvement in execution speed.
What can be said is that even if the OPT option was set for low optimisatio= n,
full optimisation would have been intolerably longer.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 251 |
Nodes: | 16 (2 / 14) |
Uptime: | 24:27:17 |
Calls: | 5,544 |
Calls today: | 3 |
Files: | 11,676 |
Messages: | 5,109,260 |