North_TJ@cc.curtin.edu.au (Tim North) (08/13/90)
Hi, I'm running a class on various programming languages, and I'm doing a couple of lectures on FORTRAN. I'm not really sure of the different versions of FORTRAN that have appeared over the years, though. I'd really appreciate it if someone could make corrections/additions to the following table: 1953 FORTRAN I 19?? FORTRAN II ? 19?? FORTRAN III ? 1966 FORTRAN IV 1977 FORTRAN 77 198? FORTRAN 8X 1990? FORTRAN 90 ? I'd *really* appreciate it if someone could direct me towards a paper containing a brief comparison/overview of the different versions or post me a brief summary. Many thanks in advance, Tim North --------------------------------------------------------------------------- SNAIL : Dept. Computer Engineering, Curtin University of Technology. Perth, Western Australia. Internet: North_TJ@cc.curtin.edu.au ACSnet: North_TJ@cc.cut.oz.au Bitnet: North_TJ%cc.curtin.edu.au@cunyvm.bitnet UUCP : uunet!munnari.oz!cc.curtin.edu.au!North_TJ ---------------------------------------------------------------------------
pockrand@cs.umn.edu (Mitch Pockrandt) (08/13/90)
In article <3093.26c6b1cd@cc.curtin.edu.au> North_TJ@cc.curtin.edu.au (Tim North) writes: >Hi, > I'm running a class on various programming languages, and I'm doing a >couple of lectures on FORTRAN. I'm not really sure of the different versions >of FORTRAN that have appeared over the years, though. I'd really appreciate it >if someone could make corrections/additions to the following table: > > 1953 FORTRAN I > 19?? FORTRAN II ? > 19?? FORTRAN III ? > 1966 FORTRAN IV <***** ??? (see below) > 1977 FORTRAN 77 > 198? FORTRAN 8X > 1990? FORTRAN 90 ? > Time for some confusion on my part. I used to use Fortran 66 on IBMs mainframes (FORTG and FORTG1 as I recall). At the time I was under the impression that Fortran IV was a newer different beast (not necessarily blessed by ANSI or any such body) that had come about in the early 1970's to take care of some of the shortcomings of Fortran 66. At least on the Burroughs equipment I worked on 12 years ago, we had a Fortran IV compiler (FORTIV) which was different from the Fortran 66 extended workhorse we frequently used. Any body else remember or know? =========================================================================== Mitchell S. Pockrandt - Computer Science Dept. - University of Minnesota Internet: pockrand@cs.umn.edu UUCP : {uunet,rutgers}!umn-cs!pockrand Bitnet : pockrand%cs.umn.edu@UMNACVX.BITNET ===========================================================================
mroussel@alchemy.chem.utoronto.ca (Marc Roussel) (08/13/90)
In article <3093.26c6b1cd@cc.curtin.edu.au> North_TJ@cc.curtin.edu.au (Tim North) writes: > I'm running a class on various programming languages, and I'm doing a >couple of lectures on FORTRAN. I'm not really sure of the different versions >of FORTRAN that have appeared over the years, though. I'd really appreciate it >if someone could make corrections/additions to the following table: > > 1953 FORTRAN I > 19?? FORTRAN II ? > 19?? FORTRAN III ? > 1966 FORTRAN IV > 1977 FORTRAN 77 > 198? FORTRAN 8X > 1990? FORTRAN 90 ? FORTRANs 8X and 90 are the same draft ANSI/ISO standard. The latest FORTRAN standard was originally expected to be completed in the late 80's, but it didn't happen so it's now being referred to (somewhat optimistically, I think) as FORTRAN 90. You could add to your list FORTRAN 66. I believe that the ANSI specified language by this name was thought of as distinct from FORTRAN IV. The latter was generally taken to mean F66 with some extensions, but I'm not sure on this point. (I'm not old enough to remember.) We had a FORTRAN IV compiler at my last school that certainly included many features that were not part of the F66 standard. Sincerely, Marc R. Roussel mroussel@alchemy.chem.utoronto.ca
fwebb@bbn.com (Fred Webb) (08/14/90)
In article <3093.26c6b1cd@cc.curtin.edu.au> North_TJ@cc.curtin.edu.au (Tim North) writes: >if someone could make corrections/additions to the following table: > > 1953 FORTRAN I > 19?? FORTRAN II ? > 19?? FORTRAN III ? > 1966 FORTRAN IV > 1977 FORTRAN 77 > 198? FORTRAN 8X > 1990? FORTRAN 90 ? > I'm not sure Fortran III ever appeared, or if it did, it never got much use. When Fortran IV first appeared, everyone was still using Fortran II. It's possible some manufacturer made and sold a product called Fortran III, but I don't remember one. I think Fortran IV first appeared around 1963. I worked at NASA that summer, and the Mission Control Center programs were being done using the brand new IBM 7094s, which came with Fortran IV, I think. Fortran IV was (originally) an IBM product, and definitely preceeded the '66 standard. Many of the extensions that were in Fortran IV provided the basis for the '66 standard. (Back then, only things that had actually been implemented by someone were considered for inclusion in the standard.) Various manufacturers made and sold Fortran IV compilers, and extensions to Fortran IV called Fortran V (all different, of course) between the time IBM first released Fortran IV and when the Fortran '66 standard really took hold. So Fortran '66 should be added to the list, with the 1966 date, and Fortran IV should be moved back a few years. The "Fortran '77" standard wasn't officially published until 1978, so if you want to give a single date, maybe 1978 would be better. The final approval by the Fortran standards committee was in 1977, but final ANSI approval of the standard happened April 3, 1978. In spite of this, the language is called Fortran 77. Fortran 8x was the term used to refer to the various drafts of the next ANSI standard. There are probably a couple of compilers out there that claim they are "Fortran 8x" compilers, but that's an absolutely meaningless term. That could mean they conform to some or all of any of about 25 different documents. The ANSI standards committee recently decided that the new standard, when issued, would be called Fortran 90. However, the Fortran 90 standard is about to go out for another public review period, so it will probably be a year or so before the standard is actually issued. So, to give a correct date for Fortran '90, you'll have to wait until the standard is actually published - maybe 1991, but it could easily be 1992. -- Fred
bk7295@leah.Albany.Edu (Brian A. Kell) (08/15/90)
The oroginal poster requested information on where to find a summary of the `history' of FORTRAN, and here's my suggestion: Any decent-sized college or university library should have a fair number of books on various languages, including FORTRAN. However, because the 'state-of-the-art' changes so much, many (most?) of these books will be horribly out-of-date. Just looking at the titles and copyright dates (and maybe the prefaces) should give a quick-and-dirty summary of FORTRAN's history... Brian A. Kell SUNY/Albany Department of Computer Science brian@isadora.albany.edu bk7295@leah.albany.edu bk7295@albnyvms.bitnet
magnus@THEP.LU.SE (Magnus Olsson) (08/15/90)
Speaking of the various versions of Fortran: The later versions of Fortran (IV, 66, 77) are reasonably downward compatible with each other, even though there are some discrepancies, such as the handling of a degenerate DO loop (DO 10 I=1,0 ...). However, from what I've heard, Fortran I and II were quite different from later versions in, for example, the syntax for I/O statements. I've never used any of these old versions, or even come across a manual. So could somoeone out there please say something about what these languages were like? Magnus Olsson | \e+ /_ Dept. of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< Internet: magnus@thep.lu.se | / \===== g Bitnet: THEPMO@SELDC52 | /e- \q
taylor@sun.soe.clarkson.edu (Ross Taylor) (08/15/90)
There has been quite a bit of discussion on the net regarding the history of FORTRAN. I recently acquired several volumes in the Time-Life series "Understanding Computers". The volume "Computer Languages" discusses the history of most of the widely used languages and the following comments are based on material in that book. I think that this particular book may be a useful source of historical and anecdotal material for the individual that posted the original request for information (sorry, I don't have that message any more). FORTRAN was developed by an IBM team led by John Backus. It appears that developing the compiler took much more time then was ever anticipated and was six months to completion for two years. Backus regards the major contribuiton of FORTRAN as the organization of loops. The first release of FORTRAN was in April 1957 and the book refers to the attempts (succesful) by Herb Bright at the Westinghouse-Bettis Atomic Power Lab to run the compiler blind (it was recieved with no instructions). It is not clear if they were the very first outside IBM to use the new compiler but they were one of the first. FORTRAN II followed only about a year after the original release. This version allowed for, among other things, links to assembly language. FORTRAN III was written in 1958 and FORTRAN IV was announced in 1962. I hope the above information is useful. For further information the Time Life book cited above has an extensive bibliography that cites many book and journal articles that would be interesting reading. The journal "Annals of the history of computing" is cited frequently and the following issues may be particularly interesting: October 1982 and July 1979. The latter includes an article by Backus "The History of FORTRAN I, II and III". I have not read any of these articles; our library does not subscribe to this journal. Ross Taylor Department of Chemical Engineering Clarkson University, Potsdam, NY 13699 email: taylor@sun.soe.clarkson.edu (internet)
wsb@boise.Eng.Sun.COM (Walt Brainerd) (08/15/90)
In article <9008151155.AA11309@thep.lu.se>, magnus@THEP.LU.SE (Magnus Olsson) writes: > > The later versions of Fortran (IV, 66, 77) are reasonably downward > compatible with each other, even though there are some discrepancies, > such as the handling of a degenerate DO loop (DO 10 I=1,0 ...). The STANDARD Fortran 77 was compatible with the STANDARD Fortran 66 because "zero-trip" DO loops were not legal in Fortran 66. Although many compilers allowed them as an extension (e.g., IBM), not all of them got it wrong. For example, CDC 1604 Fortran executed a "zero-trip" DO loop zero times (not once). Speaking of upward compatibility, I have a copy of the original Fortran manual for the IBM 704. It contains a nice example of a complete Fortran program, almost all of which is completely legal Fortran 90. One counterexample is a line containing the FREQUENCY statement. -- Walt Brainerd Sun Microsystems, Inc. wsb@eng.sun.com MS MTV 5-40 Mountain View, CA 94043 415/336-5991
bam@bnlux0.bnl.gov (Bruce A. Martin) (08/16/90)
In article <1990Aug13.145301.20663@cs.umn.edu> pockrand@cs.umn.edu (Mitch Pockrandt) writes: >In article <3093.26c6b1cd@cc.curtin.edu.au> North_TJ@cc.curtin.edu.au (Tim North) writes: >>Hi, >> I'm running a class on various programming languages, and I'm doing a >>couple of lectures on FORTRAN. I'm not really sure of the different versions >>of FORTRAN that have appeared over the years, though. I'd really appreciate it >>if someone could make corrections/additions to the following table: >> >> 1953 FORTRAN I >> 19?? FORTRAN II ? >> 19?? FORTRAN III ? >> 1966 FORTRAN IV <***** ??? (see below) >> 1977 FORTRAN 77 >> 198? FORTRAN 8X >> 1990? FORTRAN 90 ? >> >Time for some confusion on my part. I used to use Fortran 66 on IBMs >mainframes (FORTG and FORTG1 as I recall). At the time I was under >the impression that Fortran IV was a newer different beast (not >necessarily blessed by ANSI or any such body) that had come about in >the early 1970's to take care of some of the shortcomings of Fortran >66. At least on the Burroughs equipment I worked on 12 years ago, we >had a Fortran IV compiler (FORTIV) which was different from the >Fortran 66 extended workhorse we frequently used. > >Any body else remember or know? > >=========================================================================== > Mitchell S. Pockrandt - Computer Science Dept. - University of Minnesota... >=========================================================================== There's some confusion, here. Let me try: The year numbers refer to standards. (Date of completion -- not necessarily publication.) The roman numerals were used by IBM to identify major releases. __________________________________________________________________________ WARNING: Type "J" now, to avoid lots of gory detail, replete with opinions and bad jokes. __________________________________________________________________________ As most people know, the original "Fortran" was developed at IBM by a team led by John Backus, beginning in 1954. [An excellent and enjoyable article about this work appeared over ten years later in IBM's "Computing Report (for the Scientist and Engineer)", Nov. 1976, Vol. II, No. 4.] They slipped somewhat in schedule, but completed it in 1957. The resulting commercial product was then known as "FORTRAN", but nowadays most people add a Roman numeral to distinguish "Fortran I" from its successors. (Most people nowadays have keyboards with lower case, so I'll avoid ALL-CAPS, below.) Shortly thereafter (I'll let somebody else look up the exact dates!), another team (under Libby Miller) developed a revision which was dubbed \Fortran II. It added many useful extensions (like subroutines) and became enormously popular on IBM machines (particularly the 704). I'm fuzzy about the details of \Fortran III, but it never really saw the light of day. (Some say it was never completed and that there is no such name -- just a placeholder; others say it was named but stillborn; others say it became PL/I. Inquiring minds want to know! :^> ) Finally, IBM came out with FORTRAN IV, which cleaned up a lot of silly stuff (like SQRTF and XMAXF) and added much good stuff (like the logical IF statement). FORTRAN II and FORTRAN IV were implemented on other computers (after IBM released the rights, in order to placate nervous customers who didn't want to get locked in forever to proprietary hardware). Thus arose serious issues of code portability! (Like 1620 to 7094? ;-) The American Standards Association (ASA, later renamed USASI, know known as ANSI) established a technical committee (via X3, but I'll skip the internal logic) named "X3.4.3" (later renamed X3J3) to develop a "standard". That standard -- the first standard ever developed for a programming language -- was known published as "X3.9-1966". It was virtually completed in 1963, when it was published in Communications of the ACM, but the 1966 reflects the year in which ANSI completed all the red tape and published it. The term "Fortran 66" was occasionally used to describe the language defined by X3.9-1966. The term "FORTRAN IV" refers to any of a number of slightly different IBM compilers, which more or less conform to X3.9-1966 but which also allowed various extensions (which made the user programs nonstandard). The standard also defined the semantics more precisely and more generally, restricted the syntax somewhat more to insure portability across vendors, and defined a number of things as "undefined" -- especially when different vendors (and different IBM compilers) executed them differently. [COMMON saving, Assigned GO TO variable values, and DO loop indexes are some examples.] Certainly, there was a FORTRAN IV before there was a Fortran 66. In fact, by 1964, I was already using FORTRAN IV under IBSYS on the 7040 at Brooklyn Poly. (I earned half my Graduate School tuition money by converting crystallographic codes from II to IV, and discovered how much effort a $NAME card could save! The rest came from guiding white-water canoe trips.) Many people erroneously used the term "FORTRAN IV" to describe compilers and languages conforming to X3.9, altho it rarely mattered: the differences were not very noticeable -- except when porting to another machine. (THEN you'd hear them yell at the new vendor for not having the nonstandard extension which they THOUGHT was part of the language!). Anyhow, the term "Fortran 66" got used much more AFTER the term "Fortran 77" was invented. -=o=- The term "Fortran 77" was introduced by X3J3 (the ANSI Fortran Standards Committee, at a November 1976 meeting (which I hosted at BNL)) as an *informal* name for the revision which was just being completed. It replaced the ugly name "FORTREV", which X3J3 had been using to refer to drafts of the proposed revision to ANSI standard X3.9. Unfortunately, some people used the term "Fortran 78", which either had no meaning or substitutes the ANSI adoption/publication date for the *name* of the language. (This is silly: you wouldn't call it "Fortran 80" just because the (identical) ISO standard bears a publication date of 1980; Similarly for the Canadian (1979?) and other national standards.) Some clever vendors chose product names to suggest that their compiler was bigger, or better, or up to date with the state-of-the-whatever. For example: Fortran 76, Fortran 79, Fortran 80 (which was realy a subset of 66 (!) with a few 77 features, but which ran on the Z-80), Fortran V, Fortran VI, Fortran VII, WATFIV. Such names were parochial (and much hyped), but they only served to confuse the issue of name and vintage. -=o=- When X3J3 first met (July 1977, in Jackson, WY) to plan the next revision, there was much debate as to whether we should call it "Fortran 82" or "Fortran 83". (ANSI had recently reasserted its policy of revising standards on a five-year basis.) Some preferred a quickie extension (for free form, longer names, an extended-range substitute, and perhaps a structured loop) in a couple of years, with work being done in parallel on the major changes for a more complete revision. [Alas. Would that our side had won that vote!!] :-[ Altho the revision effort was completed in about 1985, its finalization was prevented by a number of internal conflicts (vendors vs. users, vendor vs. vendor, ANSI vs. ISO, idiot vs. genius [pick your own villan(s)], micro vs. mainframe, vector vs. scalar, and many permutations [and perversions] thereof) which are too-extensively dealt with elsewhere. |-{ Of course, "Fortran 8x" was used as the working name throughout most of the revision effort. One esteemed member of X3J3 (JHM) did predict (in about 1984) that "x" was a hexadecimal digit! 8*> At one point, the ISO Fortran Standards Committee (WG5) -- which had delegated the technical work to X3J3 (in parallel with X3's delegation of work to X3J3) got so fed up that it defined the language features at its August 1988 meeting (in Paris) and threatened to proceed if X3J3 didn't finish by early the next year. The language so described was named "Fortran 88". Subsequently, "Fortran 88" was often used (but NOT by all -- it became VERY political) to describe whichever "compromise had a plurality that week. #:+< Partly to distinguish the end product from specific versions (including the August 88 ultimatum), and partly because too much time had slipped by, the committees agreed to the name "Fortran 90" to describe what has now finally become a "Draft International Standard". 8-) Whether ISO publishes it in 1990 or later (and whether ANSI revises X3.9 or adopts two languages this decade or never) the *name* of the language is "Fortran 90". -=o=- The term "Fortran 9x" often appeared in proposals and in articles as a reference to the "next" revision (i.e. the one in which ASSIGN and alternate return will be "deleted"). However, people seem to have stopped guessing when or whether there will be another revision. Maybe the next one will be "Fortran 00". :-> ;-} Just to confuse things further: around these parts, 9X is part of the Bell system (^G ?). -/s/- BAM Bruce A. Martin (516) 282-3712 [Address given for identification only.] Grumman Space Systems [Every conceivable disclaimer applies!!] c/o National Synchrotron Light Source [Opinions are mine only, & will change,] Bldg. 725C, Brookhaven National Lab. [without notice, whenever appropriate!!] Upton, NY 11973 [DISCLAIMER: The statements made herein do not necessarily reflect those of any other individual, group, organization, corporation, or government agency. My work on X3J3 does not in any way represent official policies or positions of my past or present employers nor those of any other sponsor or affiliate.]
zctsfisher@qut.edu.au (08/17/90)
In article <3093.26c6b1cd@cc.curtin.edu.au>, North_TJ@cc.curtin.edu.au (Tim North) writes: > Hi, > I'm running a class on various programming languages, and I'm doing a > couple of lectures on FORTRAN. I'm not really sure of the different versions As I remember a few things slightly differently from some who have contributed I'll add my 2 cents worth. I worked for ICT in 1966 and at that time I understood that strictly speaking the terms FORTRAN I, II, III and IV only applied to the compilers supplied by IBM at various times for their 704, 7040 and similar machines. The terms FORTRAN II and IV were commonly used by other manufacturers, including us, to indicate compilers with similar functionality and syntax to those IBM compilers. FORTRAN II was a subset of FORTRAN IV in functionality but not in syntax. I know that some FORTRAN II statements had to be modified to be correct FORTRAN IV but this was always possible. FORTRAN II used specific output commands for different peripherals such as PRINT and PUNCH. I don't think these were considered correct FORTRAN IV which used the generic WRITE. ANSI (then ASA) defined ASA FORTRAN, which was essentially a defined standard for FORTRAN IV, and ASA BASIC FORTRAN which had the same functionality as FORTRAN II but, unlike FORTRAN II, was a proper subset of ASA FORTRAN. In those days FORTRAN IV with its logical variables, logical IF statements and A Formats was considered far too complex a language for a small computer. For instance we commonly sold 8K by 24 bit systems with an ASA BASIC FORTRAN compiler. You needed 16K to run our ASA FORTRAN compiler. It was ASA FORTRAN which later became known as ANSI FORTRAN-66. At about the same time (1966/67) many computer companies started referring to their compilers as FORTRAN V which had no standard meaning other than that its supplier considered it superior to others. W.J.G.(Bill) FISHER, Director, Computing Services (Gardens Point), Queensland University of Technology Mail P.O. Box 2434 Ph (Inatl) (61+7) 223 2123 (w) Brisbane (61+7) 378 2810 (h) Queensland 4001 Fax (61+7) 229 1510 Australia Internet W_FISHER@QUT.EDU.AU Telex AA44699 ACSNET w_fisher@csvax.qut.oz.au Telegrams Quintech Brisbane VAX PSI 505272223015::W_FISHER
sakkinen@tukki.jyu.fi (Markku Sakkinen) (08/17/90)
Note: This is the second posting of an article that apparently did not go out at first. Sorry if somebody receives it twice. In article <140686@sun.Eng.Sun.COM> wsb@boise.Eng.Sun.COM (Walt Brainerd) writes: >In article <9008151155.AA11309@thep.lu.se>, magnus@THEP.LU.SE (Magnus Olsson) writes: >> >> The later versions of Fortran (IV, 66, 77) are reasonably downward >> compatible with each other, even though there are some discrepancies, >> such as the handling of a degenerate DO loop (DO 10 I=1,0 ...). > >The STANDARD Fortran 77 was compatible with the STANDARD Fortran 66 >because "zero-trip" DO loops were not legal in Fortran 66. [...] > ... There is at least one true incompatibility in DO loops. STANDARD Fortran 66 allowed jumps into DO loops from the outside under the rather complicated "extended range" rules. STANDARD Fortran 77 prohibits such jumps completely. However, as I mentioned in this newsgroup (almost a year ago?), most compiler writers haven't taken notice yet - well, what can you expect in mere 12 years? Markku Sakkinen Department of Computer Science University of Jyvaskyla (a's with umlauts) Seminaarinkatu 15 SF-40100 Jyvaskyla (umlauts again) Finland SAKKINEN@FINJYU.bitnet (alternative network address)
bam@bnlux0.bnl.gov (Bruce A. Martin) (08/21/90)
In article <1990Aug17.123818.8951@tukki.jyu.fi> sakkinen@jytko.jyu.fi (Markku Sakkinen) writes: >... >In article <140686@sun.Eng.Sun.COM> wsb@boise.Eng.Sun.COM (Walt Brainerd) writes: >>In article <9008151155.AA11309@thep.lu.se>, magnus@THEP.LU.SE (Magnus Olsson) writes: >... >There is at least one true incompatibility in DO loops. >STANDARD Fortran 66 allowed jumps into DO loops from the outside >under the rather complicated "extended range" rules. >STANDARD Fortran 77 prohibits such jumps completely. Quite true. X3J3 actually promised (in public comment responses) that this capability would be restored -- in a cleaner way -- in the next revision. In fact, a safe "extended range" capability is one of the functionalities (i.e functional requirements) which the INTERNAL subroutine feature was designed to satisfy. (MODULE capabilities also satisfy this need, to some extent.)