Fortran

**Fortran** (primeramente **FORTRAN**,
contraición del inglés *The IBM Mathematical *'For**mula **Tran*'slating System*) ye un llinguaxe de programación d'altu nivel de propósitu xeneral, procedimental y imperativu, que ta especialmente afechu al cálculu numbéricu y a la computación científica. Desenvueltu orixinalmente por IBM en 1957 pal equipu IBM 704, y usáu p'aplicaciones científiques y d'inxeniería, el FORTRAN vieno apoderar esta área de la programación dende'l principiu y tuvo n'usu continuu por más de mediu sieglu n'árees de cómputu intensivu tales como la predicción numbérica del tiempu, analises d'elementos finitos, dinámica de fluyíos computacional (CFD), física computacional y química computacional. Ye unu de los llinguaxes más populares nel área de la computación d'altu rendimientu y ye'l llinguaxe usáu pa programes qu'evalúen el desempeñu (benchmark) y el ranking de los supercomputadores más rápidos del mundu.

El FORTRAN toma un llinaxe de versiones, caúna de les cuales evolucionó p'añader estensiones al llinguaxe ente que usualmente retenía compatibilidá coles versiones previes. Versiones socesives añadieron soporte pa procesamientu de datos basaos en calteres (FORTRAN 77), programación d'arreglos, programación modular y programación empobinada a oxetos (Fortran 90/95), y programación xenérica (Fortran 2003).

## Historia

A finales de 1953, John W. Backus sometió una propuesta a los sos superiores en IBM pa desenvolver una alternativa más práutica al llinguaxe ensamblador pa programar el ordenador central IBM 704. L'históricu equipu FORTRAN de Backus consistió n'el programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.

A mediaos de 1954 foi terminada una especificación del borrador pal *IBM Mathematical Formula Translating System*. El primer manual de FORTRAN apaeció n'ochobre de 1956, porque los veceros yeren ronciegos a usar un llinguaxe de programación d'altu nivel nun siendo que'l so compilador pudiera xenerar códigu que'l so desempeño fuera comparable al d'un códigu fechu a mano en llinguaxe ensamblador.

Ente que la comunidá yera escéptica en qu'esti nuevu llinguaxe, este amenorgó en 20 vegaes el númberu de sentencies de programación necesaries pa operar una máquina, y rápido ganó aceptación. Mientres una entrevista en 1979 con Think, la revista de los emplegaos de IBM, el creador John Backus, dixo: "Enforma del mio trabayu surdió por ser perezosu. Nun me gustaba escribir programes y por eso, cuando taba trabayando nel IBM 701 escribiendo programes pa computar trayectories de misiles, empecé a trabayar nun sistema de programación pa faer más fácil escribir programes".

El llinguaxe foi llargamente adoptáu polos científicos pa escribir programes numbéricamente intensivos, qu'incentivó a los escritores de compiladores a producir compiladores que pudieren xenerar un códigu más rápidu y más eficiente. La inclusión nel llinguaxe d'un tipu de datus y de l'aritmética de númberos complexos amplió la gama d'aplicaciones pa les cualos el llinguaxe afaíase especialmente y fixo al FORTRAN especialmente afechu p'aplicaciones téuniques tales como la inxeniería llétrica.

Escontra 1960, les versiones de FORTRAN taben disponibles pa los ordenadores IBM 709, 650, 1620, y 7090. La cada vez mayor popularidá del FORTRAN aguiyó significativamente a fabricantes d'ordenadores de la competencia a apurrir compiladores FORTRAN pa les sos máquines, asina que allá por 1963 esistíen más de 40 compiladores FORTRAN. Por estes razones, el FORTRAN ye consideráu'l primer llinguaxe de programación llargamente usáu soportáu al traviés d'una variedá d'arquitectures d'ordenador.

El desenvolvimientu del FORTRAN foi paralelu a la temprana evolución de la teunoloxía del compilador. Ello ye que munches meyores na teoría y el diseñu de compiladores fueron motivaos específicamente pola necesidá de xenerar códigu eficiente pa los programes en FORTRAN.

## Versiones

Delles otres versiones subsiguientes fueron:
* FORTRAN II
* FORTRAN IV
* FORTRAN 66
* FORTRAN 77
* Fortran 90
* Fortran 95
* Fortran 2003
* Fortran 2008

## Principales carauterístiques

El llinguaxe foi diseñáu teniendo en cuenta que los programes seríen escritos en tarxetes furaes de 80 columnes. Asina por casu, les llinies teníen de ser numberaes y la única alteración posible nel orde d'execución yera producida cola instrucción *goto*. Estes carauterístiques evolucionaron de versión en versión. Les actuales contienen subprogramas, recursión y una variada gama de [estructures de control]

