F es un lenguaje de programación numérico compilado y modular , diseñado para programación científica y computación científica. [1] F fue desarrollado como un Fortran moderno , por lo que es un subconjunto de Fortran 95. [ 2] Combina características numéricas y de abstracción de datos de estos lenguajes. F también es compatible con versiones anteriores de Fortran 77 , lo que permite llamadas a programas de Fortran 77. F se implementó sobre compiladores de NAG, Fujitsu, Salford Software y Absoft. Más tarde se incluyó en el compilador g95 .
F está diseñado para ser un subconjunto mínimo de Fortran, con solo alrededor de cien procedimientos intrínsecos. [3] Las palabras clave del lenguaje y los nombres de funciones intrínsecas son palabras clave reservadas en F y ningún otro nombre puede adoptar esta forma exacta. F contiene el mismo conjunto de caracteres que se utiliza en Fortran 90/95 con un límite de 132 caracteres. Las palabras reservadas siempre se escriben en minúsculas. Cualquier letra mayúscula puede aparecer en una constante de carácter. Los nombres de las variables no tienen restricciones y pueden incluir caracteres en mayúsculas y minúsculas.
F admite muchos de los operadores estándar utilizados en Fortran. Los operadores admitidos por F son:
+
, -
, *
, /
,**
<
, <=
, ==
, /=
, >
,>=
.not.
, .and.
, .or.
, .eqv.
,.neqv.
//
El operador de asignación se denota con el signo igual =
. Además, la asignación de puntero se denota con =>
. Los comentarios se denotan con el !
símbolo:
variable = expresión ! puntero de asignación => objetivo ! puntero de asignación
De manera similar a Fortran , la especificación de tipo se compone de un tipo, una lista de atributos para las variables declaradas y la lista de variables. [2] F proporciona los mismos tipos que Fortran, excepto que las variables de punto flotante de doble precisión deben declararse como reales con un tipo con un parámetro de tipo:
! type [,attribute list] :: declaración de entidad list real :: x , y ! declarando variables de tipo real x,y sin una lista de atributos entero ( kind = long ), dimensión ( 100 ) :: x ! declarando variable de tipo matriz de enteros grandes con el identificador x carácter ( len = 100 ) :: student_name ! declarando una variable de tipo carácter con len 100
F no tiene soporte intrínseco para la programación orientada a objetos , pero sí permite registros : [2]
tipo , público :: Ciudad carácter ( len = 100 ) :: nombre carácter ( len = 50 ) :: estado fin tipo Ciudad
Las declaraciones de variables van seguidas de una lista de atributos. Los atributos permitidos son parameter
, public
, private
, allocatable
, dimension
, intent
, optional
, pointer
, save
y target
. La lista de atributos va seguida de ::
, que forma parte de la sintaxis. F también permite la inicialización opcional en la lista de objetos. Todos los elementos de una lista tendrán los mismos atributos en una declaración de tipo determinada. Además, las declaraciones están orientadas a atributos en lugar de a entidades.
F admite tres sentencias para el flujo de control : if
una sentencia condicional básica , case
una sentencia switch y un bucle whiledo
condicional . Las sentencias , , y de Fortran se pueden usar para interrumpir el flujo de control.return
stop
cycle
exit
real :: x hacer i = 100 x = x + i imprimir * , i fin del ciclo hacer máx : hacer si ( x > y ) entonces salir máx fin si x = y fin hacer máx detener si ( x < y ) entonces x = x + y de lo contrario si ( x > y ) entonces x = y - x fin si seleccionar caso ( máximo ): caso ( 0 ) x = 0 caso ( 1 ) x = 1 caso ( 5 ) x = 5 caso predeterminado x = 10 fin de selección
F pone gran énfasis en la programación modular .
¡ Programa principal ! Insertar código aquí Fin del programa principal
Está prohibido colocar procedimientos fuera de un módulo. F admite la mayoría de las funciones y subrutinas que se encuentran en la biblioteca estándar de Fortran 95. Todas las funciones en F son externas de manera predeterminada y requieren una cláusula de resultado que devuelva el valor de una función. [2] F admite la recursión .
Todos los procedimientos intrínsecos que se encuentran en Fortran 95 se pueden utilizar en F, con las excepciones de achar
, iachar
, lge
, lgt
, lle
, llt
, transfer
, dble
, dim
, dprod
, y mod
.