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 first 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: The assignment operator is denoted by the equal sign codice_18. In addition, pointer assignment is denoted by codice_19. Comments are denoted by the codice_20 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 all the same types as Fortran as well, with the sole exception of doubles: ! 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 len 100 F does not have intrinsic support  for object-oriented programming, but it does allow for records: type, public :: City end type City Variable declarations are followed by an attribute list. The attributes allowed are codice_21, codice_22, codice_23, codice_24, codice_25, codice_26, codice_27, codice_28, codice_29 and codice_30. The attribute list is followed by codice_31, 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 : codice_32, a basic conditional, codice_33, a switch statement, and codice_34, a conditional while loop. The codice_35, codice_36, codice_37, and codice_38 statements from Fortran may be used to break control flow. real :: x do i = 100 end do max : do end max stop if (x < y) then else if ( x > y) then end if select case (maximum): end select F places a heavy emphasis on modular programming. Modules in F are called "programs": program main end program main Placing procedures outside of a module is prohibited. F supports most of the modules and subroutines found in the Fortran  95 standard library. All procedures 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 codice_39, codice_40, codice_41, codice_42, codice_43, codice_44, codice_45, codice_46, codice_47, codice_48, and codice_49.