Qué es Fortran

  • 01 de julio de 2004
  • Valoración:
  • 3 Comentarios
  • Desarrollo
Fortran es el primer lenguaje de alto nivel que salió al mercado. Ya que sigue siendo útil en Física, vamos a estudiarlo.
Un poco de historia

  • Este lenguaje procedural fue el primero de alto nivel (1957)
  • Desarrollado por IBM para el IBM 704.
  • Orientado a la eficiencia en la ejecución.
  • Se creó la definición estándar del lenguaje en el 66.
  • Otras versiones:
    • FORTRAN 77
    • FORTRAN 90
Un sencillo ejemplo



Características

Tipos de datos soportados:
  • Numéricos (enteros, reales, complejos y doble precisión).
  • Booleanos (logical)
  • Arreglos
  • Cadenas de caracteres
  • Archivos
FORTRAN 90 ya es estructurado, y no requiere sentencias GOTO. Sólo admite dos ámbitos para las variables: local y global.

Veamos ahora un ejemplo más extenso:



Variables y constantes
  • FORTRAN no es sensible a mayúsculas y minúsculas. Los nombre de variables tienen de 6 a 31 caracteres máximo y deben comenzar por una letra. Los blancos son significativos.
  • Declaración explicita de variables.
  • Enteras (I-N), el resto reales. (se modifica con IMPLICIT).
  • Punteros: en los primeros FORTRAN no hay punteros y todas las variables se almacenan en memoria estática. En FORTRAN 90 se declaran INTEGER, POINTER::P.
  • Para memoria dinámica ALLOCATE y DEALLOCATE


Tipos de datos

  • Arrays, pueden tener hasta 7 dimensiones y se guardan por colummnas.
    • REAL M(20),N(-5:5)
    • DIMENSION I(20,20) (tipo por nomenclatura implícita)
  • Cadenas de caracteres, el primer carácter es el 1, el operador // permite concatenar cadenas.
    • CHARACTER S*10, T*25
  • Almacenamiento de datos. Se usa COMMON para datos compartidos y EQUIVALENCE cuando almacenamos una variable con dos posibles tipos en la misma posición de memoria (como union en C). Se usa DATA para inicializar datos estáticos.
    • DATA X/1.0/,Y/3.1416/,K/20/
  • Tipos definidos por el usuario, con TYPE <nombre>... END TYPE <nombre>
Control de secuencia

EL conjunto de estructuras de control es limitado:
  • Expresiones, prioridad de operadores
  • Enunciados
    • Asignación, cuando se hace entre cadenas hay ajuste de tamaño con blancos o truncamiento.
    • Condicional. Permite IF ELSE IF... Para selección múltiple SELECT CASE CASE.....CASE DEFAULT.... END SELECT
    • Iteración. DO....END DO
    • Nulo, se usa solo para la etiqueta. CONTINUE.
  • Control de subprogramas. CALL invoca al subprograma y RETURN devuelve un valor al programa llamante.
  • Construcciones propensas a error: GOTO.
Entrada y salida

  • Tipos de archivos:
    • Secuenciales
    • De acceso directo
  • Comandos: READ, WRITE, PRINT, OPEN , CLASE, INQUIRE (propiedades o estado del archivo) REWIND y ENDFILE (para ubicar el puntero del fichero).
  • Para el tratamiento de excepciones en las sentencias READ/WRITE se puede introducir la posición de la rutina de dicho tratamiento (ERR=90).
Subprogramas

  • Hay tres tipos de subprogramas:
    • Function, devuelven un solo valor de tipo numérico, lógico o cadena de caracteres.
    • Subroutine, devuelve valores a través de variables no locales COMMON.
    • Función de enunciado, permite calcular una sola expresión aritmética o lógica.
      • FN(X,Y)=SIN(X)**2-COS(Y)**2
  • Gestión de almacenamiento.
    • Las variables son locales o globales (COMMON)
    • Recursividad: RECURSIVE FUNCTION FACTORIAL(X)
    • Parámetros de subprograma. Paso por referencia.
Abstracción y encapsulación. Evaluación del lenguaje

  • La abstracción es posible mediante los subprogramas y el uso de variables COMMON, aunque su uso es propenso a errores.
  • FORTRAN sigue siendo utilizado en el ámbito científico y es muy eficiente realizando cálculos.
    • La estructura del programa suele ser dificil de entender.
    • En FORTRAN 90 se incluye la recursividad y la memoria dinámica.
    • Las etiquetas de las sentencias ya no son necesarias, ni el GOTO, pues se ha transformado en un lenguaje estructurado.
    • El aspecto de los programas sigue siendo de procesamiento por lotes

Comentarios

Almudena

08/7/2004
En la carrera de matemáticas usábamos FORTRAN básicamente para el análisis numérico, supongo que por paralelismos con el desarrollo teórico de los ejercios. De todos modos, en los últimos años se está introduciendo la programación dentro del MATLAB como herramienta definitiva desbancando al MATHEMATICA.

Antonio M. Flores

10/6/2009
¡Que bien que se siga promoviendo el uso de FORTRAN!
Es bueno que se difunda el uso de FORTRAN, ya que se tiene la falsa idea que es un lenguaje obsoleto. Nada más alejado de la realidad. Su potencial está en estos días ahora en la programación paralela y de alto desempeño. Como siempre, las funciones y cálculos matemáticos requieren de programas eficientemente escritos y que arroje resultados correctos, FORTRAN sigue siendo la mejor opción, gracias a su manejo de variables de doble precisión y minimización del acarreo de errores. Actualmente hay un énfasis en enseñar MATLAB a los universitarios, lo cual es bueno, hasta cierto grado. MATLAB fue concebido principalmente para facilitar el manejo de matrices, desde el punto de vista del usuario. MATLAB está programado en C++ y en FORTRAN por cierto. De todas formas, cualquier físico y/o matemático, e incluso ingeniero, que pretenda abordar problemas que involucren la programación extensiva de cálculos matemáticos superiores, debe obviar MATLAB y aprender lo más posible FORTRAN y C++
Ojala este artículo pueda ampliarse. Hay muy pocos como éste en Internet.

valthern

21/1/2013
MANUALES DE FORTRAN
Siempre son muy buenos los tutoriales que aqui publican.

¿En dónde puedo encontrar algún manual de este lenguaje?

¿Hay documentación respecto a este como un ISO, o alguna estandarización?

Gracias y muchas felicidades por todo su esfuerzo.

Compartir