El lenguaje de programación de FORTRAN
¿Qué es Fortran ?
Fortran es un lenguaje de programación informática muy utilizado por los científicos. Su popularidad ha disminuido con los años, pero los siguen utilizando mucho los programadores científicos. También lo utilizan las empresas para aplicaciones como la predicción meteorológica, el trading financiero y las simulaciones de ingeniería.
Los programas escritos en Fortran se pueden optimizar para ejecutarse en ordenadores de alto rendimiento (HPC). Se utiliza para comparar programas y clasificar a los superordenadores más potentes del mundo. Por lo general, este lenguaje es ideal para crear código en el que el rendimiento es importante.
Existen pocos lenguajes que rivalicen en rendimiento con Fortran, entre ellos C++. Además, ofrece características que los desarrolladores prefieren respecto a C++, como no tener que preocuparse por la asignación de memoria o la optimización.
La historia de Fortran
Creado por Konrad Zuse, Plankalkül fue el primer lenguaje de programación de alto nivel. Sin embargo, las ideas y proyectos del inventor únicamente estaban escritos en papel. El primer lenguaje de programación real fue Fortran, creado por John Backus.
Licenciado en Matemáticas por la Universidad de Columbia, inventó este lenguaje en los años 50 mientras trabajaba como programador en IBM. El objetivo era dar soporte al Selective Sequence Electronic Calculator: un ordenador electromecánico con 23 000 relés y 13 000 tubos de vacío fabricado en enero de 1948. Fue con este ordenador con el que Wallace J. Eckert, director del Watson Scientific Computing Laboratory de IBM, realizó los cálculos SSEC que se utilizarían 20 años después en el programa espacial Apolo.
Sin embargo, una vez inventado el SSEC, nadie encontraba un método adecuado para programarlo. Durante tres años, John Backus trabajó intentando programar la máquina.
A finales de 1953, presentó a sus superiores un concepto de lenguaje de programación para el ordenador mainframe IBM 701. La idea fue aprobada por IBM, y John Backus pasó a ser responsable de un pequeño equipo en 1954 en el IBM Watson Scientific Laboratory.
A medida que avanzaba su trabajo, Backus decidió diseñar un lenguaje de programación más rápido y sencillo para los programadores. En 1957, tras tres años de trabajo, se lanzó la primera versión de Fortran. Contenía 25 000 líneas de código en un casete magnético que se incluía con cada instalación IBM 704. Este lenguaje fue adoptado masivamente por científicos y matemáticos para escribir programas con gran intensidad numérica.
En 1958 se publicó la segunda versión de Fortran, que añadía tipos de datos numéricos complejos. Esto hizo que el lenguaje fuera adecuado para aplicaciones técnicas como la ingeniería eléctrica. La principal mejora consistió en permitir funciones escritas por el usuario para mejorar la programación procedimental.
Menos de un año después, IBM lanzó Fortran III con nuevas funcionalidades. Sin embargo, esta versión nunca se presentó al público como producto. En 1960, ya existían varias versiones de Fortran para los ordenadores IBM. La popularidad del lenguaje siguió creciendo y los fabricantes rivales empezaron a ofrecer compiladores para sus propias máquinas. En 1963, había más de 40 compiladores disponibles.
En 1961, IBM comenzó a trabajar en Fortran IV en respuesta a la demanda del público. Esta versión eliminaba las características dependientes de la máquina de Fortran II y añadía nuevas funciones, como el tipo de datos lógico. En 1965, Fortran IV tuvo que ajustarse a las normas de la American Standards Association. Ya se había convertido en un lenguaje muy utilizado en educación.
A pesar de la buena acogida de esta estandarización por parte de la comunidad, siguieron apareciendo diversas variantes. Se hicieron varias revisiones, incluidas nuevas versiones como Fortran 77.
Aún hoy sigue siendo ampliamente utilizado por muchas comunidades científicas. Sin embargo, a menudo se considera un lenguaje obsoleto y antiguo.
El estándar Fortran más reciente data de 2018, y ha aportado nuevas características conservando el alto rendimiento del lenguaje y su capacidad para hacer frente a los retos modernos de la computación científica.
El lenguaje ha evolucionado con el tiempo. Si antes era un lenguaje de programación puramente procedimental, ahora admite características orientadas a objetos, como la extensión de tipos y el polimorfismo.
Las versiones más recientes han introducido nuevos conceptos, como las sentencias «block if» y «end if», destinados a mejorar la programación estructurada. Muchas de estas características se encuentran en lenguajes de programación modernos como C++, Java o Python.
En los últimos 40 años, Fortran ha inspirado varios lenguajes de programación, como C y Basic. Este lenguaje también ha influido en la evolución de las técnicas de compilación.
¿Para qué se utiliza Fortran?
Fortran sigue utilizándose hoy en día en campos de investigación que requieren el uso de la informática científica. Entre los programas en Fortran más famosos se encuentran NEMO (Nucleus for European Modelling of the Ocean), el código OFF de dinámica de fluidos, y los modelos del Goddard Institute for Space Studies.
Además, este lenguaje sigue siendo popular para una gran variedad de programas de modelización climática. Esto se debe a que las fórmulas matemáticas se convierten en
código con facilidad. El rendimiento es alto y la mayor parte de la comunidad de modelización climática entiende la sintaxis.
El TIOBE Index, que mide la popularidad de cientos de lenguajes de programación, situó a Fortran en el vigésimo lugar entre los lenguajes más populares en abril de 2021. Aunque ha sido eclipsado por otros lenguajes en las últimas décadas, sigue firmemente arraigado en el campo de la High-Performance Computing.
¿Cómo aprender a programar con Fortan?
La programación informática se utiliza ampliamente en una gran variedad de campos científicos. Sin embargo, Fortran no es el mejor lenguaje para la Data Science. El lenguaje Python es más adecuado y más potente.
Para aprender a dominar la programación en Python, puedes apostar por DataScientest. Nuestros diferentes cursos de Data Analyst, Data Scientist, Data Engineer y Data Management incluyen un módulo dedicado a la programación. Los programas de Data Analyst, Data Scientist y Data Manager cubren los fundamentos de Python y las bibliotecas Numpy y Pandas. El programa de Data Engineer cubre Bash, Linux, Python y Python orientado a objetos.
Los demás módulos de estos cursos tratan sobre DataViz, bases de datos, CI/CD, Machine Learning y Business Intelligence. Al término de estos cursos, tendrás todas las habilidades que necesitas para trabajar en las profesiones de Data Science.
Al final del curso, nuestros estudiantes reciben un certificado emitido La Sorbonne en el marco de nuestra colaboración. Nuestros cursos están reconocidos por el sector y el 80 % de nuestros antiguos alumnos ha encontrado un empleo de inmediato.
Todos nuestros programas adoptan un enfoque Blended Learning, combinando el aprendizaje en línea en una plataforma tutorizada y Masterclasses. En función de tu situación y tus preferencias, puedes elegir entre la Formación Continua y una modalidad intensiva de BootCamp.
Ventajas y desventajas
Ventajas:
- es un lenguaje muy simple
- es fácil de aprender
- se diseñó para trabajar con expresiones matemáticas y Matrices
- es todavía uno de los lenguajes más usados para cálculo numérico
- existen cientos de librerías probadas y eficientes
- los compiladores tienen más de 50 años de experiencia para optimizar el tiempo de cálculo de los do-loops.
Desventajas:
- no existen clases o estructuras
- no se puede hacer una reserva de memoria dinámica
- es un lenguaje primitivo para proceso de textos, listas y estructuras de datos más complejas
- puede haber mayor dificultad en el rastreo de la lógica de un programa en el código Fortran que en algunos otros lenguajes de alto nivel.
- Características:
Alto rendimiento
Fortran ha sido diseñado desde cero para realizar cálculos de ciencia e ingeniería computacionalmente exigentes. Los compiladores y bibliotecas disponibles están muy maduros y validados permitiendo escribir código que se ejecuta muy rápido.
Tipado estático y fuerte
Fortran utiliza un tipado estático y fuerte, lo que permite al compilador detectar inmediatamente numerosos errores de programación. Esto también le permite generar código binario eficiente.
Fácil de aprender y usar
Fortran es un lenguaje relativamente pequeño y sorprendentemente fácil de aprender y usar. La mayoría de expresiones matemáticas y aritméticas aplicadas sobre matrices grandes se expresan tan fácilmente como si se escribieran las ecuaciones en papel.
Versátil
Fortran le permite escribir código en el estilo que mejor se adapte a su problema: imperativo, procedimental, matricial, orientado a objetos o funcional.
Paralelo nativo
Fortran es un lenguaje de programación nativamente paralelo con una sintaxis intuitiva de tipo matriz para comunicar datos entre procesadores. Puede ejecutar casi el mismo código en un solo procesador, en un sistema multinúcleo con memoria compartida, en un sistema HPC con memoria distribuida o en un sistema en la nube. Los conceptos de Coarrays, equipos, eventos, y subrutinas colectivas le permiten utilizar distintos modelos de programación paralela para elegir el que mejor se adapten a su problema.
¿Que es C++?
C++ es un ejemplo de lenguaje de programación compilado, multiparadigma, principalmente de tipo imperativo y orientado a objetos, incluyendo también programación genérica y funcional, características estas últimas que comentaremos más adelante en el curso.
- Un programa escrito en un lenguaje imperativo es un conjunto de instrucciones que indican al computador cómo realizar una tarea.
En un lenguaje imperativo:
- se conoce en cada paso del programa su estado, determinado por el valor que toman las variables utilizadas.
- se altera el estado del programa a través de sentencias.
La implementación hardware de la mayoría de computadores está diseñada para ejecutar código máquina escrito en forma imperativa:
- las variables son posiciones de memoria
- las sentencias son instrucciones
- En este curso nos centraremos principalmente en la parte imperativa del lenguaje C++, que es básicamente la misma que la del lenguaje C.
Créditos:
Autor: Andrés Felipe Leal Rueda
Editor: Carlos Iván Pinzón Romero
Código: UCPAG3-1
Universidad: Universidad Central
Fuentes:
Anónimo.(4 September 2013). Lenguajes de Programación. Lenguajes de Programación, https://lenguajesana.blogspot.com/2013/09/lenguaje-de-el-fortran-tiene-la-ventaja.html. Team, D. (2023, 30 octubre). Fortran: todo sobre el primer lenguaje de programación. Formación En Ciencia de Datos | DataScientest.com. https://datascientest.com/es/fortran-todo-sobre-el-primer-lenguaje-de-programacion El lenguaje C++ — Fundamentos de Programación en C++. (s. f.). https://www2.eii.uva.es/fund_inf/cpp/temas/1_introduccion/introduccion.html Entorno Simple. (2019, 22 octubre). ¡Fortran para 2022! - Lenguaje de programación - #ESimple [Vídeo]. YouTube. https://www.youtube.com/watch?v=fhTNKUBYFdI Redirect notice. (s. f.-b). https://www.google.com/url?sa=i&url=https%3A%2F%2Fadministraciondesistemas.com%2Ffortran-todo-sobre-el-primer-lenguaje-de-programacion%2F&psig=AOvVaw0f4tD6KTtsZzLwQp6sBXf9&ust=1709429245688000&source=images&cd=vfe&opi=89978449&ved=0CBAQjRxqFwoTCMCu8qq21IQDFQAAAAAdAAAAABAD Redirect notice. (s. f.-c). https://www.google.com/url?sa=i&url=https%3A%2F%2Fes.wikipedia.org%2Fwiki%2FFortran&psig=AOvVaw0f4tD6KTtsZzLwQp6sBXf9&ust=1709429245688000&source=images&cd=vfe&opi=89978449&ved=0CBAQjRxqFwoTCMCu8qq21IQDFQAAAAAdAAAAABAI Redirect notice. (s. f.-d). https://www.google.com/url?sa=i&url=https%3A%2F%2Flinuxbasico.com%2Fguia-para-escoger-el-mejor-lenguaje-de-programacion&psig=AOvVaw0LpVyCNWT4AKK58-rtC3rt&ust=1709429750910000&source=images&cd=vfe&opi=89978449&ved=0CBAQjRxqFwoTCLilgJ241IQDFQAAAAAdAAAAABAD Redirect notice. (s. f.-f). https://www.google.com/url?sa=i&url=https%3A%2F%2Ffi.ort.edu.uy%2Fblog%2Fque-es-programar-y-para-que-sirve&psig=AOvVaw2-t_tPdRlBr5oGNVjRX5lq&ust=1709429851424000&source=images&cd=vfe&opi=89978449&ved=0CBAQjRxqFwoTCPiM_tC41IQDFQAAAAAdAAAAABAD