F (programming language)

Uses your system voice; voice and rate in settings.

Snapshot

≈ 4 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

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 backward 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.

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 backward 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. ===Operators=== F supports many of the standard operators used in Fortran. The operators supported by F are: Arithmetic operators: + , - , * , / , ** Relational operators: , , == , /= , > , >= Logical operators: .not. , .and. , .or. , .eqv. , .neqv. character concatenation: // The assignment operator is denoted by the equal sign = . In addition, pointer assignment is denoted by => . Comments are denoted by the ! symbol: variable = expression ! assignment pointer => target ! pointer assignment ===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: ! type [,attribute list] :: entity declaration list real :: x, y ! declaring variables of type real x,y without an attribute list integer (kind = long), dimension (100) :: x ! declaring variable of type big integer array with the identifier x character (len = 100) :: student_name ! declaring a character type variable with length 100 F does not have intrinsic support for object-oriented programming, but it does allow for records: type, public :: City character (len = 100) :: name character (len = 50) :: state end type City Variable declarations are followed by an attribute list. The attributes allowed are parameter , public , private , allocatable , dimension , intent , optional , pointer , save and target . The attribute list is followed by :: , 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: if , a basic conditional, case , a switch statement, and do , a conditional while loop. The return , stop , cycle , and exit statements from Fortran may be used to break control flow. real :: x do i = 100 x = x+i print*,i cycle end do max : do if (x > y) then exit max end if x = y end do max stop if (x y) then x = y - x end if select case (maximum): case (0) x = 0 case (1) x = 1 case (5) x = 5 case default x = 10 end select F places a heavy emphasis on modular programming. program main ! Insert code here end program main 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 achar , iachar , lge , lgt , lle , llt , transfer , dble , dim , dprod , and mod .

Text derived from https://en.wikipedia.org/w/index.php?oldid=1365367043 under CC BY-SA 4.0; modifications have been made.