Jump to content

FORTRAN: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
No edit summary
Line 1: Line 1:
Early and highly influential programming language designed by [[IBM]] in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries, FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like [[C]] and [[Pascal]] and I/O speed, especially registered I/O is in a whole different league to CPL class languages like C and [[C++]]. While Fortran was a major influence on the European [[Algol]] languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and [[Modula-2]].
Early and highly influential programming language designed by [[IBM]] in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries. FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like [[C]] and [[Pascal]] and I/O speed, especially registered I/O is in a whole different league to CPL class languages like C and [[C++]]. While Fortran was a major influence on the European [[Algol]] languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and [[Modula-2]].


Classic FORTRAN is always spelled all caps, Fortran 90 and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F90 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.
Classic FORTRAN is always spelled all caps, [[Fortran 90]] and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F90 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.


==OS/2 implementations==
==History==
* [[Cabot UCSD Pascal]] - Commercial - Discontinued
Developed primarily by John Backus then working from the IBM headquarters on Madison Avenue in New York City, USA and formally introduced as an optional software for the IBM 704 computer in April 1957 even though IBM had shipped versions in 1956. The basic idea behind FORTRAN was for it to resemble common algebra notation as much as possible.
* GNU Fortran - Open source - Discontinued
* [[IBM FORTRAN/2]] - Commercial - Discontinued
* IBM Personal Fortran - Commercial - Discontinued
* IBM Professional Fortran - Commercial - Discontinued
* [[Microsoft FORTRAN]] - Commercial - Discontinued
* [[NAS Fortran 90+]] - Commercial - Discontinued
* [[NDP Fortran 90]] - Commercial - Discontinued
* [[Open Watcom|Open Watcom FORTRAN 77]] - Open Source - Current
* [[Prospero FORTRAN 77]] - Commercial - Discontinued
 
===FORTRAN libraries===
* [[Panel Plus II]] - Screen painter and UI library - Commercial - Current
 
===FORTRAN related programmer's utilities===
* [[Exuberant ctags]] - Creates index files out of FORTRAN source files - Open source - Current
* [[Panel Plus II]] - Screen painter and UI library - Commercial - Current
 
===Editors with FORTRAN support===
* [[Boxer]] - FORTRAN syntax support included by default - Commercial - Discontinued
* [[BRIEF]] - FORTRAN syntax support included by default - Commercial - Discontinued
* [[Elvis]] - FORTRAN syntax support included by default - Open source - Current
* [[Enhanced Editor]] - Has FORTRAN 90 syntax highlighting built in with some auto-formatting features
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware autoindent. - Open source - Current
* [[jEdit]] - Java based - FORTRAN 77 & Fortran 90 syntax highlighting built in - Current
* [[Lugaru Epsilon]] - Fortran 90 syntax highlighting and autoindent available as a seperate download. - Commercial
* [[MED]]
* [[NEdit]] - XFree86 - Autoindent, autocomplete and syntax highlighting
* [[Visual SlickEdit]]


