Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Fortran
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Obsolete variants== Until the Fortran 66 standard was developed, each compiler supported its own variant of Fortran. Some were more divergent from the mainstream than others. The first Fortran compiler set a high standard of efficiency for compiled code. This goal made it difficult to create a compiler so it was usually done by the computer manufacturers to support hardware sales. This left an important niche: compilers that were fast and provided good diagnostics for the programmer (often a student). Examples include Watfor, Watfiv, PUFFT, and on a smaller scale, FORGO, Wits Fortran, and Kingston Fortran 2. '''Fortran 5''' was marketed by [[Data General]] Corp from the early 1970s to the early 1980s, for the [[Data General Nova|Nova]], [[Data General Eclipse|Eclipse]], and [[Data General Eclipse MV/8000|MV]] line of computers. It had an optimizing compiler that was quite good for minicomputers of its time. The language most closely resembles FORTRAN 66. '''FORTRAN V''' was distributed by [[Control Data Corporation]] in 1968 for the [[CDC 6600]] series. The language was based upon FORTRAN IV.<ref name="FIV">{{cite web|url=http://hopl.murdoch.edu.au/showlanguage.prx?exp=1092&language=CDC%20Fortran|title=Towards FORTRAN VI|last=Healy|first=MJR|year=1968|work=Advanced scientific Fortran by CDC|publisher=CDC|pages=169β172|access-date=April 10, 2009|archive-url=https://web.archive.org/web/20090705035806/http://hopl.murdoch.edu.au/showlanguage.prx?exp=1092&language=CDC%20Fortran|archive-date=July 5, 2009|url-status=dead}}</ref> Univac also offered a compiler for the 1100 series known as FORTRAN V. A spinoff of Univac Fortran V was Athena FORTRAN. '''Specific variants''' produced by the vendors of high-performance scientific computers (e.g., [[Burroughs Corporation|Burroughs]], [[Control Data Corporation]] (CDC), [[Cray]], [[Honeywell]], [[IBM]], [[Texas Instruments]], and [[UNIVAC]]) added extensions to Fortran to take advantage of special hardware features such as [[CPU cache|instruction cache]], CPU [[pipeline (computing)|pipelines]], and vector arrays. For example, one of IBM's FORTRAN compilers (''H Extended IUP'') had a level of optimization which reordered the [[machine code]] [[instruction (computer science)|instructions]] to keep multiple internal arithmetic units busy simultaneously. Another example is ''CFD'', a special variant of FORTRAN designed specifically for the [[ILLIAC IV]] supercomputer, running at [[NASA]]'s [[NASA Ames Research Center|Ames Research Center]]. IBM Research Labs also developed an extended FORTRAN-based language called ''VECTRAN'' for processing vectors and matrices. [[Object-Oriented Fortran]] was an object-oriented extension of Fortran, in which data items can be grouped into objects, which can be instantiated and executed in parallel. It was available for [[Oracle Solaris|Solaris]], [[IRIX]], [[NeXTSTEP]], [[Intel iPSC|iPSC]], and nCUBE, but is no longer supported. Such machine-specific extensions have either disappeared over time or have had elements incorporated into the main standards. The major remaining extension is [[OpenMP]], which is a cross-platform extension for shared memory programming. One new extension, Coarray Fortran, is intended to support parallel programming. ''[[FOR TRANSIT]]'' was the name of a reduced version of the IBM 704 FORTRAN language, which was implemented for the IBM 650, using a translator program developed at Carnegie in the late 1950s.<ref>{{cite manual |title=Internal Translator (IT) A Compiler for the IBM 650 |first1=A. J. |last1=Perlis |first2=J. W. |last2=Smith |first3=H. R. |last3=Van Zoeren |publisher=Computation Center, Carnegie Institute of Technology |url=http://bitsavers.trailing-edge.com/pdf/ibm/650/CarnegieInternalTranslator.pdf |archive-url=https://web.archive.org/web/20121002225726/http://bitsavers.trailing-edge.com/pdf/ibm/650/CarnegieInternalTranslator.pdf |archive-date=October 2, 2012 |url-status=live}}</ref> The following comment appears in the IBM Reference Manual (''FOR TRANSIT Automatic Coding System'' C28-4038, Copyright 1957, 1959 by IBM): <blockquote>The FORTRAN system was designed for a more complex machine than the 650, and consequently some of the 32 statements found in the FORTRAN Programmer's Reference Manual are not acceptable to the FOR TRANSIT system. In addition, certain restrictions to the FORTRAN language have been added. However, none of these restrictions make a source program written for FOR TRANSIT incompatible with the FORTRAN system for the 704.</blockquote> The permissible statements were: * Arithmetic assignment statements, e.g., <code>a = b</code> * {{code|GO to n}} * <code>GO TO (n<sub>1</sub>, n<sub>2</sub>, ..., n<sub>m</sub>), i</code> * <code>IF (a) n<sub>1</sub>, n<sub>2</sub>, n<sub>3</sub></code> * {{code|PAUSE}} * {{code|STOP}} * <code>DO n i = m1, m2</code> * {{code|CONTINUE}} * {{code|END}} * {{code|READ n, list}} * {{code|PUNCH n, list}} * {{code|DIMENSION V, V, V, ...}} * {{code|EQUIVALENCE (a,b,c), (d,c), ...}} Up to ten subroutines could be used in one program. FOR TRANSIT statements were limited to columns 7 through 56, only. Punched cards were used for input and output on the IBM 650. Three passes were required to translate source code to the "IT" language, then to compile the IT statements into SOAP assembly language, and finally to produce the object program, which could then be loaded into the machine to run the program (using punched cards for data input, and outputting results onto punched cards). Two versions existed for the 650s with a 2000 word memory drum: FOR TRANSIT I (S) and FOR TRANSIT II, the latter for machines equipped with indexing registers and automatic floating-point decimal ([[Bi-quinary coded decimal|bi-quinary]]) arithmetic. Appendix A of the manual included wiring diagrams for the [[IBM 533]] card reader/punch [[plugboard|control panel]]. ===Fortran-based languages=== Prior to FORTRAN 77, many [[preprocessor]]s were commonly used to provide a friendlier language, with the advantage that the preprocessed code could be compiled on any machine with a standard FORTRAN compiler.<ref>{{cite journal|url=https://dl.acm.org/doi/10.1145/987316.987320| title=On extending Fortran control structures to facilitate structured programming|publisher=acm.org|author=Meissner, Loren|journal=ACM SIGPLAN Notices|date=1975-09-01|volume=10|issue=9 | pages=19β30| doi=10.1145/987316.987320}}</ref> These preprocessors would typically support [[structured programming]], variable names longer than six characters, additional data types, [[conditional compilation]], and even [[Macro (computer science)|macro]] capabilities. Popular preprocessors included [[EFL (programming language)|EFL]], [[FLECS]], [[iftran]], [[Mortran|MORTRAN]], [[SFtran]], [[S-Fortran]], [[Ratfor]], and [[Ratfiv]]. EFL, Ratfor and Ratfiv, for example, implemented [[C (programming language)|C]]-like languages, outputting preprocessed code in standard FORTRAN 66. The [[PFORT]] preprocessor was often used to verify that code conformed to a portable subset of the language. Despite advances in the Fortran language, preprocessors continue to be used for conditional compilation and macro substitution. One of the earliest versions of FORTRAN, introduced in the '60s, was popularly used in colleges and universities. Developed, supported, and distributed by the [[University of Waterloo]], [[WATFIV|WATFOR]] was based largely on FORTRAN IV. A student using WATFOR could submit their batch FORTRAN job and, if there were no syntax errors, the program would move straight to execution. This simplification allowed students to concentrate on their program's syntax and semantics, or execution logic flow, rather than dealing with submission [[Job Control Language]] (JCL), the compile/link-edit/execution successive process(es), or other complexities of the mainframe/minicomputer environment. A down side to this simplified environment was that WATFOR was not a good choice for programmers needing the expanded abilities of their host processor(s), e.g., WATFOR typically had very limited access to I/O devices. WATFOR was succeeded by [[WATFIV]] and its later versions. {{sxhl|2=fortran|1=program; s=0 i=1,n; s=s+1; stop i; s='s' Stop}} (line programming) [[LRLTRAN]] was developed at the [[Lawrence Radiation Laboratory]] to provide support for vector arithmetic and dynamic storage, among other extensions to support systems programming. The distribution included the [[Livermore Time Sharing System]] (LTSS) operating system. The Fortran-95 Standard includes an optional ''Part 3'' which defines an optional [[conditional compilation]] capability. This capability is often referred to as "CoCo". Many Fortran compilers have integrated subsets of the [[C preprocessor]] into their systems. [[SIMSCRIPT]] is an application specific Fortran preprocessor for modeling and simulating large discrete systems. The [[F (programming language)|F programming language]] was designed to be a clean subset of Fortran 95 that attempted to remove the redundant, unstructured, and deprecated features of Fortran, such as the {{code|EQUIVALENCE}} statement. F retains the array features added in Fortran 90, and removes control statements that were made obsolete by structured programming constructs added to both FORTRAN 77 and Fortran 90. F is described by its creators as "a compiled, structured, array programming language especially well suited to education and scientific computing".<ref>{{cite web|url=http://www.fortran.com/F/index.html|title=F Programming Language Homepage|publisher=Fortran.com|access-date=November 19, 2014|archive-date=January 9, 2015|archive-url=https://web.archive.org/web/20150109130310/http://www.fortran.com/F/index.html|url-status=dead}}</ref> Essential Lahey Fortran 90 (ELF90) was a similar subset. Lahey and Fujitsu teamed up to create Fortran for the Microsoft [[.NET Framework]].<ref>{{cite web | url=http://www.lahey.com/lf71/lfnet.htm | title=Fortran for .NET Language System | url-status=dead | archive-url=https://web.archive.org/web/20141018201259/http://www.lahey.com/lf71/lfnet.htm | archive-date=October 18, 2014}}</ref> Silverfrost FTN95 is also capable of creating .NET code.<ref>{{cite web | url=http://www.silverfrost.com/11/ftn95_overview.aspx | title=FTN95: Fortran 95 for Windows|publisher=Silverfrost.com|access-date=November 19, 2014}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Fortran
(section)
Add topic