Fortran
| Fortran | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| Wikidata C:Commons | |||||||||||||||
Fortran (/ˈfɔːrtræn/; anteriormente FORTRAN) é unha linguaxe de programación imperativa compilada de terceira xeración deseñada para o cálculo numérico e o cálculo científico.
Visión xeral
[editar | editar a fonte]Fortran foi desenvolvida orixinalmente por IBM, e publicouse un manual de referencia en 1956;[1] porén, os primeiros compiladores só comezaron a producir código preciso dous anos despois.[2] Escribíronse programas informáticos Fortran para dar soporte a aplicacións científicas e de enxeñaría, como a predición numérica do tempo, a análise de elementos finitos, a dinámica de fluídos computacional, a física do plasma, a xeofísica, a física computacional, a cristalografía e a química computacional. É unha linguaxe popular para a computación de alto rendemento[3] e úsase para programas que comparan e clasifican os supercomputadores máis rápidos do mundo.[4][5]
Fortran evolucionou a través de numerosas versións e dialectos. As dúas primeiras versións máis importantes foron FORTRAN II e FORTRAN IV.[6] En 1966, o Instituto Nacional de Estándares Americano (ANSI) desenvolveu un estándar para Fortran para limitar a proliferación de compiladores que empregaban unha sintaxe lixeiramente diferente.[7] As versións sucesivas engadiron compatibilidade con datos de tipo carácter, programación estruturada (Fortran 77), programación de matrices, programación modular, programación xenérica (Fortran 90), computación paralela (Fortran 95), programación orientada a obxectos (Fortran 2003) e programación concorrente (Fortran 2008).

Exemplos de código
[editar | editar a fonte]O seguinte programa demostra a asignación dinámica de memoria e as operacións baseadas en matrices, dúas características introducidas con Fortran 90. É particularmente notable a ausencia de bucles DO e instrucións IF/THEN na manipulación da matriz; as operacións matemáticas aplícanse á matriz no seu conxunto. Tamén é evidente o uso de nomes de variables descritivos e un formato de código xeral que se axustan ao estilo de programación contemporáneo. Este exemplo calcula unha media sobre os datos introducidos de forma interactiva.
program average
! Le algúns números e calcula a media
! Como está escrito, se non hai puntos de datos, devolverase unha media de cero.
! Aínda que este pode non ser o comportamento desexado, mantén este exemplo sinxelo
implicit none
real, allocatable :: points(:)
integer :: number_of_points
real :: average_points, positive_average, negative_average
average_points = 0.
positive_average = 0.
negative_average = 0.
write (*,*) "Input number of points to average:"
read (*,*) number_of_points
allocate (points(number_of_points))
write (*,*) "Enter the points to average:"
read (*,*) points
! Take the average by summing points and dividing by number_of_points
if (number_of_points > 0) average_points = sum(points) / number_of_points
! Now form average over positive and negative points only
if (count(points > 0.) > 0) positive_average = sum(points, points > 0.) / count(points > 0.)
if (count(points < 0.) > 0) negative_average = sum(points, points < 0.) / count(points < 0.)
! Print result to terminal stdout unit 6
write (*,'(a,g12.4)') 'Average = ', average_points
write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
write (*,'(a,g12.4)') 'Average of negative points = ', negative_average
deallocate (points) ! free memory
end program average
Notas
[editar | editar a fonte]- ↑ John Backus. "The history of FORTRAN I, II and III" (PDF) (en inglés). softwarepreservation.computerhistory.org. Arquivado dende o orixinal (PDF) o 2007-07-26. Consultado o 2026-02-08.
- ↑ Wilson, Leslie B. (2001). Comparative Programming Languages, Third Edition (en inglés). Addison-Wesley. p. 16. ISBN 0-201-71012-9.
The manual for Fortran I was released in 1956, but it was 1958 before successful compilers were running programs correctly.
- ↑ Loh, Eugene (2010-06-18). "The Ideal HPC Programming Language". ACM Queue (en inglés) 8 (6): 30–38. doi:10.1145/1810226.1820518.
- ↑ "HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers" (en inglés). Consultado o 2015-02-21.
- ↑ "Q13. What are the benchmarks?". Overview – CPU 2017 (en inglés). SPEC. Consultado o 2019-11-13.
- ↑ Pratt, Terrence W. (1975). Programming Languages: Design and Implementation (en inglés). Englewood Cliffs, Nova Jersey: Prentice Hall. pp. 314–315, 325–326. ISBN 0-13-730432-3.
- ↑ Wilson, Leslie B. (2001). Comparative Programming Languages, Third Edition (en inglés). Addison-Wesley. p. 18. ISBN 0-201-71012-9.
Another problem was that there was no standard for Fortran and so slightly different versions ... would likely fail when used with a different compiler.
Véxase tamén
[editar | editar a fonte]Ligazóns externas
[editar | editar a fonte] Este artigo sobre informática é, polo de agora, só un bosquexo. Traballa nel para axudar a contribuír a que a Galipedia mellore e medre. Existen igualmente outros artigos relacionados con este tema nos que tamén podes contribuír. |