Lenguaje de Programación

Fortran: El primer lenguaje de programación

Desde su concepción en 1957 por IBM, el lenguaje de programación FORTRAN ha sido un pionero en la informática, especialmente adaptado al cálculo numérico y la computación científica. Su nombre, derivado de “Formula Translating System”, refleja su enfoque original en la traducción de fórmulas matemáticas para su ejecución en computadoras. A lo largo de más de seis décadas, FORTRAN ha evolucionado significativamente, pasando de su versión inicial para el IBM 704 a estándares modernos como FORTRAN 2008.

FORTRAN ha sido fundamental en campos como la predicción numérica del tiempo, análisis de elementos finitos, dinámica de fluidos computacional y más. Este lenguaje también sigue siendo crucial en la computación de alto rendimiento, siendo utilizado para evaluar el desempeño y clasificar los supercomputadores más rápidos del mundo. Su popularidad ha perdurado, especialmente entre los científicos y en aplicaciones como la predicción meteorológica, el trading financiero y las simulaciones de ingeniería.

FORTRAN destaca por su rendimiento y características preferidas por los desarrolladores, como la gestión automática de memoria y la optimización. Aunque es un lenguaje compilado “ahead-of-time”, lo que requiere un paso adicional de compilación, su eficiencia en el cálculo lo convierte en una opción inigualable para problemas donde el rendimiento es crucial.

Historia de Fortran

John W. Backus, autor de Fortran

La historia de Fortran es una saga de innovación y adaptación que se remonta a finales de 1953, cuando John W. Backus presentó la idea de un lenguaje de programación más práctico que el ensamblador para el IBM 704 de IBM. Tras tres años de arduo trabajo, en 1957 se lanzó la primera versión de Fortran, un hito que revolucionó la programación al reducir significativamente el número de sentencias necesarias para operar una máquina. El equipo de desarrollo, encabezado por Backus, incluía a programadores como Richard Goldberg, Sheldon F. Best y Harlan Herrick, entre otros.

A pesar del inicial escepticismo de la comunidad, Fortran ganó rápidamente aceptación debido a su eficiencia y facilidad de uso. Fue ampliamente adoptado por científicos para programas numéricamente intensivos, estimulando el desarrollo de compiladores más rápidos y eficientes. La inclusión de tipos de datos complejos amplió aún más su utilidad, especialmente en campos técnicos como la ingeniería eléctrica.

Con el tiempo, Fortran se convirtió en el primer lenguaje de programación ampliamente utilizado en una variedad de arquitecturas de computadoras, con más de 40 compiladores disponibles para 1963. Las continuas revisiones y mejoras, incluidas versiones como Fortran IV y Fortran 77, mantuvieron su relevancia en la comunidad científica y educativa.

Aunque a menudo se considera obsoleto, Fortran sigue siendo una herramienta vital en la computación científica, con el estándar más reciente, Fortran 2018, introduciendo nuevas características mientras conserva su alto rendimiento y capacidad para abordar los desafíos modernos. Su evolución hacia características más modernas, como la programación orientada a objetos, demuestra su capacidad de adaptación a lo largo del tiempo y su influencia en la evolución de otros lenguajes de programación. Fortran ha dejado un legado duradero en la informática y sigue siendo una fuerza innovadora en la programación científica y de alto rendimiento.

