my-server
← Wiki Redirected from F programming language

F (programming language)

F is a modular, compiled, numeric programming language, designed for scientific programming and scientific computation. F was developed as a modern Fortran, thus making it a subset of Fortran 95. It combines both numerical and data abstraction features from these languages. F is also backwards compatible with Fortran 77, allowing calls to Fortran 77 programs. F was implemented on top of compilers from NAG, Fujitsu, Salford Software and Absoft. It was later included in the g95 compiler.

Overview

F is designed to be a minimal subset of Fortran, with only about one hundred intrinsic procedures. Language keywords and intrinsic function names are reserved keywords in F and no other names may take this exact form. F contains the same character set used in Fortran 90/95 with a limit of 132 characters. Reserved words are always written in lowercase. Any uppercase letter may appear in a character constant. Variable names do not have restriction and can include upper and lowercase characters.

Operators

F supports many of the standard operators used in Fortran. The operators supported by F are:

  • Arithmetic operators: <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>**</code>
  • Relational operators: <code><</code>, <code><=</code>, <code>==</code>, <code>/=</code>, <code>></code>, <code>>=</code>
  • Logical operators: <code>.not.</code>, <code>.and.</code>, <code>.or.</code>, <code>.eqv.</code>, <code>.neqv.</code>
  • character concatenation: <code>//</code>

The assignment operator is denoted by the equal sign <code>=</code>. In addition, pointer assignment is denoted by <code>=></code>. Comments are denoted by the <code>!</code> symbol:

Data types

Similar to Fortran, the type specification is made up of a type, a list of attributes for the declared variables, and the variable list. F provides the same types as Fortran, except that double precision floating point variables must be declared as real with a kind with a kind parameter:

F does not have intrinsic support for object-oriented programming, but it does allow for records:

Variable declarations are followed by an attribute list. The attributes allowed are <code>parameter</code>, <code>public</code>, <code>private</code>, <code>allocatable</code>, <code>dimension</code>, <code>intent</code>, <code>optional</code>, <code>pointer</code>, <code>save</code> and <code>target</code>. The attribute list is followed by <code>::</code>, which is part of the syntax. F also allows for optional initialization in the list of objects. All items in a list will have the same attributes in a given type declaration statement. In addition, declarations are attribute oriented instead of entity oriented.

Statement and control flow

F supports 3 statements for control flow: <code>if</code>, a basic conditional, <code>case</code>, a switch statement, and <code>do</code>, a conditional while loop. The <code>return</code>, <code>stop</code>, <code>cycle</code>, and <code>exit</code> statements from Fortran may be used to break control flow.

F places a heavy emphasis on modular programming.

Placing procedures outside of a module is prohibited. F supports most of the functions and subroutines found in the Fortran 95 standard library. All functions in F are external by default and require a result clause that returns the value of a function. F supports recursion.

All of the intrinsic procedures found in Fortran 95 may be used in F, with the exceptions of <code>achar</code>, <code>iachar</code>, <code>lge</code>, <code>lgt</code>, <code>lle</code>, <code>llt</code>, <code>transfer</code>, <code>dble</code>, <code>dim</code>, <code>dprod</code>, and <code>mod</code>.

References

Bibliography

  • Walter S. Brainerd, Charles H. Goldberg, and Jeanne C. Adams: "Programmer's Guide to F", Unicomp, 1996.
  • Robin A. Vowels: "Algorithms and Data Structures in F and Fortran", Unicomp.
  • Loren Meissner: "Essential Fortran 90 & 95", Unicomp, 1997.

External links