== Ventayes ya inconvenientes de la so sintaxis ==

Como foi una primer tentativa de creación d'un llinguaxe de programación d'altu nivel, tien una sintaxis considerada arcaica por munchos programadores qu'aprienden llinguaxes más modernos. Ye difícil escribir un bucle "for", y errores na escritura d'un solu calter pueden llevar a errores mientres el tiempu d'execución en cuenta de errores de compilación, nel casu de que nun s'usen les construcciones más frecuentes. Dalgunes de les primeres versiones nun tener facilidaes que son consideraes bien útiles, tal como la asignación dinámica de memoria.

Tien de tenese en cuenta que la sintaxis de Fortran foi empobinada pal usu en trabayos numbéricos y científicos. Munches de los sos defectos fueron encetaes en revisiones recién del llinguaxe. Por casu, Fortran 95 tien comandos muncho más curtios pa efectuar operaciones matemátiques con matrices y dispón de tipos. Esto non solo ameyora enforma la llectura del programa sinón qu'amás apurre información útil al compilador.

Por estes razones Fortran práuticamente nun s'usa fora de los campos científicos y del analís numbéricu, pero permanez como'l llinguaxe preferíu pa desenvolver aplicaciones de computación numbérica d'altu rendimientu.

== Especificaciones ==
Esisten dos versiones normalizaes del llinguaxe.
* ANSI X3.198-1992 (R1997). Títulu: ''Programming Language "Fortran" Extended''. Conocida como Fortran 90. Trátase d'un estándar publicáu por [ANS.l..
* ISO/IEC 1539-1:1997. Title: *Information technology - Programming languages - Fortran - Part 1: Base language*. Conocida como Fortran 95. tamién adoptada por ANSI.

De siguío amuésase'l códigu fonte en llinguaxe Fortran d'un programa que dexa realizar un axuste o regresión llinial d'una serie de datos:


```fortran
REGRESION LLINIAL.FORTRANS
APLICACION
 DIMENSION TIEMPU(1000),PROD(1000)
 OPEN(1,FILE='HESTORIA.txt')
 I=0
 10 READ(1,*,END=80)T,P
 I=I+1
 TIEMPU(.l.)=T
 PROD(I)=P
 GO TO 10
 80 NDATOS=I CALL
 AJULIN(TIEMPU,PROD,NDATOS,A,B)
 WRITE(*,90)A,B
 90 FORMAT('LA ECUACION YE:Y=',F10.2,'+',F10.2,'X')
 20 FORMAT(20F10.0)
 END


 SUBROUTINE AJULIN(X,Y,N,A,B)
 DIMENSION X(1),Y(1)
 SUMX=0.
 SUMY=0.
 SUMX2=0.
 SUMY2=0
 SUMXY=0
 DO 20 I=1,N
 SUMX=SUMX+X(.l.)
 SUMY=SUMY+Y(.l.)
 SUMX2=SUMX2+(X(I)*X(.l.))
 SUMY2=SUMY2+Y(I)**2
 SUMXY=SUMXY+(X(I)*Y(I))
 20 CONTINUE
 PROD=SUMX*SUMY
 B=(SUMXY-PROD/N)/(SUMX2-SUMX**2/N)
 A=(SUMY/N-B*SUMX/N)
 RETURN
 END
```


Básicamente, nel programa lleer dende un archivu ASCII cierta cantidá de pares ordenaos, convocar a una rutina que calcula la recta d'axuste correspondiente, usando'l métodu de mínimos cuadraos, pa depués retornar apurriendo los coeficientes o parámetros de la recta en cuestión.

## Referencies

## Enllaces esternos
* Fortran DMOZ category
* User notes on Fortran Programming (UNFP)
* Unit 7.1 FORTRAN 77, part of a textbook
* Unit 7.2 FORTRAN 90, part of a textbook
* g95 Compilador GNU de Fortran 95 multiplataforma, software llibre, *basáu* en GCC
* GFortran, compilador de Fortran 95 de GNU, software llibre, *parte* del proyeutu de GCC
* Repositorio de paquetes Debian de g95, (páxina n'inglés)
* Páxina n'español sobre G95 , inclúi manual n'español en pdf. "site" non oficial
* Proyeutu Fortress

### Recursos de programación
* Fortran 90 Software Repository
* National HPCC software repository
* Netlib Repository
* más información en pseint