Características de Fortran

  • Alto rendimiento: Fortran ha sido meticulosamente diseñado para satisfacer las demandas de cálculos numéricos y científicos intensivos. Los compiladores están altamente optimizados, lo que permite la ejecución eficiente de algoritmos complejos. Su estructura y sintaxis están optimizadas para minimizar la sobrecarga y maximizar el rendimiento, lo que lo convierte en la elección preferida para aplicaciones que requieren un procesamiento rápido y eficiente de grandes volúmenes de datos.
  • Tipado estático y fuerte: Una de las fortalezas de Fortran radica en su sistema de tipos estáticos y fuertes. Esto significa que los tipos de datos deben ser declarados explícitamente y que las conversiones entre tipos no se realizan de manera implícita, lo que ayuda a prevenir errores comunes de tipo durante la compilación. Además, este enfoque proporciona al compilador información valiosa para optimizar el código generado, lo que resulta en ejecuciones más eficientes y seguras.
  • Fácil de aprender y usar: A pesar de su potencia y versatilidad, Fortran es conocido por su relativa facilidad de aprendizaje y uso. Su sintaxis limpia y concisa permite a los programadores expresar algoritmos de manera clara y directa, sin la necesidad de escribir una cantidad excesiva de código. Las características como los bucles DO y la manipulación de matrices simplifican la representación de operaciones matemáticas complejas, lo que lo hace especialmente atractivo para aplicaciones científicas y de ingeniería.
  • Versátil: Fortran ofrece una amplia gama de estilos de programación que pueden adaptarse a diferentes problemas y preferencias de los desarrolladores. Ya sea que se prefiera un enfoque imperativo, procedimental, matricial, orientado a objetos o funcional, este lenguaje de programación proporciona las herramientas necesarias para expresar eficazmente la lógica de programación requerida. Esto permite a los programadores abordar una variedad de desafíos computacionales con comodidad y eficiencia, lo que contribuye a su amplia adopción en diversos campos de la ciencia y la ingeniería.
  • Paralelismo nativo: Fortran ha sido diseñado desde su concepción para aprovechar el paralelismo de manera intrínseca. Sus características como Coarrays, equipos y subrutinas colectivas facilitan la escritura de código paralelo eficiente y escalable, lo que permite aprovechar plenamente los recursos de hardware modernos, desde sistemas multinúcleo hasta clústeres de supercomputadoras. Esto lo convierte en una herramienta poderosa para el desarrollo de aplicaciones de alto rendimiento en entornos de computación distribuida y en la nube.

Estructura de Fortran

Los programas desarrollados en un lenguaje de programación de alto nivel, como el FORTRAN, siguen una estructura lógica jerárquica, dividida en unidades programáticas. En el esquema, cada programa que se ejecutará en una computadora debe tener una unidad principal, conocida como programa principal, que contiene las instrucciones que definen el propósito del programa. Estas instrucciones pueden llamar a otras unidades programáticas o subprogramas de nivel jerárquico inferior para llevar a cabo ciertas tareas dentro del programa principal.

Los subprogramas de nivel inferior son conjuntos de instrucciones que, cuando se agrupan, forman una instrucción dentro del programa principal. Siguiendo este principio de jerarquía, un subprograma puede a su vez llamar a otros subprogramas de nivel aún inferior, lo que contribuye a una estructura jerárquica claramente definida. Este enfoque jerárquico facilita la organización y comprensión del código, permitiendo una mejor gestión de la complejidad y la reutilización de código en diferentes partes del programa. Veamos el siguiente esquema:

Esquema de la estructura usada en Fortran

Por ende, el nivel jerárquico se puede definir de la siguiente manera: el nivel más alto se asigna al primer nivel, siendo el programa principal de primer nivel o nivel 1. El nivel de un subprograma se corresponde con el nivel inmediatamente inferior al del subprograma de nivel más bajo al que pertenece. Para ilustrarlo en el esquema, el programa principal se encuentra en el nivel 1, mientras que los subprogramas SP1, SP2 y SP3 están en el nivel 2, los subprogramas SP4, SP5 y SP6 están en el nivel 3, y finalmente, el subprograma SP7 está en el nivel 4.

Para que se usa Fortran

Fortran, un lenguaje de programación icónico que ha resistido la prueba del tiempo, continúa desempeñando un papel fundamental en la informática científica y la ingeniería. Su legado perdurable se encuentra arraigado en una amplia gama de aplicaciones, desde la predicción numérica del tiempo hasta la dinámica de fluidos computacional y más allá.

Una de las principales áreas donde brilla es en la modelización climática y oceanográfica. Programas emblemáticos como NEMO y códigos de dinámica de fluidos, como el código OFF, se desarrollan y mantienen en Fortran debido a su capacidad para expresar ecuaciones matemáticas de manera clara y eficiente.

