Home > Archive > Fortran > March 2006 > Will the *real* vms fortran please stand up? (historical questions)
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Will the *real* vms fortran please stand up? (historical questions)
|
|
| transnet@vrx.net 2006-03-20, 6:59 pm |
| Ok, this is annoying. and confusing as all hell.
What about the fortran I used in 1976 (early on in the year) on - it
was either a PDP-10 or a PDP-11. I think even on a PDP-10 running
something called TOPPS-10 (ewww)
at that time, it couldn't possibly have been fortran/77 correct?
because it was a year too early.
so it must have been fortran/IV (or something)
and on the vax (11/750) in late 1976, still too early for F/77, right?
and again on vax/vms in 1977 or 1978 on an 11/782, ok now we can have
F/77, but there aint no way this is F90 or F95.
it wasnt openvms (I dont think openvms existed back then). so it wasnt
compaq or hp or itanium crap cuz none of that existed then!
So for the history buffs out there, which one was which and when did
each version come along?
what was "fortran" in 1976 ? (at least on the DEC platforms)
And my favorite (err) trivia question: how does Valtrep play a part in
this mess? or does it?
to me, working in Valtrep on a sentry-70 seemed almost identical to
working with fortran on a vax 8600 (vms again) in 1986.
| |
| glen herrmannsfeldt 2006-03-20, 6:59 pm |
| transnet@vrx.net wrote:
> Ok, this is annoying. and confusing as all hell.
> What about the fortran I used in 1976 (early on in the year) on - it
> was either a PDP-10 or a PDP-11. I think even on a PDP-10 running
> something called TOPPS-10 (ewww)
> at that time, it couldn't possibly have been fortran/77 correct?
> because it was a year too early.
WATFIV had many Fortran 77 features in 1973, including CHARACTER
variables, expressions in I/O lists, IF/THEN/ELSE and other
structured programming concepts, and probably more.
> so it must have been fortran/IV (or something)
> and on the vax (11/750) in late 1976, still too early for F/77, right?
I thought it wasn't until late 1977 or early 1978 that VAX came out,
and that was the 11/780. Maybe two years later for the 11/750 and 11/730.
As others have said, and I think is right, many of the early system
programs, including the Fortran compiler, ran in PDP-11 comparability (sic)
mode.
-- glen
| |
|
|
<transnet@vrx.net> wrote in message
news:1142895983.508205.287260@v46g2000cwv.googlegroups.com...
> Ok, this is annoying. and confusing as all hell.
>
> What about the fortran I used in 1976 (early on in the year) on - it
> was either a PDP-10 or a PDP-11. I think even on a PDP-10 running
> something called TOPPS-10 (ewww)
TOPS-10
>
> at that time, it couldn't possibly have been fortran/77 correct?
> because it was a year too early.
> so it must have been fortran/IV (or something)
>
> and on the vax (11/750) in late 1976, still too early for F/77, right?
Sorry, the 750 was released after the 780. Make the date about 1982. I
will never forget the day that I loaded SABackup off those TU58 tapes. It
took 2 hours That is Standalone Backup.
>
> and again on vax/vms in 1977 or 1978 on an 11/782, ok now we can have
> F/77, but there aint no way this is F90 or F95.
As Steve Lionel said, what came with the very first 780 was a compatibility
mode program that was actually F4P from RSX-11. The 782 came after the 750.
It was an asymmetrical multiprocessor system.
I have heard people say that the principle customer for the 782 was VMS
Engineering. It kept the system build time to only 24 hours.
>
> it wasnt openvms (I dont think openvms existed back then). so it wasnt
> compaq or hp or itanium crap cuz none of that existed then!
OpenVMS was just a marketing name.
>
> So for the history buffs out there, which one was which and when did
> each version come along?
> what was "fortran" in 1976 ? (at least on the DEC platforms)
It was F4P for VMS V1.5 and 2.x. As I started in VMS at V3.6, my actual
knowledge of the early days is limited.
It was F77 for all subsequent VAXen. I quit paying attention to VAXen
around 1995.
The Alpha started with F77, but very soon DEC converted to F90.
>
> And my favorite (err) trivia question: how does Valtrep play a part in
> this mess? or does it?
> to me, working in Valtrep on a sentry-70 seemed almost identical to
> working with fortran on a vax 8600 (vms again) in 1986.
>
Jim
| |
| transnet@vrx.net 2006-03-20, 6:59 pm |
| Yeah I got my times off a bit too.
It must have been the vax 11/780 I started using in 1978
and after that it was an 11/782 but it was much easlier than 1982 for
sure.
I started with the PDP systems in 1976, the first vax showed up in 1978
- pretty sure anyhow.
and thanks "TOPS-10"
but there is still a hole in your history after 2.x and up to 3.6 or
around that time.
I clearly remember 3.1 and 3.3, but not the actual details of what was
in them, etc.
that's probably better left for the vms or vax groups.
so likely as you said F4P from RSX-11, those were the good old days.
I think I started using the 11/750 in 1984 (the one with the pdp-8 fep)
and no one still has answered my weird question about valtrep :)
| |
| Steve Lionel 2006-03-20, 9:56 pm |
| transnet@vrx.net wrote:
> Ok, this is annoying. and confusing as all hell.
>
> What about the fortran I used in 1976 (early on in the year) on - it
> was either a PDP-10 or a PDP-11. I think even on a PDP-10 running
> something called TOPPS-10 (ewww)
TOPS-10 on a PDP-10, or more precisely, a DECsystem-10. The PDP-10
FORTRAN compiler you used was an extended FORTRAN IV (F66) compiler
> and on the vax (11/750) in late 1976, still too early for F/77, right?
Your timeframes are a bit off. The VAX-11/780 and VAX-11/VMS V1 and
VAX-11 FORTRAN-IV-PLUS were released in August 1978. I started at DEC in
October 1978. The VAX-11/750 did not appear until 1980 along with
VAX/VMS V2 and VAX-11 FORTRAN V2. By this time, the compiler was
full-language F77 (with extensions, of course)
>
> and again on vax/vms in 1977 or 1978 on an 11/782, ok now we can have
> F/77, but there aint no way this is F90 or F95.
The 11/782, which was a asymmetrical dual-processor 780 came out in 1981
or thereabouts.
> it wasnt openvms (I dont think openvms existed back then). so it wasnt
> compaq or hp or itanium crap cuz none of that existed then!
OpenVMS is just a new name for VMS. As we like to say, "the Open is
silent". By the way, it was still DEC (or DIGITAL) when the name
changed to OpenVMS back in the mid-1990s.
> So for the history buffs out there, which one was which and when did
> each version come along?
> what was "fortran" in 1976 ? (at least on the DEC platforms)
In 1976 you're looking at DEC Fortran compilers for TOPS-10, TOPS-20
(DECSYSTEM-20, and yes that one was all caps) and either RT-11, RSTS/E
or various flavors of RSX on PDP-11 systems. All of those were extended
FORTRAN IV. There were two different compilers on the PDP-11, PDP-11
FORTRAN, which was close to F66 and not very optimizing, and
FORTRAN-IV-PLUS, which was closer to F77 and optimizing. F4P, as it was
called, was the basis of the VAX FORTRAN compiler.
I think there was a FORTRAN-D for the PDP-8 that I used once upon a time.
I'll close this history text by noting that two of the TOPS-10/20
Fortran developers and one of the RSX Fortran developers are still
working in the Intel compiler group today. I'm supposed to be writing
an article on our long (and sordid?) history for a magazine, if I ever
find the time.
Steve Lionel
| |
| William Asher 2006-03-21, 3:57 am |
| Steve Lionel <Steve.Lionel@RemoveMeIntel.com> wrote in news:80JTf.15525
$S25.10157@newsread1.news.atl.earthlink.net:
<snip>
>
> I'll close this history text by noting that two of the TOPS-10/20
> Fortran developers and one of the RSX Fortran developers are still
> working in the Intel compiler group today. I'm supposed to be writing
> an article on our long (and sordid?) history for a magazine, if I ever
> find the time.
>
Steve:
If you can take possibly getting flamed for what might appear to be self-
promotion, for those of us who don't get out much, so to speak, when that
article gets published, could you maybe make a quick post here as to
where one would look for it to read it?
Thanks.
--
Bill Asher
| |
| Steve Lionel 2006-03-21, 10:05 pm |
| On Tue, 21 Mar 2006 00:14:04 GMT, "Jim" <jim-norris@sbcglobal.net> wrote:
>As Steve Lionel said, what came with the very first 780 was a compatibility
>mode program that was actually F4P from RSX-11.
Not quite. It was indeed a compatibility-mode program derived from F4P, but it
generated native VAX code.
Steve Lionel
Developer Products Division
Intel Corporation
Nashua, NH
User communities for Intel Software Development Products
http://softwareforums.intel.com/
Intel Fortran Support
http://developer.intel.com/software/products/support/
| |
|
|
"Steve Lionel" <Steve.Lionel@RemoveMeIntel.com> wrote in message
news:80JTf.15525$S25.10157@newsread1.news.atl.earthlink.net...
> transnet@vrx.net wrote:
>
> TOPS-10 on a PDP-10, or more precisely, a DECsystem-10. The PDP-10
> FORTRAN compiler you used was an extended FORTRAN IV (F66) compiler
>
>
> Your timeframes are a bit off. The VAX-11/780 and VAX-11/VMS V1 and
> VAX-11 FORTRAN-IV-PLUS were released in August 1978. I started at DEC in
> October 1978. The VAX-11/750 did not appear until 1980 along with
> VAX/VMS V2 and VAX-11 FORTRAN V2. By this time, the compiler was
> full-language F77 (with extensions, of course)
>
> The 11/782, which was a asymmetrical dual-processor 780 came out in 1981
> or thereabouts.
>
>
> OpenVMS is just a new name for VMS. As we like to say, "the Open is
> silent". By the way, it was still DEC (or DIGITAL) when the name
> changed to OpenVMS back in the mid-1990s.
>
>
> In 1976 you're looking at DEC Fortran compilers for TOPS-10, TOPS-20
> (DECSYSTEM-20, and yes that one was all caps) and either RT-11, RSTS/E
> or various flavors of RSX on PDP-11 systems. All of those were extended
> FORTRAN IV. There were two different compilers on the PDP-11, PDP-11
> FORTRAN, which was close to F66 and not very optimizing, and
> FORTRAN-IV-PLUS, which was closer to F77 and optimizing. F4P, as it was
> called, was the basis of the VAX FORTRAN compiler.
>
> I think there was a FORTRAN-D for the PDP-8 that I used once upon a time.
>
> I'll close this history text by noting that two of the TOPS-10/20
> Fortran developers and one of the RSX Fortran developers are still
> working in the Intel compiler group today. I'm supposed to be writing
> an article on our long (and sordid?) history for a magazine, if I ever
> find the time.
>
> Steve Lionel
This is good a time as any to inquire about the RT-11 compiler. As I recall
it could generate either in-line or threaded code. For threaded code, the
compiler created a table of which contained runtme routines and the data for
them. To start a program, the OS pushed the address of the table to R4.
As an example, supposed that you wanted to add two numbers. The section of
the table would consist of:
Push A - put the value of A on the stack
Push B - put the value of B on the stack
Push $Add - put the address of the runtime routine which adds two numbers
and returns the result on the stack.
The last instrution in the $Add routine is JMP @(r4)+ which points the PC to
the instruction after the Push $Add.
By the way, Push is a macro which translates to Mov <arg> (R4)+.
I have always wondered if DEC were the only ones who used this technique.
Jim
| |
| Greg Lindahl 2006-03-22, 4:01 am |
| In article <Pw2Uf.3893$tN3.3150@newssvr27.news.prodigy.net>,
Jim <jim-norris@sbcglobal.net> wrote:
>I have always wondered if DEC were the only ones who used this technique.
Er, that's typically the way Forth compilers work, so it's pretty common
outside of Fortran.
-- greg
| |
| glen herrmannsfeldt 2006-03-22, 8:05 am |
| Jim wrote:
(snip)
> For threaded code, the
> compiler created a table of which contained runtme routines and the data for
> them. To start a program, the OS pushed the address of the table to R4.
> As an example, supposed that you wanted to add two numbers. The section of
> the table would consist of:
> Push A - put the value of A on the stack
> Push B - put the value of B on the stack
> Push $Add - put the address of the runtime routine which adds two numbers
> and returns the result on the stack.
(snip)
> I have always wondered if DEC were the only ones who used this technique.
The IBM S/360 Fortran G compiler itself was written in a similar way.
As I understand it, it was contracted out by IBM to another company that
wrote all their code that way. Note in addition that the threaded code
is machine independent once the called routines are rewritten. For a
company doing contract programming for a variety of different machine,
that could be very convenient. (In the days when most systems
programming was done in assembler.)
I believe also some interpreters generate an intermediate code similar
to threaded code. That allows speed somewhat between compiled code and
pure interpreted code. Perl does something like that. In addition
there is a program called something like perl2c that seems to convert
perl to C code, but in fact generates something like threaded code and
the C code to process it.
-- glen
-- glen
| |
| Ken Fairfield 2006-03-22, 7:03 pm |
| transnet@vrx.net wrote:
> Ok, this is annoying. and confusing as all hell.
>
> What about the fortran I used in 1976 (early on in the year) on - it
> was either a PDP-10 or a PDP-11. I think even on a PDP-10 running
> something called TOPPS-10 (ewww)
>
> at that time, it couldn't possibly have been fortran/77 correct?
> because it was a year too early.
> so it must have been fortran/IV (or something)
>
> and on the vax (11/750) in late 1976, still too early for F/77, right?
>
> and again on vax/vms in 1977 or 1978 on an 11/782, ok now we can have
> F/77, but there aint no way this is F90 or F95.
I'm (slightly) surprised that Steve Lionel chose not to
give a more complete answer, but your time-line for VAXes
is off by about 5 years...
The first VAXes, the VAX 11-780's, shipped with VMS 1.0
in late 1978. VMS 2.0 shipped in 1980 and the VAX 11-782
would have been from that time frame as well. The 11-750's
came along around 1982, if I'm not mistaken, though possibly
in 1981... They were VAXes in their own right, not anything
to do with PDP's (as you asked in an earlier post) other than
the general VAX heritage coming from the 11's, and were rated
at about 80% of an 11-780 (i.e., pretty slow).
As Jim Norris noted, at least by VMS 2.0 in 1981 when I was
introduced to it, the VAX Fortran compiler was Fortran 77. I
never saw the compatibility mode compiler Steve mentioned...
That people still programmed with Fortran IV idioms under
Fortran 77 is typical of the larger history of Fortran, i.e.,
that old code using non-standard hacks, or other vendor's extensions
(e.g., IBM), is supported by the newer compilers.
> it wasnt openvms (I dont think openvms existed back then). so it wasnt
> compaq or hp or itanium crap cuz none of that existed then!
As Jim noted, that was just a (misguided?) marketing change.
"Everyone" knows that the "Open" is silent in "OpenVMS". ;-{
OTOH, VMS is VMS is VMS on VAX, Alpha and Itanium hardware... :-)
> So for the history buffs out there, which one was which and when did
> each version come along?
> what was "fortran" in 1976 ? (at least on the DEC platforms)
In 1976, it would have been on a PDP of some type and would
have been Fortran IV-ish (I have no first hand experience with
Fortran on those platforms).
> And my favorite (err) trivia question: how does Valtrep play a part in
> this mess? or does it?
> to me, working in Valtrep on a sentry-70 seemed almost identical to
> working with fortran on a vax 8600 (vms again) in 1986.
FWIW, 1986 is about the right time frame for the 8600...
Regards, Ken
--
I don't speak for Intel, Intel doesn't speak for me...
Ken Fairfield
D1C Automation VMS System Support
who: kenneth dot h dot fairfield
where: intel dot com
| |
| glen herrmannsfeldt 2006-03-22, 7:03 pm |
| Ken Fairfield <my.full.name@intel.com> wrote:
(snip)
> The first VAXes, the VAX 11-780's, shipped with VMS 1.0
> in late 1978. VMS 2.0 shipped in 1980 and the VAX 11-782
> would have been from that time frame as well. The 11-750's
> came along around 1982, if I'm not mistaken, though possibly
> in 1981... They were VAXes in their own right, not anything
> to do with PDP's (as you asked in an earlier post) other than
> the general VAX heritage coming from the 11's, and were rated
> at about 80% of an 11-780 (i.e., pretty slow).
If I remember, it is 80% speed and 60% or so price.
The place I was at around then bought 3 750's and a 730, probably
for about the price of two 780's. Research groups were divided
up among them.
(snip)(snip)(snip)(snip)(snip)(snip)(sni
p)(snip)(snip)
> That people still programmed with Fortran IV idioms under
> Fortran 77 is typical of the larger history of Fortran, i.e.,
> that old code using non-standard hacks, or other vendor's extensions
> (e.g., IBM), is supported by the newer compilers.
My feeling was always that IBM was much more conservative on
their extensions, though they did have a significant number of them.
END= on read was very useful, for example, but they didn't supply
internal I/O on the Fortran 66 (Fortran IV) compilers.
DEC had ENCODE and DECODE for internal I/O relatively early.
IBM didn't allow conversion between INTEGER and LOGICAL, or using
logical operators as bitwise operations. The H extended compiler
did have IAND and IOR, with a special compiler option. They were
needed to compile the compiler!
The only one byte type that the S/360 compilers (before VS Fortran)
have is LOGICAL*1, but you can't use relational operators, such
as .EQ. with it! Next best for character operations is INTEGER*2.
(There is no LOGICAL*2 or INTEGER*1.)
-- glen
| |
| Patrick L. Nolan 2006-03-22, 7:03 pm |
| Jim <jim-norris@sbcglobal.net> wrote:
> This is good a time as any to inquire about the RT-11 compiler. As I recall
> it could generate either in-line or threaded code. For threaded code, the
> compiler created a table of which contained runtme routines and the data for
> them. To start a program, the OS pushed the address of the table to R4.
> As an example, supposed that you wanted to add two numbers. The section of
> the table would consist of:
> Push A - put the value of A on the stack
> Push B - put the value of B on the stack
> Push $Add - put the address of the runtime routine which adds two numbers
> and returns the result on the stack.
> The last instrution in the $Add routine is JMP @(r4)+ which points the PC to
> the instruction after the Push $Add.
> By the way, Push is a macro which translates to Mov <arg> (R4)+.
> I have always wondered if DEC were the only ones who used this technique.
> Jim
This takes me back to ancient memories. About 1980 I had a computer
with an 8080 processor and the CP/M operating system. I bought a copy
of Microsoft Fortran for it. This was when Microsoft was a little
company mainly known for its BASIC interpreter. One day I decided
to disassemble some compiled code to see what it was doing. It looked
a lot like your description. I'm not sure it used a stack -- maybe
it put things in registers. But the whole program consisted of
function calls and moving arguments around.
--
* Patrick L. Nolan *
* W. W. Hansen Experimental Physics Laboratory (HEPL) *
* Stanford University *
|
|
|
|
|