===Fortran source code snippets, archives and collections===
===Fortran source code snippets, archives and collections===
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.
* Harold Zbiegien's [https://www.mpp.mpg.de/~huber/vmssig/src/FOR/lib_routines/CVT_DATE.FOR date algorithms]
* Harold Zbiegien's [https://www.mpp.mpg.de/~huber/vmssig/src/FOR/lib_routines/CVT_DATE.FOR date algorithms]
==DOS Implementations==
* [http://www.nomdo.dds.nl/bcf.zip BC Fortran] - Freeware - Discontinued
* [http://www.netlib.org/f2c/ F2C] - Open Source - Discontiued - Fortran to C translator
*GNU Fortran - Open source - Discontinued
* [[IBM Professional FORTRAN Compiler]] - Commercial - Discontinued
*SuperSoft FORTRAN - Commercial - Discontinued
* [[Microsoft FORTRAN77]] - Commercial - Discontinued
* [[Open Watcom|Open Watcom FORTRAN 77]] - Open Source - Current
* [[Prospero FORTRAN 77]] - Commercial - Discontinued
* Ryan McFarland RM/Fortran
===DOS Database bindings===
* [[Empress]] - Commercial - Discontinued
===DOS Editors with FORTRAN support===
* [[Boxer]] - FORTRAN syntax support included by default - Commercial - Discontinued
* [[BRIEF]] - FORTRAN syntax support included by default - Commercial - Discontinued
* [[Elvis]] - FORTRAN syntax support included by default - Open source - Current
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware autoindent. - Open source
==WinOS/2 implementations==
* Lahey Fortran 90
* [[Microsoft FORTRAN77]] - Commercial - Discontinued
* [[Prospero FORTRAN 77]] - Commercial - Discontinued - 16 bit development possible by cross-compiling from DOS or OS/2 with an optional library/linker package.
==Java implementations==
* [http://sourceforge.net/projects/f2j/ F2J] Open source - Current


==Publications==
==Publications==
* T. Ellis, et al: ''FORTRAN 77 Programming: with an Introduction to the FORTRAN 90 Standard''  - 1990, ISBN 0-201-41638-7
* T. Ellis, et al: ''FORTRAN 77 Programming: with an Introduction to the FORTRAN 90 Standard''  - 1990, ISBN 0-201-41638-7


====External articles====
* Jeanne Adams: [https://www.cisl.ucar.edu/zine/96/spring/articles/3.f90-century.html Fortran evolving into the next century] - Explains some of the changes from Fortran90 to Fortran95.
* A.G. Buckley: [ftp://ftp.ill.eu/pub/f90/f77_to_f90.ps Conversion to Fortran 90: A Case Study]
* [[Bertrand Meyer]]: "Principles of Package Design" - Communications of the ACM 25(7): 419-428 (1982)
* [[Bertrand Meyer]]: "Principles of Package Design" - Communications of the ACM 25(7): 419-428 (1982)


====Tutorials and other learning material====
* [http://www2.ph.ed.ac.uk/~playfer/f77_tut.html Programming in FORTRAN77]
* Tanja van Mourik: [http://www-eio.upc.edu/lceio/manuals/Fortran95-manual.pdf The Fortran 90/95 Manual]
* [https://www.dur.ac.uk/resources/its/info/guides/47AdvancedFortran.pdf Advanced Fortran 90/95 Programming] by University of Durham Information Technology Service
* Clive Page: [http://www.star.le.ac.uk/~cgp/f90course/f90.html Fortran90 for Fortran77 Programmers]
* Rob Davies, Alan Rea and Dimitris Tsaptsinos: [http://www.uv.es/dogarcar/man/IntrFortran90.pdf Introduction to Fortran 90; An introduction Course for Novice Programmers; Student Notes]
* Timothy H. Kaiser: [http://www.sdsc.edu/~tkaiser/f90.html Advanced Fortran90]
* Ian Chivers & Jane Sleightholme: [http://link.springer.com/book/10.1007%2F978-0-85729-233-9 Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77] - 2012 - ISBN 978-0-85729-232-2
* Ian Chivers & Jane Sleightholme: [http://link.springer.com/book/10.1007%2F978-0-85729-233-9 Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77] - 2012 - ISBN 978-0-85729-232-2


Line 86: Line 20:
* USENET: [news:comp.lang.fortran comp.lang.fortran] - Surprisingly popular
* USENET: [news:comp.lang.fortran comp.lang.fortran] - Surprisingly popular


==Standards==
===Standards===
;FORTRAN to FORTRAN IV
;FORTRAN to FORTRAN IV
* John Backus, et al: [http://www.fh-jena.de/~kleine/history/languages/FortranAutomaticCodingSystemForTheIBM704.pdf FORTRAN Automated Coding System For the IBM 704 EDPM] - 1956
* John Backus, et al: [http://www.fh-jena.de/~kleine/history/languages/FortranAutomaticCodingSystemForTheIBM704.pdf FORTRAN Automated Coding System For the IBM 704 EDPM] - 1956
Line 94: Line 28:
;FORTRAN66
;FORTRAN66
* [http://www.fh-jena.de/~kleine/history/languages/ansi-x3dot9-1966-Fortran66.pdf ANSI FORTRAN66 Standard] - 1967 - Basically a rubber stamping of FORTRAN IV with some clarifications.
* [http://www.fh-jena.de/~kleine/history/languages/ansi-x3dot9-1966-Fortran66.pdf ANSI FORTRAN66 Standard] - 1967 - Basically a rubber stamping of FORTRAN IV with some clarifications.
;FORTRAN77
* [http://www.fh-jena.de/~kleine/history/languages/ansi-x3dot9-1978-Fortran77.pdf ANSI FORTRAN77 Standard] - 1978
* [ftp://ftp.nag.co.uk/sc22wg5/ARCHIVE/mil_std_1753.html MILITARY STANDARD 1753] - USA Department of Defence supplement To FORTRAN77 - 1978 - Not supported by many compilers.
* [http://www.itl.nist.gov/div897/ctg/fortran_form.htm FIPS test suite for FORTRAN78] - Free validation suite


;Fortran 90
;Fortran 90
Line 128: Line 57:
* [http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf OpenMP Application Program Interface - Version 4.0.0] - 2013
* [http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf OpenMP Application Program Interface - Version 4.0.0] - 2013
* [http://openmp.org/mp-documents/OpenMP_Examples_4.0.1.pdf OpenMP Examples 4.0.1]
* [http://openmp.org/mp-documents/OpenMP_Examples_4.0.1.pdf OpenMP Examples 4.0.1]
====Standards bodies====
 
;Standards bodies
* [http://www.j3-fortran.org/ Fortran Standards Committee homepage] - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
* [http://www.j3-fortran.org/ Fortran Standards Committee homepage] - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
* [http://openmp.org OpenMP] - Standards body for the Fortran MP variants.
* [http://openmp.org OpenMP] - Standards body for the Fortran MP variants.
==FORTRAN History==
* Developed primarily by John Backus then working from the IBM headquarters on Madison Avenue in New York City, USA and formally introduced as an optional software for the IBM 704 computer in April 1957 even though IBM had shipped versions in 1956. The basic idea behind FORTRAN was for it to resemble common algebra notation as much as possible.


[[Category:Programming Languages]] [[Category:FORTRAN]]
[[Category:Programming Languages]] [[Category:FORTRAN]]

Revision as of 23:18, 1 November 2017

Early and highly influential programming language designed by IBM in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries. FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like C and Pascal and I/O speed, especially registered I/O is in a whole different league to CPL class languages like C and C++. While Fortran was a major influence on the European Algol languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and Modula-2.

Classic FORTRAN is always spelled all caps, Fortran 90 and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F90 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.

History

Developed primarily by John Backus then working from the IBM headquarters on Madison Avenue in New York City, USA and formally introduced as an optional software for the IBM 704 computer in April 1957 even though IBM had shipped versions in 1956. The basic idea behind FORTRAN was for it to resemble common algebra notation as much as possible.

Fortran source code snippets, archives and collections

Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.

Publications

  • T. Ellis, et al: FORTRAN 77 Programming: with an Introduction to the FORTRAN 90 Standard - 1990, ISBN 0-201-41638-7
  • Bertrand Meyer: "Principles of Package Design" - Communications of the ACM 25(7): 419-428 (1982)

Links

Standards

FORTRAN to FORTRAN IV
FORTRAN66
Fortran 90
Fortran95
Fortran 2003
Fortran 2008
Fortran MP

Extensions to FORTRAN77, 90 and 95 to support programming multi-processor machines, the v4 also supports Fortran2003

Standards bodies
  • Fortran Standards Committee homepage - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
  • OpenMP - Standards body for the Fortran MP variants.