CDFTOOLS un paquete de diagnóstico escrito en fortran 90 para el análisis de la salida del modelo NEMO

Además, los modelos del Goddard Institute for Space Studies, esenciales para comprender y prever el cambio climático, también se basan en Fortran debido a su alto rendimiento y la comprensión generalizada de su sintaxis en la comunidad científica. Fortran también ha encontrado su lugar en la High-Performance Computing (HPC), donde se utiliza para medir la eficiencia de los supercomputadores más potentes del mundo. Gracias a su diseño optimizado para cálculos numéricos intensivos, Fortran es la elección preferida para aplicaciones que requieren un procesamiento rápido de grandes volúmenes de datos, como simulaciones científicas y análisis de elementos finitos.

Además, Fortran sigue siendo ampliamente utilizado en campos como la estadística, las matemáticas aplicadas y las finanzas. Su capacidad para manejar grandes conjuntos de datos y realizar cálculos aritméticos rápidos lo convierte en una herramienta invaluable para analizar y modelar fenómenos complejos en una variedad de disciplinas.

Además, fortran también cuenta con funciones y subrutinas en Fortran desempeñan un papel crucial en la popularización y organización del código. Estos subprogramas permiten dividir problemas complejos en problemas más pequeños y manejables, lo que facilita el desarrollo y mantenimiento del software. Las funciones, que toman un conjunto de valores como argumentos y devuelven un resultado único, son especialmente útiles para realizar cálculos matemáticos y científicos. Desde funciones intrínsecas como ABS y SIN hasta funciones personalizadas definidas por el usuario, Fortran ofrece una amplia gama de herramientas para abordar una variedad de problemas computacionales.

Así, podemos decir que Fortran continúa siendo una herramienta indispensable para la comunidad científica y de ingeniería, proporcionando un entorno confiable y eficiente para la modelización, simulación y análisis de fenómenos complejos en una variedad de campos. Su legado perdurable y su relevancia continua en la era moderna de la informática científica demuestran su valor y versatilidad inigualables.

Versiones de Fortran

FORTRAN I: FORTRAN I fue la primera versión lanzada en 1957. Fue concebida principalmente para programar el IBM 704 y marcó el inicio de la era de los lenguajes de programación de alto nivel. Aunque limitada en comparación con las versiones posteriores, FORTRAN I introdujo conceptos fundamentales como la programación basada en fórmulas y simplificó la tarea de escribir programas complejos.

FORTRAN II: Lanzado en 1958, FORTRAN II mejoró la eficiencia y la portabilidad del código generado. Introdujo nuevas características como la capacidad de recursión, que permitía a los programadores escribir código más modular y fácil de mantener. FORTRAN II también amplió el soporte para diferentes plataformas de hardware, lo que aumentó su adopción en la industria.

FORTRAN IV: FORTRAN IV, lanzado en 1961, fue una actualización significativa que introdujo nuevas capacidades y mejoras de rendimiento. Esta versión incluyó soporte para programación estructurada, lo que permitió escribir código más claro y legible. También introdujo nuevas características como el manejo de cadenas de caracteres y mejoras en el manejo de errores.

FORTRAN 66: FORTRAN 66, estandarizado en 1966, fue una revisión importante que formalizó muchas características introducidas en versiones anteriores. Estableció estándares para la estructura del lenguaje y la sintaxis, lo que facilitó la portabilidad del código entre diferentes compiladores y plataformas.

FORTRAN 77: FORTRAN 77, lanzado en 1978, marcó un hito importante al introducir la programación estructurada en el lenguaje. Esta versión incluyó características esenciales como estructuras de control IF-ELSE y DO-WHILE, lo que mejoró la claridad y modularidad del código.

Fortran 90: Lanzado en 1991, Fortran 90 representó una revisión profunda y modernización del lenguaje. Introdujo programación orientada a objetos, mejoras significativas en el manejo de matrices y estructuras de datos como módulos y tipos derivados.

Fortran 95: Fortran 95, lanzado en 1997, se centró en la corrección de errores y la optimización de las características introducidas en Fortran 90. Aunque las modificaciones fueron menores, estableció normas importantes que persisten hasta el día de hoy.

