close
Saltar ao contido

Fortran

Na Galipedia, a Wikipedia en galego.
Fortran
Logotipo
 Influído por
Características
 Edicións
(17 de novembro de 2023) Fortran 2023 (en) Traducir
(28 de novembro de 2018) Fortran 2018 (pt) Traducir
(outubro de 2010) Fortran 2008 (pt) Traducir
(novembro de 2004) Fortran 2003 (pt) Traducir
(decembro de 1997) Fortran 95 (pt) Traducir
(xullo de 1991) Fortran 90 (pt) Traducir
(3 de abril de 1978) FORTRAN 77 (pt) Traducir
(1966) FORTRAN 66 (pt) Traducir
(1961) FORTRAN IV (pt) Traducir
(1958) FORTRAN III (pt) Traducir
(1958) FORTRAN II (pt) Traducir
(15 de outubro de 1956) FORTRAN for the IBM 704 (pt) Traducir Editar o valor en Wikidata
 Obra derivada
FORMAC (pt) Traducir
SLIP (pt) Traducir
Ratfor (pt) Traducir Editar o valor en Wikidata
 Sistema de tipos
 Extensión de ficheiro
f
for
f90 Editar o valor en Wikidata
Implicados
 Deseñador/a
 Desenvolvedor/a
Datas
 Fundación / creación
1957 Editar o valor en Wikidata
Historia
 Versións
Fortran 2023 (17 de novembro de 2023) Editar o valor en Wikidata
Códigos e identificadores
Freebase/m/02_94 Editar o valor en Wikidata
OpenAlexC2778241615 Editar o valor en Wikidata
Fontes e ligazóns
 Páxina WEB
 Repositorio
 Descrito pola fonte
Twitter: fortranlang BNE: XX531008 GitHub: fortran-lang Editar o valor en Wikidata
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).

Image
Árbore xenealóxica de FORTRAN e COBOL.

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
  1. 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.
  2. 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.
  3. Loh, Eugene (2010-06-18). "The Ideal HPC Programming Language". ACM Queue (en inglés) 8 (6): 30–38. doi:10.1145/1810226.1820518.
  4. "HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers" (en inglés). Consultado o 2015-02-21.
  5. "Q13. What are the benchmarks?". Overview – CPU 2017 (en inglés). SPEC. Consultado o 2019-11-13.
  6. 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.
  7. 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 tan só é un bosquexo
 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.