|
Fortran (also FORTRAN) is a statically typed, compiled (sometimes interpreted), imperative, computer programming language originally developed in the 1950s and still heavily used for scientific computing and numerical computation half a century later. The name is a portmanteau of Formula Translator/Translation. Early versions of the language were known as FORTRAN, but the capitalization has been dropped in newer revisions beginning with Fortran 90. The official language standards now refer to the language as "Fortran". On computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. ...
A compiled language is a programming language whose implementations are typically compilers (translators which generate machine code from source code), and not interpreters (step-by-step executors of source code, where no translation takes place). ...
In computer programming, an interpreted language is a programming language whose programs may be executed from source form, by an interpreter. ...
In computer science, imperative programming, as opposed to declarative programming, is a programming paradigm that describes computation in terms of a program state and statements that change the program state. ...
Wikibooks has more about this subject: Computer programming Computer programming (often simply programming) is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. ...
A programming language or computer language is a standardized communication technique for expressing instructions to a computer. ...
// Events and trends The 1950s in Western society was marked with a sharp rise in the economy for the first time in almost 30 years and return to the 1920s-type consumer society built on credit and boom-times, as well as the height of the baby boom from returning...
Scientific Computing is about constructing mathematical models, adapting numerical solution techniques and using computers to analyse scientific and engineering problems. ...
Numerical analysis is the study of algorithms for the problems of continuous mathematics (as distinguished from discrete mathematics). ...
Look up Portmanteau in Wiktionary, the free dictionary. ...
Standards are produced by many organizations, some for internal usage only, others for use by a groups of people, groups of companies, or a subsection of an industry. ...
Although originally a procedural language, recent versions of Fortran have included some features to support object-oriented programming. Procedural programming is a programming paradigm based upon the concept of the procedure call. ...
In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ...
History
Fortran punch card. Note column markings. The first FORTRAN compiler was developed for the IBM 704 in 1954–57 by an IBM team led by John W. Backus. This was an optimizing compiler, because the authors reasoned that no one would use the language if its performance were not comparable to assembly language. Subject: Old computer punch card Caption: This is a punch card such as was used to enter programs into the mainframe system at the University of Missouri - Rolla in the late 1970s. ...
Subject: Old computer punch card Caption: This is a punch card such as was used to enter programs into the mainframe system at the University of Missouri - Rolla in the late 1970s. ...
A diagram of the operation of a typical multi-language compiler. ...
The IBM 704, the first mass-produced computer with floating point arithmetic hardware, was introduced by IBM in April, 1956. ...
1954 (MCMLIV) was a common year starting on Friday of the Gregorian calendar. ...
1957 (MCMLVII) was a common year starting on Tuesday of the Gregorian calendar. ...
International Business Machines Corporation (IBM, or colloquially, Big Blue) (NYSE: IBM) (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, New York, USA. The company manufactures and sells computer hardware, software, and services. ...
John Backus (born December 3, 1924) is an American computer scientist, notable as the inventor of the first high-level programming language (FORTRAN), the Backus-Naur form (BNF, the almost universally used notation to define formal language syntax), and the concept of Function-level programming. ...
In computing, optimization is the process of modifying a system to improve its efficiency. ...
Assembly language or simply assembly is a human-readable notation for the machine language that a specific computer architecture uses. ...
The language was widely adopted by scientists for writing numerically intensive programs, which encouraged compiler writers to produce compilers that generate faster code. The inclusion of a complex number data type in the language made Fortran especially suited to scientific computation. There are many vendors of high performance Fortran compilers today. Many advances in the theory and design of compilers were motivated by the need to generate good code for Fortran programs. In mathematics, the complex numbers are an extension of the real numbers by the inclusion of the imaginary unit i, satisfying . ...
In computer science, a datatype (often simply a type) is a name or label for a set of values and some operations which one can perform on that set of values. ...
A diagram of the operation of a typical multi-language compiler. ...
Several standards of the language have appeared: FORTRAN II in 1958, FORTRAN IV in 1961, FORTRAN 66 in 1966, FORTRAN 77 in 1977 , Fortran 90 in 1990, Fortran 95 in 1995, and Fortran 2003 in 2003. Fortran III was designed in 1958, allowing for inline assembler code; but it was never released because the portability concept of a high-level language would be lost. It also included other new features such as boolean expressions. It was used by about 20 IBM customers but was never released as a commercial product. Boolean expressions and IF tests were also included in Fortran IV. Fortran II only had a three way IF branch, based on whether a numeric expression was negative, zero or positive. A high-level programming language is a programming language that is more user-friendly, to some extent platform-independent, and abstract from low-level computer processor operations such as memory accesses. ...
Early FORTRAN programs were written on punch cards, and had strict rules for formatting. Line length was limited to 72 columns, originally because this was the maximum number of columns the online punch card reader of the 704 could read. Source statements were punched in columns 7 through 72. The first five columns were reserved for statement numbers or the C in column one that indicated a comment. Statements longer than 66 characters could be continued to additional cards by making a punch in column 6 of the continuation cards. There was a limit on the number of continuation cards allowed, in some implementations as few as three or four. Columns 73 to 80 were often used for sequence numbers, allowing a deck of cards to be resorted if it was dropped. Symbols were usually limited to the number of alphanumeric characters that fit in one machine word, six was typical but implementations on machines with small words might limit you to as few as three. As programs moved to magnetic media, vendors offered different extensions to increase line lengths. FORTRAN 77 was the last version to require these artifacts of computing history. The punch card (or Hollerith card) is a recording medium for holding information for use by automated data processing machines. ...
In computing, word is a term for the natural unit of data used by a particular computer design. ...
Fortran 90 was a major revision, adding free source form, dynamic memory allocation, array operations, abstract data types, operator overloading, pointers, and modules to group related procedures and data together. Fortran 95 was a minor revision, adding features for parallel programming from the High Performance Fortran dialect, such as user-defined pure and elemental functions, and the forall construct. The most recent formal standard for the language, published in 2004, is known as Fortran 2003. It is an upwardly-compatible extension of Fortran 95, adding, among other things, support for IEEE floating-point arithmetic, exception handling, object-oriented programming, and improved interoperability with the C language. A comprehensive summary of the 2003 additions is at the ISO Fortran Working Group (WG5) web site, ftp://ftp.nag.co.uk/sc22wg5/N1551-N1600/N1579.pdf. In computer programming, a free-form language is a programming language in which the positioning of characters on the page in program text is not significant. ...
In computer science, dynamic memory allocation is the allocation of memory storage for use in a computer program during the runtime of that program. ...
In computer programming, an array, also known as a vector or list, is one of the simplest data structures. ...
This article needs to be cleaned up to conform to a higher standard of quality. ...
In computer programming, operator overloading (less commonly known as operator ad-hoc polymorphism) is a specific case of polymorphism in which some or all of operators like +, = or == are treated as polymorphic functions and as such have different behaviours depending on the types of their arguments. ...
In computer science, a pointer is a programming language datatype whose value refers directly to (points to) another value stored elsewhere in the computer memory using its address. ...
In computing, a module is a software entity that groups a set of (typically cohesive) subprograms and data structures. ...
In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. ...
Parallel programming is a computer programming technique that provides for the execution of operations in parallel, either within a single computer, or across a number of systems. ...
High Performance Fortran (HPF) is an extension of Fortran 90 with constructs that support parallel computing. ...
The IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754) is the most widely-used standard for floating-point computation, and is followed by many CPU and FPU implementations. ...
Exception handling is a programming language construct or computer hardware mechanism designed to handle runtime errors or other problems (exceptions) which occur during the execution of a computer program. ...
Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ...
The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on the...
Logo of the International Organization for Standardization The International Organization for Standardization (ISO or iso) is an international standard-setting body composed of representatives from national standards bodies. ...
Features Initially, the language relied on precise formatting of the source code and heavy use of statement numbers and goto statements. These quirks have been removed from newer versions of the language. Successive versions also introduced 'modern' programming concepts, such as source code comments and output of text, IF-THEN-ELSE (in FORTRAN 77), and parallel constructs, while still attempting to maintain Fortran's 'lean' profile and high performance. Among the most popular specialized Fortran-based languages were SAS, for generating statistical reports, and SIMSCRIPT, for simulating processes involving queuing. F is a clean subset of Fortran 95 that removes the unstructured features of Fortran, such as EQUIVALENCE. Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ...
GOTO is a command found in many programming languages which instructs the computer to jump to another point in the computer program, specified by a label or line number. ...
Look up Comment on Wiktionary, the free dictionary In computer programming, comments are parts of the source code which, together with its layout, are used to explain the code. ...
Overview The SAS System is an integrated system of software products (provided by the SAS Institute) that enables the programmer to perform: data entry, retrieval, and management report writing and graphics statistical and mathematical analysis business planning, forecasting, and decision support operations research and project management quality improvement applications development. ...
F is a compiled, structured, array programming language especially well suited to education and scientific computing. ...
Vendors of high performance scientific computers (Burroughs, CDC, Cray, Honeywell, IBM, Texas Instruments, UNIVAC...) added extensions to Fortran to make use of special hardware features such as: instruction cache, CPU pipeline , vector arrays, etc. For example, one of IBM's Fortran compilers (H Extended IUP) had a level of optimization which reordered the machine code instructions to keep several internal arithmetic units busy at the same time. Another example is CFD, a special 'version' of Fortran designed specifically for the ILLIAC IV supercomputer, running at NASA's Ames Research Center. These extensions have either disappeared over time or had elements incorporated into the main standard; the major remaining extension is OpenMP, which is a cross-platform extension for shared memory programming. One new extension, CoArray Fortran, is intended to promote parallel programming. There is a new programming language under development, Fortress, which is intended to be a replacement for Fortran. William Seward Burroughs (1857-1898), US inventor William S. Burroughs (1914-1997), author and grandson of William Seward Burroughs Edgar Rice Burroughs (1875-1950), American author of Tarzan fame The Burroughs Corporation began in 1886 as the American Arithmometer Company in St. ...
Control Data Corporation, or CDC, was one of the pioneering supercomputer firms. ...
Cray-2 supercomputer Cray Inc. ...
Honeywell (NYSE: HON) is a major American multinational corporation that produces electronic control systems and automation equipment. ...
International Business Machines Corporation (IBM, or colloquially, Big Blue) (NYSE: IBM) (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, New York, USA. The company manufactures and sells computer hardware, software, and services. ...
Texas Instruments (NYSE: TXN), better known in the electronics industry as TI, is a company based in Dallas, Texas, renowned for developing and commercializing semiconductor and computer technology. ...
This article is in need of attention from an expert on the subject. ...
In computer science, a cache (pronounced kÄsh) is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data are expensive (usually in terms of access time) to fetch or compute relative to reading the cache. ...
A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. ...
In computer science, an instruction typically refers to a single operation of a processor within a computer architecture. ...
The ILLIAC IV was one of the most infamous supercomputers ever, destined to be the last in a series of research machines from the University of Illinois. ...
NASA Logo Listen to this article · (info) This audio file was created from the revision dated 2005-09-01, and does not reflect subsequent edits to the article. ...
Aerial View of Moffett Field and NASA Ames Research Center. ...
The OpenMP Application Program Interface (API) supports multi-platform shared memory multiprocessing programming for in C/C++ and Fortran on many architectures, including Unix platforms and Windows platforms. ...
Co-array Fortran, formerly known as F--, is an extension of Fortran 95 for parallel processing created by Robert Numrich and John Reid. ...
Fortress is a draft specification for a new programming language currently developed by Sun Microsystems as part of a DARPA-funded supercomputing initiative. ...
Syntax As what was basically a first attempt at designing a high-level language, the language's syntax is sometimes regarded as arcane by programmers familiar with more recently developed languages such as C. Fortran has stayed abreast of such advances, however, and contemporary versions have attempted to supersede and deprecate such syntax in favor of more robust and transparent syntax. In deprecated forms of the language, it is difficult to write a lexical analyzer and one-character mistakes can lead to runtime errors rather than compilation errors. Contemporary constructs, such as free-form source, ameliorate such problems, but, as with any language, sound programming practices are the best way to avoid such errors. A high-level programming language is a programming language that is more user-friendly, to some extent platform-independent, and abstract from low-level computer processor operations such as memory accesses. ...
Lexical analysis is the process of taking an input string of characters (such as the source code of a computer program) and producing a sequence of symbols called lexical tokens, or just tokens, which may be handled more easily by a parser. ...
One should also consider that the features of Fortran have been tuned to scientific and numerical work, as opposed to software development. For example, Fortran 95 has very short commands for performing mathematical operations on arrays which not only greatly improve program readability but also provide useful information to the compiler to enable it to vectorize operations. For these reasons, while Fortran is not often used outside scientific and engineering numerical work, it remains the language of choice for high performance numerical computing. It is also simple for non-programmers to learn how to write efficient code. Since Fortran has been around for nearly fifty years, there is a vast body of Fortran in daily use throughout the scientific community (especially FORTRAN 77, the historically most important dialect). It is the primary language for some of the most intensive super-computing tasks, including weather and climate modeling.
Sample programs The following programs can be compiled and run with any Fortran 90 or 95 compiler, such as GFortran [1]. Most modern Fortran compilers expect a file with .f95 extension.
Hello World A simple Hello World program. program hello print*,"Hello World!" end program hello Cylinder Area This program calculates the area of a cylinder. The text after the initial "!" on a line is a comment. program cylinder !!! Calculate the area of a cylinder. !!! Declare variables and constants. !!! constants=pi !!! variables=radius squared and height implicit none ! Require all variables to be declared -- Fortran 90 feature. integer ierr character yn real radius,height,area real, parameter :: pi = 3.14159 interactive_loop: do ! Prompt the user for radius and ! height and read them. write (*,*) 'Enter radius and height.' read (*,*,iostat=ierr) radius,height ! If radius and height could not ! be read from input, then restart ! the loop. if (ierr /= 0) then write(*,*) 'Error, invalid input.' cycle interactive_loop end if ! Compute area. The ** means "raise to a power". area = 2*pi*(radius**2 + radius*height) ! Write the input variables (radius, height) ! and output (area) to the screen. write (*,'(1x,a7,f6.2,5x,a7,f6.2,5x,a5,f6.2)') & 'radius=',radius,'height=',height,'area=',area yn = ' ' yn_loop: do write(*,*) 'Perform another calculation? y[n]' read(*,'(a1)') yn if (yn=='y' .or. yn=='Y') exit yn_loop if (yn=='n' .or. yn=='N' .or. yn==' ') exit interactive_loop end do yn_loop end do interactive_loop end program cylinder Dynamic allocation and Array Operations This program provides an example of two features in Fortran 90: dynamic memory allocation, and array operations. Note the absence of do loops and if/then loops. Also note the use of descriptive variable names and general code formatting that comport with contemporary computer programing style. The program performs some averaging on interactively entered data. program average !!! read in some numbers and take the average !!! As written, if there are no data points (or no positive/negative points) an average of zero is returned. !!! While this may not be expected behavior, it keeps this simple example simple. implicit none integer NumberOfPoints real, allocatable :: Points(:) real :: AveragePoints=0., PositiveAverage=0., NegativeAverage=0. write (*,*) 'Input number of points to average:' read (*,*) NumberOfPoints allocate (Points(NumberOfPoints)) write (*,*) 'Enter the Points to average:' read (*,*) Points !!! take the average by summing Points and dividing by NumberOfPoints if (NumberOfPoints>0) AveragePoints = sum(Points)/NumberOfPoints !!! now form average over positive and negative points only if (count(Points>0.)>0) PositiveAverage = sum(Points, Points>0.)/count(Points>0.) if (count(Points<0.)>0) NegativeAverage = sum(Points, Points<0.)/count(Points<0.) !!! print result to terminal write (*,'(''Average = '', 1g12.4)') AveragePoints write (*,'(''Average of positive points = '', 1g12.4)') PositiveAverage write (*,'(''Average of negative points = '', 1g12.4)') NegativeAverage end program average Retro FORTRAN A retro example of a FORTRAN IV (as it was called in 1968) program deck is available on the IBM 1130 page including the IBM 1130 DM2 JCL required for compilation and execution. Retro is a contemporary term used to describe things from a bygone era. ...
The IBM 1130 Computing System was introduced in 1965. ...
The standard FORTRAN joke "GOD is REAL (unless declared INTEGER)." The joke works because, in the absence of an IMPLICIT declaration, variables beginning with the letters I through N were considered integer, and all others real.
References General: - Adams, Jeanne; Brainerd, Walter; Martin, Jeanne; Smith, Brian; Wagener, Jerrold (1997). Fortran 95 Handbook: Complete ISO/ANSI Reference. MIT Press.
- Metcalf, Michael; Reid, John; Cohen, Malcolm (2004). Fortran 95/2003 Explained. Oxford University Press.
- Nyhoff, Larry; Leestma, Sanford (1995). FORTRAN 77 for Engineers and Scientists with an Introduction to FORTRAN 90. 4th Edition. Prentice Hall. ISBN 013363003X.
Standards documents: - ANSI X3.198-1992 (R1997). Title: Programming Language "Fortran" Extended. Informally known as Fortran 90. Published by ANSI.
- ISO/IEC 1539-1:1997. Title: Information technology - Programming languages - Fortran - Part 1: Base language. Informally known as Fortran 95. There are a further two parts to this standard. Part 1 has been formally adopted by ANSI.
- ISO/IEC 1539-1:2004. Title: Information technology -- Programming languages -- Fortran -- Part 1: Base language. Informally known as Fortran 2003.
The American National Standards Institute (ANSI) is a private, non-profit standards organization that produces industrial standards in the United States. ...
External links General Program repositories Proprietary compilers Free software compilers Online Books - Computer-Books.us - Collection of online Fortran books.
- Fortran Documentation - Fortran Documentation (particularly Fortran 77).
| Major programming languages (more) (edit) | | Industrial: ABAP | Ada | AWK | Assembly | Coldfusion | C | C++ | C# | COBOL | Common Lisp | Delphi | Eiffel | Fortran | Java | JavaScript | Lua | Lisp | Objective-C | Pascal | Perl | PHP | PL/SQL | PowerBuilder | Python | Ruby | SAS | Smalltalk | T-SQL | Tcl | Visual Basic | VB.NET | Visual FoxPro There are a lot of kinds of listing. ...
ABAP (Advanced Business Application Programming) is a high level programming language created by the German software company SAP. It is currently positioned as the language for programming SAPs Web Application Server, part of its NetWeaver platform for building business applications. ...
Ada is a structured, statically typed imperative computer programming language designed by a team lead by Jean Ichbiah of CII Honeywell Bull during 1977â1983. ...
AWK is a general purpose computer language that is designed for processing text based data, either in files or data streams. ...
Assembly language or simply assembly is a human-readable notation for the machine language that a specific computer architecture uses. ...
In computing, ColdFusion is a tag-based, middleware programming language used chiefly for writing web-based applications. ...
The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on the...
C++ (pronounced see plus plus, IPA: /siË plÉs plÉs/) is a general-purpose computer programming language. ...
The title given to this article is incorrect due to technical limitations. ...
COBOL is a third-generation programming language. ...
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, standardised by ANSI X3. ...
Delphi is a programming language and Integrated Development Environment (IDE). ...
Eiffel is an object-oriented programming language which emphasizes the production of robust software. ...
Java is an object-oriented programming language developed initially by James Gosling and colleagues at Sun Microsystems. ...
JavaScript is an object-based scripting programming language based on the concept of prototypes. ...
The Lua (pronouced LOO-ah, or in IPA) programming language is a lightweight, reflective, imperative and procedural language, designed as a scripting language with extensible semantics as a primary goal. ...
Lisp is a reflective, multi-paradigm programming language with a long history. ...
Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language...
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
Perl, (also backronymed as Practical Extraction and Report Language, see below) is an interpreted procedural programming language designed by Larry Wall. ...
PHP is an open-source, reflective programming language used mainly for developing server-side applications and dynamic web content, and more recently, other software. ...
PL/SQL (Procedural Language/Structured Query Language) is Oracle Corporations proprietary server-based procedural extension to the SQL database language. ...
PowerBuilder is a programming language created by Powersoft which was later purchased by Sybase. ...
Python is an interpreted programming language created by Guido van Rossum in 1990. ...
Ruby is an object-oriented programming language. ...
The SAS System, originally Statistical Analysis System, is an integrated system of software products provided by the SAS Institute that enables the programmer to perform: data entry, retrieval, management, and mining report writing and graphics statistical and mathematical analysis business planning, forecasting, and decision support operations research and project management...
Smalltalk is an object-oriented, dynamically typed, reflective, programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s, influenced by Sketchpad and Simula. ...
Transact-SQL (TSQL) is an enhanced version of the SQL relational database language. ...
Tcl (originally from Tool Command Language, but nonetheless conventionally rendered as Tcl rather than TCL; and pronounced like tickle) is a scripting language created by John Ousterhout that is generally thought to be easy to learn, but powerful in competent hands. ...
This article contains information that has not been verified. ...
Visual Basic . ...
Visual FoxPro is a data-centric object-oriented and procedural programming language produced by Microsoft. ...
| Academic: APL (historical dialect)/J | Haskell | Logo | ML | Prolog | Scheme APL (for A Programming Language, or sometimes Array Processing Language) is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. ...
The J programming language, developed in the early 90s by Ken Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL functional programming languages created by John Backus (of FORTRAN, ALGOL, and BNF fame). ...
Haskell logo Haskell is a standardized pure functional programming language with non-strict semantics. ...
The Logo programming language is an imperative programming language. ...
This article refers to the functional programming language called ML; the acronym ML is also used to refer to machine language. ...
Prolog is a logic programming language. ...
The Knights of the Lambda Calculus recursive emblem celebrates Schemes theoretical foundation, the lambda calculus. ...
| | Historical: ALGOL | BASIC | Clipper | Modula-2/Modula-3 | MUMPS | PL/I | Simula ALGOL (short for ALGOrithmic Language) is a family of imperative computer programming languages originally developed in the mid 1950s which became the de facto standard way to report algorithms in print for almost the next 30 years. ...
BASIC is a family of high-level programming languages. ...
Clipper is a computer programming language that is used to create software programs that originally operated primarily under DOS. Although it is a powerful general-purpose programming language, it was primarily used to create database/business programs. ...
Modula-2 is a computer programming language invented by Niklaus Wirth at ETH around 1978, as a successor to Modula, another language by him. ...
Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2. ...
PL/I (Programming Language One, pronounced pee el one) is an imperative computer programming language designed for scientific, engineering, and business applications. ...
Simula introduced the object-oriented programming paradigm and thus can be considered the first object-oriented programming language and a predecessor to Smalltalk, C++, Java, and all modern class-based object-oriented languages. ...
| | |