Fortran 2003: Fortran 2003, lanzado en 2004, fue un hito monumental en la evolución del lenguaje. Introdujo características avanzadas como interoperabilidad con C, clases abstractas y polimorfismo, consolidando aún más el enfoque de Fortran hacia la programación orientada a objetos.

Fortran 2008: Lanzado en 2010, Fortran 2008 introdujo el soporte para programación en paralelo y concurrencia, capitalizando el creciente uso de sistemas multiprocesador y computación en clúster. También presentó herramientas y funcionalidades como coarrays y submódulos.

Fortran 2018: Fortran 2018, una de las versiones más recientes, continuó mejorando la programación en paralelo y presentó características adicionales que amplían el alcance y la eficiencia de Fortran en la era moderna. A través de estas versiones, Fortran ha evolucionado para adaptarse a las necesidades cambiantes de la industria y los desarrolladores, demostrando su relevancia y resistencia a lo largo de los años.

Finalmente vamos a ver un video de apoyo:

Así, concluimos que FORTRAN ha sido un pilar fundamental en la informática científica y la ingeniería desde su creación en 1957. A lo largo de las décadas, ha evolucionado constantemente, adaptándose a las necesidades cambiantes de la industria y los desarrolladores. Desde sus primeras versiones hasta las más recientes, ha demostrado su capacidad para ofrecer rendimiento, eficiencia y fiabilidad en una amplia gama de aplicaciones, desde la modelización climática hasta la programación en paralelo. Su legado perdurable y su continua relevancia en la era moderna son testamentos de su importancia en la historia de la informática.     

Creditos:

Autor: Liz Angely Gil Guerrero

Editor: Carlos Ivan Pinzón Romero

Codigo: UCPAG4-5

Universidad: Universidad central

Fuentes

¿Qué es el lenguaje de programación FORTRAN? - Base de Conocimientos - ICTEA. (s. f.). https://www.ictea.com/cs/index.php?rp=/knowledgebase/8730/iQue-es-el-lenguaje-de-programacion-FORTRAN.html
Fisica computacional. (2014, 16 febrero). FORTRAN Una breve introducción [Diapositivas]. Universidad de granada. https://ergodic.ugr.es/cphys/LECCIONES/Fortran/fortran-NEW.pdf
El lenguaje de programación Fortran — Fortran Programming Language. (s. f.). https://fortran-lang.org/es/index
Muller, H, C. Programando en Fortran. (2007). Recuperado 13 de febrero de 2024, de http://anyp.fcaglp.unlp.edu.ar/biblio/fortran/fortran90.pdf
colaboradores de Wikipedia. (2024b, enero 16). Fortran. Wikipedia, la Enciclopedia Libre. https://es.wikipedia.org/wiki/Fortran
Llaca, M. (2023, 13 diciembre). Fortran, el primer lenguaje de programación de alto nivel y el inicio de los compiladores. Parceladigital. Recuperado 19 de febrero de 2024, de https://www.google.com/url?sa=i&url=https%3A%2F%2Fparceladigital.com%2Farticulo%2Ffortran-el-primer-lenguaje-de-programacion-de-alto-nivel-y-el-inicio-de-los-compiladores&psig=AOvVaw0hnnyyMtxZOx540DLUnpc2&ust=1707874634607000&source=images&cd=vfe&opi=89978449&ved=0CBIQjRxqFwoTCJj055ucp4QDFQAAAAAdAAAAABAD
colaboradores de Wikipedia. (2024a, enero 4). John Backus. Wikipedia, la Enciclopedia Libre. https://es.wikipedia.org/wiki/John_Backus
meom-group. (s. f.). GitHub - meom-group/CDFTOOLS: A fortran package for analysis and diagnostics on NEMO ocean model output. GitHub. https://github.com/meom-group/CDFTOOLS
Fireship. (2022, 10 junio). FORTRAN in 100 Seconds [Vídeo]. YouTube. https://www.youtube.com/watch?v=NMWzgy8FsKs