Fortran

Esta página cita fontes, mas que não cobrem todo o conteúdo. Ajude a inserir referências (Encontre fontes: Google (N • L • A • I • WP refs)  • ABW • CAPES). (Junho de 2022)

|

Fortran

Paradigma| Multiparadigma:

* estruturada
* imperativa
* procedural
* orientada a objetos
* genérica

Surgido em| 1957; há 68 anos
Última versão| Fortran 2023 (ISO/IEC 1539:2023) (17 de novembro de 2023; há 20 meses)
Criado por| John Backus & IBM
Estilo de tipagem|

* estática
* forte

Principais implementações|

* Absoft
* Cray
* gFortran
* G95
* IBM XL Fortran
* Hitachi
* Intel
* Lahey/Fujitsu
* NAG
* Open Watcom
* Pathscale
* PGI
* Silverfrost
* Oracle Solaris Studio
* Visual Fortran

Influenciada por| Speedcoding
Influenciou|

* ALGOL 58
* BASIC
* C
* Chapel
* CMS-2
* Julia
* PL/I
* PACT I
* MUMPS
* Ratfor

Extensão do arquivo|

* .f
* .for
* .ftn
* .f90
* .f95
* .f03
* .f08[1]

Fortran[a], acrônimo de IBM Mathematical FORmula TRANslation System, é uma linguagem de programação voltada para computação científica e técnica e que especialmente projetada pela execução eficiente em tempo de execução numa ampla variedade de processadores.[2] Foi inicialmente desenvolvida na década de 1950.[2] Foi normatizada em 1966 e desde então, recebeu revisões em 1978, 1991, 1997, 2004, 2010, 2018 e 2023.[2][3] Até meados dos anos 1980, foi a linguagem hegemônica da computação científica[4][5] e atualmente é a terceira linguagem de programação mais popular na computação de alto desempenho[6] (HPC), especialmente em aplicações em que há muito código legado.[7]

Apesar de ter sido inicialmente uma linguagem de programação procedural, versões recentes de Fortran permitem programação orientada por objetos.

Desde de o início dos anos 1970, linguagens de programação de quarta e quinta geração suplantaram largamente o Fortran fora dos círculos acadêmicos.[8] Depois disso, muitos códigos de física de larga escala migraram ou foram substituídos pelo C++,[9] linguagem mais usada modernamente para códigos de computação científica e HPC,[4][7][10] enquanto o Python domina a análise de dados.[9]

A linguagem é definida por norma ISO/IEC e sua atual revisão é Fortran 2023, ISO/IEC 1539:2023, publicada em novembro de 2023.[3]

## História, versões e revisões

[editar | editar código fonte]

An IBM 704 mainframe

Foi a primeira linguagem de programação imperativa. O primeiro compilador de FORTRAN foi desenvolvido para o IBM 704 entre os anos de 1954-57, por uma equipe da IBM chefiada por John W. Backus, ficando pronto em Abril de 1957.[11] Esse foi o primeiro compilador otimizado, porque os autores acreditavam que ninguém usaria essa linguagem a menos que seu compilador pudesse gerar código com desempenho próximo ao da linguagem assembly codificada manualmente. O compilador Fortran I foi o primeiro grande projeto em otimização de código. Ele abordou problemas de importância crucial cuja solução geral foi um importante foco de pesquisa em tecnologia de compiladores por várias décadas. Muitas técnicas clássicas para análise e otimização de compiladores podem traçar suas origens e inspiração para o compilador Fortran I.[12] A revista científica Computing in Science & Engineering elegeu esse primeiro compilador otimizador Fortran como um dos 10 algoritmos mais influentes do século XX.[13]

O Fortran se mostrou uma linguagem de programação muito bem sucedida sobretudo na área de computação científica[14] e se manteve hegemônica nessa área até meados dos anos 1980.[4][5]

A partir dos anos 1970, fora dos meios acadêmicos, linguagens de quarta e de quinta geração suplantaram largamente o uso do Fortran[8] e mesmo nas aplicações científicas, ao longo do tempo, outras linguagens como o C, o C++ e o Java, mesmo que não tenham sido concebidas especificamente para esse fim, superaram em grande extensão o Fortran.[14]

Embora a maior parte do software científico já não seja escrito em Fortran,[15] a linguagem segue como a terceira linguagem de programação mais popular na computação de alto desempenho[6] (HPC), especialmente em aplicações em que há muito código legado.[7]

A linguagem Fortran conheceu as seguintes evoluções:[16]

### 1957 FORTRAN I

[editar | editar código fonte]

O primeiro rascunho ficou pronto em 10 de Novembro de 1954, e foi descrito no Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN. O primeiro compilador começou a ser desenvolvido no começo de 1955. Entre Junho-Setembro de 1956 estava claro para a equipe de desenvolvimento que o compilador estava quase pronto, então em 15 de Outubro de 1956 foi publicado o primeiro manual de FORTRAN: Programmer's Reference Manual. Em Abril de 1957 o compilador foi concluído e distribuído para todos os clientes do IBM 704, juntamente com o Preliminary Operator's Manual, datado de 8 de Abril de 1957.[11]

### 1958 FORTRAN II

[editar | editar código fonte]

No segundo semestre de 1957 os desenvolvedores já tinham noção de que precisariam corrigir várias deficiências encontradas no FORTRAN I, delineando formas de corrigi-las em um documento intitulado Proposed Specifications for FORTRAN II for the 704, datado de 25 de Setembro de 1957. O FORTRAN II foi distribuído entre Junho-Setembro de 1958.[11]

Entre as deficiências estava a falta de suporte a programação procedural. Assim, o principal aprimoramento desta versão foi a adicição de subrotinas e funções. As seguintes instruções foram adicionadas: `SUBROUTINE`, `FUNCTION`, `END`, `CALL`, `RETURN` e `COMMON`. Nos próximos anos também seriam adicionadas as variáveis `DOUBLE PRECISION` e `COMPLEX`.

### 1958 FORTRAN III

[editar | editar código fonte]

Enquanto FORTRAN II trazia correções em sua maior parte, FORTRAN III já trazia aprimoramentos. Ele começou a ser distribuído entre Dezembro de 1958 e Março de 1959 e acompanhado de um documento resumido: Additions to FORTRAN II. No entanto, nunca foi distribuído em larga escala, mas para apenas cerca de 20 clientes IBM 704. Em parte tal ocorreu porque o FORTRAN III incluía recursos dependentes de máquina (IBM 704) que não permitiam a portabilidade do código escrito nele para outras máquinas.[11]

### 1962 FORTRAN IV

[editar | editar código fonte]

A IBM começou a trabalhar nele já em 1961 a pedido dos clientes, e começou por remover as características dependentes de máquina do FORTRAN II/III. A linguagem FORTRAN já era um sucesso, sendo largamente adaptada por cientistas para a escrita de programas numericamente intensivos, o que encorajou os programadores a escrever compiladores que gerassem código mais rápido. Começavam a surgir outras versões do FORTRAN.

### 1966 FORTRAN 66

[editar | editar código fonte]

Talvez o desenvolvimento mais significativo no início da história do FORTRAN tenha sido a decisão da American Standards Association (ASA) de formar um comitê patrocinado pela Business Equipment Manufacturers Association (BEMA), para desenvolver um American Standard Fortran (Padrão Americano para o Fortran). Em 17 de Maio de 1962 foi criado o Grupo de Trabalho X3.4.3, em Outubro de 1964 o rascunho final já estava pronto e, em 7 de Março de 1966, os dois padrões resultantes foram finalmente aprovados.[17]

Foram definidas duas linguagens: FORTRAN (baseado em FORTRAN IV, que serviu como um padrão de fato) e FORTRAN Básico (baseado em FORTRAN II, mas despojado de seus recursos dependentes de máquina). O FORTRAN definido pelo primeiro padrão (no documento ANSI X3.9-1966[18]) ficou conhecido como FORTRAN 66, muito embora muitos tenham continuado a denominá-lo FORTRAN IV, a linguagem na qual o padrão foi amplamente baseado.[17]

O FORTRAN 66 efetivamente se tornou a primeira linguagem de programação padronizada pela indústria.

FORTRAN 66 incluiu:

* As unidades de programa: programa principal, subrotinas, funções, e subprogramas block data.
* As variáveis do tipo `INTEGER`, `REAL`, `DOUBLE PRECISION`, `COMPLEX`, e `LOGICAL`.
* As instruções `COMMON`, `DIMENSION` e `EQUIVALENCE`.
* A instrução `DATA` para especificar valores iniciais.
* As funções intrínsecas e a instrução `EXTERNAL` (para usar como bibliotecas, p.e.).
* Instrução de atribuição.
* Instruções `GO TO`, `ASSIGN`, `IF` lógico e aritmético, `FORMAT` e loop `DO`.
* Instruções `READ`, `WRITE`, `BACKSPACE`, `REWIND` e `ENDFILE` para I/O sequencial.
* Instruções `CALL`, `RETURN`, `PAUSE` e `STOP`.
* Constantes Hollerith nas instruções `DATA` e `FORMAT`, e como argumentos aos procedimentos.
* Identificadores com até 6 caracteres de comprimento.
* Linhas de comentários.
* Linha `END`.

Quando foi disponibilizado, o FORTRAN já era a linguagem mais usada pela comunidade científica.[19] A ampla disponibilidade de compiladores para diferentes computadores, a simplicidade da linguagem, facilidade para ensiná-la, sua eficiência e as vantagens introduzidas pelo uso de sub-rotinas e compilação independente destas, a capacidade de lidar com números complexos, entre muitas outras características, ajudaram em sua ampla difusão dentro da comunidade científica.

### 1978 FORTRAN 77

[editar | editar código fonte]

Código FORTRAN num Cartão perfurado, mostrando as colunas de texto especializadas 1-5, 6 e 73-80.

Definido pelo padrão ANSI X3.9-1978,[20] entre outras melhorias, facilitou a programação de estruturas com blocos com `IF`, `THEN`, `ELSE` e `ENDIF`. Em 1978, uma extensão introduzia entre outros `DO WHILE` e `END DO`.[21] Uma característica marcante do FORTRAN 77 eram as regras de alinhamento das linhas do programa, uma herança da era dos cartões perfurados. Originalmente, a sintaxe do FORTRAN 77 foi definida de forma que cada linha do programa fosse escrita em um cartão perfurado, com um carácter por coluna, obedecendo as seguintes regras:

* Coluna 1 - usada para indicar linha de comentário. Um carácter na coluna 1 (geralmente "C", "c" ou "*") indicava que todos os demais caracteres a partir da coluna 2 constituíam um comentário e não um comando ou declaração.
* Colunas 2-5 - reservadas para os "labels" das linhas (números inteiros entre 1 e 9999). Os labels são usados para identificar e referenciar linhas específicas do programa.
* Coluna 6 - quando marcada por um carácter, indicava que a linha era uma continuação da linha anterior.
* Colunas 7-72 - reservadas para os comandos e declarações.
* Colunas 73 em diante - reservadas para comentários.

As mesmas regras continuaram em vigor, mesmo depois dos cartões perfurados terem caído em desuso e os programas em FORTRAN 77 passarem a ser escritos diretamente em editores de texto.

Na mesma época que o FORTRAN 77 surgiu, já existiam outras linguagens de programação como o C, Pascal, Ada e Modula, que haviam introduzido novos conceitos em programação ou fundamentado outros como a tipagem explícita de variáveis e a definição de novos tipos de dados, o que permitia ao programador definir estruturas de dados mais adequadas para resolver problemas; alocação dinâmica de dados; subprogramas recursivos; controle de exceção (uma das principais características da linguagem Ada); e estabelecimento de módulos.

O FORTRAN 77 não oferecia nenhum desses recursos e começou a ser pouco a pouco abandonado pela comunidade científica que passou a recorrer a outras linguagens de programação.

### 1992 Fortran 90

[editar | editar código fonte]

Definido pelo padrão ANSI X3.198-1992:[22] foi conhecido inicialmente como Fortran 83, depois 88, 8X e finalmente Fortran 90. Quando ficou pronto, Fortran já estava atrás em popularidade das linguagens C, C++, Ada e Pascal.[19] O processo de definição do novo padrão foi longo e demorado, mas permitiu o amadurecimento de muitos dos novos conceitos que a linguagem apresentaria, sendo tão eficiente quanto o C e o Pascal para os fins a que se destinava. Incorporou vários conceitos modernos: alocação dinâmica de dados, subprogramas recursivos e estabelecimento de módulos. Só não incorporou a tipagem explícita e o controle de exceção.

### 1997 Fortran 95

[editar | editar código fonte]

Definido pelo padrão ISO/IEC 1539-1:1997:[23] publicado em 1996,[24] esta revisão acrescentou pequenas alterações ao Fortran, motivada pela necessidade de aproximar o padrão à linguagem High Performance Fortran (HPF) a qual é voltada para o uso de computadores com arquiteturas avançadas. A linguagem HPF é uma espécie de extensão do Fortran 90 e, atualmente, muitos fabricantes oferecem compiladores HPF baseados na linguagem Fortran 90.

### 2004 Fortran 2003

[editar | editar código fonte]

Definido pelo padrão ISO/IEC 1539-1:2004:[25] desde 1997 o Fortran estava passando por um novo processo de revisão. O Fortran 2003 incorporou um conjunto de novos comandos que permitiram, entre outras coisas, o controle de exceções e a programação orientada a objetos.

### 2010 Fortran 2008

[editar | editar código fonte]

Definido pelo padrão ISO/IEC 1539-1:2010:[26] foi aprovado em Setembro de 2010.[27] Tal como o Fortran 95, sofreu pequenos melhoramentos, incorporando clarificações e correções ao Fortran 2003, assim como algumas novas funcionalidades, tais como:

* Submódulos – facilidades estruturais adicionais para os módulos; substitui ISO/IEC TR 19767:2005.
* Co-matrizes – um modelo de execução paralela.
* A construção scalable parallelism – para iterações sem interdependências.
* O atributo CONTIGUOUS – especifica restrições na definição da estrutura lógica.
* A construção block ou dynamic scoping – pode obter declarações de objetos com uso do escopo da construção.
* Tipo de dados ou componentes recursivos – como alternativa a indicadores recursivos em páginas derivadas.

### 2018 Fortran 2018

[editar | editar código fonte]

Definido pelo padrão ISO/IEC 1539-1:2018:[28] anteriormente conhecido como Fortran 2015,[29] é uma revisão significativa aprovada em 28 Novembro de 2018. Fortran 2018 incorpora duas Especificações Técnicas publicadas anteriormente:

* ISO/IEC TS 29113:2012 Further Interoperability of Fortran with C.[30] A especificação adiciona suporte para acesso a descritores de array ou ve(c)tores da linguagem de programação C e permite ignorar o tipo e importância dos argumentos.

## Compiladores

[editar | editar código fonte]

Supercomputador IBM Blue Gene/P no Argonne National Laboratory, laboratórios de pesquisa científica do Departamento de Energia dos Estados Unidos,

ISO/IEC TS 18508:2015 Additional Parallel Features in Fortran.[31]

O compilador livre gcc permitia a compilação de códigos escritos em Fortran 77 (compilador g77,[32] até o gcc 3.4.6) e depois o Fortran 90-95 (a partir do gcc 4.0.0, quando substituiu o g77 pelo gfortran[33][34]). A partir das versões 9 e 10, o gcc, através do gfortran, já possui um bom suporte ao Fortran 2003-2018.

Para as novas plataformas, o compilador g95[35] é também baseado no gcc, mas já não é mantido desde 2011.

O compilador g77, agora distribuído separadamente do gcc, pode ser incluído no gcc para compilar,[36] e os seus binários são ainda disponibilizados para certos modelos de computadores.[37][38][39]

Outros compiladores, como o da empresa IBM, nunca foram muito populares e esse aspecto foi especialmente notado no FORTRAN IV.

WATFOR, a versão do FORTRAN IV desenvolvida na Universidade de Waterloo, Canadá, foi universalmente preferida, pois o compilador produzia melhores relatórios de erros de compilação. O software para a geração automática de fluxogramas a partir de programas em FORTRAN também foi desenvolvido fora da IBM.

Compiladores Fortran para processamento paralelo e/ou distribuído em Cluster of Workstations (CoW) ou Cluster of PCs (agrupamentos de PCs): gFortran, g95, GNU Compiler Collection (gcc), F2c, Intel Fortran Compiler, IBM VisualAge e Open64.

## Características e extensões

[editar | editar código fonte]

O Fortran permite a criação de programas que primam pela velocidade de execução. Daí reside seu uso em aplicações científicas computacionalmente intensivas como meteorologia, oceanografia, física, astronomia, geofísica, engenharia, economia etc.

Inicialmente, a linguagem dependia da formatação precisa do código-fonte e do uso extensivo de números de depoimento e de depoimentos `GO TO`. Estas idiossincrasias foram removidas de versões mais recentes da linguagem. As diversas atualizações também introduziram conceitos "modernos" de programação, tais como comentários no código-fonte e saídas de texto, instruções `IF-THEN-ELSE` (em FORTRAN 77), recursividade (em Fortran 90), e construções paralelas, enquanto se tentava preservar o perfil "leve" e o alto desempenho que são a marca do Fortran.

Entre as linguagens especializadas mais populares baseadas em Fortran encontram-se a linguagem SAS, para gerar relatórios estatísticos, e SIMSCRIPT, para simulação de processos onde estão envolvidas listas de espera.

Vendedores de computadores científicos de alto rendimento (Burroughs, CDC, Cray, IBM, Texas Instruments...) adicionaram extensões à linguagem Fortran para fazer uso de características especiais do hardware, tais como: cache de instruções, pipeline da CPU, disposições de vectores, etc. Por exemplo, um dos compiladores de Fortran da IBM (H Extended IUP) possuía um nível de optimização que reordenava as instruções do código para manter as unidades aritméticas da máquina ocupadas simultaneamente, obtendo assim um rendimento máximo. Outro exemplo é CFD, uma "versão" especial da linguagem Fortran projetada especialmente para o supercomputador ILLIAC IV, que se encontra no Centro de Pesquisa Ames da NASA. Estas extensões têm vindo desde então a desaparecer ou então os seus elementos têm sido incorporados no padrão principal da linguagem; a extensão da linguagem que ainda persiste é a OpenMP, que é uma extensão multiplataforma para programação de memória partilhada. Uma extensão recente, CoArray Fortran, tem como objectivo a promoção de programação paralela.

## Padrões

[editar | editar código fonte]

Os padrões abaixo foram publicados pela Organização Internacional de Normalização (ISO) em conjunto com a Comissão Eletrotécnica Internacional (IEC), e refletem as implementações atuais do Fortran:

* ISO/IEC 1539-1:2018. Título: Information technology - Programming languages - Fortran - Part 1: Base language. 646 págs. É informalmente conhecido como Fortran 2018.
* ISO/IEC 1539-2:2000. Título: Information technology - Programming languages - Fortran - Part 2: Varying length character strings. 26 págs. Adotado sem modificações desde o Fortran 2003.

## Exemplos de código

[editar | editar código fonte]

Ver artigo principal: Programa Olá Mundo

### em FORTRAN 77

[editar | editar código fonte]

C 1 2 3 4
C234567890123456789012345678901234567890
PROGRAM HELLO
PRINT *, "HELLO WORLD!"    ! ← USANDO COMANDO PRINT
END

#### Resolvendo uma equação de 2°. grau

[editar | editar código fonte]

C 1 2 3 4 5 6
C2345678901234567890123456789012345678901234567890123456789012345
PROGRAM BASKHARA

REAL :: A,B,C, DELTA, X1,X2, RE, IM

PRINT *, "Este programa resolve uma equação de 2o.grau"
PRINT *, "no formato: a*x**2 + b*x + c = 0"

PRINT  10, "Digite a, b, c: "
10   FORMAT( A, 1X, $)
20   READ(*, *, ERR=20)A, B, C

DELTA= B**2-4.0*A*C

IF( DELTA.GT.0 )THEN      ! (DUAS RAÍZES REAIS)
X1= ( -B-SQRT(DELTA) ) / ( 2.0*A )
X2= ( -B+SQRT(DELTA) ) / ( 2.0*A )
PRINT *, "RAIZES:  X1= ", X1
PRINT *, "X2= ", X2
ELSE
IF( DELTA.EQ.0 ) THEN ! (DUAS RAÍZES REAIS IGUAIS)
X1= -B / ( 2.0*A )
X2= X1
PRINT *, "RAIZES: X1=X2= ", X1
ELSE                      ! (DUAS RAÍZES COMPLEXAS)
RE= -B / ( 2.0*A )
IM= SQRT( -DELTA ) / ( 2.0*A )
PRINT *, "RAIZES COMPLEXAS: X1= ", RE,"- ", IM, "i"
PRINT *, "X2= ", RE, "+ ",IM, "i"
END IF
END IF

END PROGRAM BASKHARA

### em Fortran 90

[editar | editar código fonte]

#### tabela de graus -> radians

[editar | editar código fonte]

PROGRAM DEGRAD
! Declaracao das variaveis
INTEGER DEG
REAL RAD, COEFF
! Inicio do programa
WRITE ( *, 10)
10 FORMAT      (' ',20('*') /                                        &
&             '* Degres * Radians *' /                            &
&             ' ', 20('*') )
! Corpo do programa
COEFF = (2.0 * 3.1416) / 360.0
DO DEG = 0, 90
RAD = DEG * COEFF
WRITE ( *, 20) DEG, RAD
20 FORMAT         (' *  ',I4,'  * ',F7.5,' *')
END DO
! Fim da tabela
WRITE ( *, 30)
30 FORMAT      (' ',20('*') )
! Fim do programa
STOP
END PROGRAM DEGRAD

### em Fortran 95

[editar | editar código fonte]

program ola
print*,"Olá Mundo!"
end program ola

#### Área da superfície do cilindro

[editar | editar código fonte]

program cilindro
! Calcula a área de um cilindro.

! Declara as variáveis e constantes.
implicit none ! Requer que todas as variáveis sejam declaradas
integer :: ierr
real :: raio,altura,area
real , parameter :: pi = 3.14159

! Pergunta ao usuário o raio e a altura e lê os valores.
write (*,*) "Entre com o raio e a altura, 'q' para sair."
read (*,*,iostat=ierr) raio,altura

! Se o raio e a altura não puderam ser lidos da entrada, termina o programa.
if (ierr /= 0) stop "finalizando o programa"

! Calcula a área. O sinal ** significa "eleva a uma potência".
area = 2*pi*(raio**2 + raio*altura)

! Escreve as variáveis de entrada (raio, altura) e a saida (área) na tela.
write (*,"(1x,'raio=',f6.2,5x,'altura=',f6.2,5x,'area=',f6.2)") raio,altura,area
end do
end program cilindro

## Notas

1. ↑ As versões iniciais da linguagem eram conhecidas como FORTRAN, mas a tipografia em caixa alta foi ignorada na representação das versões recentes da linguagem, começando a partir do Fortran 90.

## Referências

1. ↑ «Overall Options - Using the GNU Compiler Collection (GCC)». gcc.gnu.org (em inglês). Consultado em 13 de dezembro de 2017
2. ↑ a b c Reid, John (13 de março de 2023). [https:/ss/wg5-fortran.org/N2201-N2250/N2212.pdf «The new features of Fortran 2023»] Verifique valor `|url=` (ajuda) (PDF). wg5-fortran.org. Consultado em 6 de janeiro de 2024
3. ↑ a b «WG5 Fortran - Fortran 2023». wg5-fortran.org. Consultado em 6 de janeiro de 2024
4. ↑ a b c Rassokhin, Dmitrii (7 de fevereiro de 2020). «The C++ programming language in cheminformatics and computational chemistry». Journal of Cheminformatics (1). 10 páginas. ISSN 1758-2946. PMC 7006409. PMID 33431041. doi:10.1186/s13321-020-0415-y. Consultado em 6 de janeiro de 2024
5. ↑ a b Oliveira, Suely; Stewart, David E. (2006). Writing Scientific Software: A Guide to Good Style. Cambridge: Cambridge University Press. p. x. doi:https://doi.org/10.1017/CBO9780511617973c Verifique `|doi=` (ajuda). "Fortran used to be the clear language of choice for scientific software. That has changed. Much scientific software is now written in C, C++, Java, Matlab, Ada, and languages other than Fortran."
6. ↑ a b Arvanitou, Elvira-Maria; Ampatzoglou, Apostolos; Chatzigeorgiou, Alexander; Carver, Jeffrey C. (1 de fevereiro de 2021). «Software engineering practices for scientific software development: A systematic mapping study». Journal of Systems and Software. 110848 páginas. ISSN 0164-1212. doi:10.1016/j.jss.2020.110848. Consultado em 9 de janeiro de 2024
7. ↑ a b c Betcke, Timo; Scroggs, Matthew. «Languages for High-Performance Computing — Techniques of High-Performance Computing - Lecture Notes». tbetcke.github.io. Consultado em 6 de janeiro de 2024
8. ↑ a b «FORTRAN | Definition, Meaning, & Facts | Britannica». www.britannica.com (em inglês). Consultado em 7 de julho de 2022
9. ↑ a b Shipman, Galen M.; Randles, Timothy C. (3 de maio de 2023). «An evaluation of risks associated with relying on Fortran for mission critical codes for the next 15 years». Los Alamos National Laboratory. Consultado em 6 de janeiro de 2024
10. ↑ «The concepts of HPC: The formalization of hierarchical massively parallel computing | IEEE Conference Publication | IEEE Xplore». ieeexplore.ieee.org. Consultado em 6 de janeiro de 2024
11. ↑ a b c d Backus, John (outubro–dezembro de 1998). «The History of Fortran I, II, and III» (PDF). IEEE Annals of the History of Computing. 20 (4): 68–78. doi:10.1109/85.728232. Consultado em 2 de fevereiro de 2022 .
12. ↑ Padua, David (janeiro–fevereiro de 2000). «The Fortran I Compiler» (PDF). University of Illinois: IEEE. Computing in Science and Engineering (CiSE). the Top Algorithms. 2 (1): 70–75. Bibcode:2000CSE.....2a..70P. doi:10.1109/5992.814661. Consultado em 2 de fevereiro de 2022
13. ↑ «CSDL | IEEE Computer Society». www.computer.org. Consultado em 6 de janeiro de 2024
14. ↑ a b Gustafsson, Bertil (2018). «Scientific Computing». Texts in Computational Science and Engineering (em inglês). ISSN 1611-0994. doi:10.1007/978-3-319-69847-2. Consultado em 28 de janeiro de 2024
15. ↑ Demmel, James; Dongarra, Jack; Langou, Julie; Langou, Julien; Luszczek, Piotr; Mahoney, Michael; Mahoney, Michael; Mahoney, Michael (2020). «Prospectus for the Next LAPACK and ScaLAPACK Libraries: Basic ALgebra LIbraries for Sustainable Technology with Interdisciplinary Collaboration (BALLISTIC)». icl.utk.edu. Consultado em 9 de fevereiro de 2024
16. ↑ Veja aqui o site de Working Group 5 e do History-Computer para mais informações sobre a evolução.
17. ↑ a b ALT, Franz F. e RUBINOFF, Morris (1967). «Standards for Computers and Information Processing». Advances in Computers. New York and London: Academic Press (Elsevier). pp. 148–9 .
18. ↑ «Standard Fortran 66» (PDF). Consultado em 4 de fevereiro de 2022
19. ↑ a b YouTube - Most popular programming languages 1965-2022.
20. ↑ «Standard Fortran 77» (PDF). Consultado em 25 de setembro de 2012
21. ↑ «MIL-STD-1753, Military Standard: Fortran, DOD Supplement to American National Standard X3.9-1978» (PDF). Consultado em 25 de setembro de 2012
22. ↑ «Standard Fortran 90» (PDF). Consultado em 25 de setembro de 2012. Arquivado do original (PDF) em 22 de novembro de 2010
23. ↑ «Standard Fortran 95» (PDF). Consultado em 25 de setembro de 2012. Arquivado do original (PDF) em 22 de novembro de 2010
24. ↑ da Cunha, Rudnei Dias, "Programação Científica em Fortran 95", Clube de Autores, Porto Alegre, 2010. ISBN 978-85-910277-0-5.
25. ↑ «Standard Fortran 2003» (PDF). Consultado em 25 de setembro de 2012. Arquivado do original (PDF) em 22 de novembro de 2010
26. ↑ «Standard Fortran 2008» (PDF). Consultado em 25 de setembro de 2012. Arquivado do original (PDF) em 22 de novembro de 2010
27. ↑ N1836, Summary of Voting/Table of Replies on ISO/IEC FDIS 1539-1, Information technology - Programming languages - Fortran - Part 1: Base language ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1836.pdf PDF ( 101 KiB)
28. ↑ «Standard Fortran 2018» (PDF). Consultado em 3 de fevereiro de 2022 .
29. ↑ «Doctor Fortran in "Eighteen is the new Fifteen"». Software.intel.com. Consultado em 20 de novembro de 2017
30. ↑ «Further Interoperability of Fortran with C». ISO. Consultado em 1 de fevereiro de 2022
31. ↑ «Additional Parallel Features in Fortran». ISO. Consultado em 1 de fevereiro de 2022
32. ↑ GNU Fortran 77 (g77) Legacy Site.
33. ↑ GCC Wiki - GFortran
34. ↑ gfortran.org
35. ↑ Site oficial do g95.
36. ↑ «Como compilar g77 com uma versão recente de gcc ?». Consultado em 25 de julho de 2012. Arquivado do original em 23 de setembro de 2009
37. ↑ «g77 para o Windows». Consultado em 25 de julho de 2012. Arquivado do original em 2 de setembro de 2011 site oficial USGS
38. ↑ g77 para MacOS X
39. ↑ g77 para MS-DOS no site Delorie Software.

## Ligações externas

[editar | editar código fonte]

* Programação em Fortran no Linux
* Early Fortran Manuals
* The Fortran Company: compilers, books, tutorials, consulting
* Fortran Open Directory category
* Usenet forum: comp.lang.fortran
* Fortran 90, 95 and 2003 information
* USER NOTES ON FORTRAN PROGRAMMING (UNFP)
* Unit 7.1 FORTRAN 77 – Part of ASPIRE's textbook in Computational Science
* Unit 7.2 FORTRAN 90 – Ditto
* How Not to Write FORTRAN in Any LanguageThere are characteristics of good coding that transcend all programming languages.
* Debugging tool for FORTRAN and its derivatives.
* Professional Programmer's Guide to Fortran77

Controle de autoridade|

* : Q83303
* BNE: XX531008
* BNF: 11931442r
* EBID: ID
* GND: 4017984-9
* JSTOR: fortran
* LCCN: sh85050987
* Treccani: fortran

|

* v
* d
* e

Linguagens de programação

Esotéricas * Comparação * História * Turing completude * Programa Olá Mundo * Algoritmo TPK * Quine

* Ada
* Assembly
* BASIC
* C
* C++
* C#
* COBOL
* Dart
* Elixir
* Erlang
* Fortran
* Go
* Haskell
* Java
* JavaScript
* Julia
* Kotlin
* Lisp
* Lua
* ML
* Pascal
* Perl
* PHP
* Python
* R
* Ruby
* Rust
* Scala
* Shell
* Smalltalk
* SQL
* Swift
* mais...

Categoria * Lista

* v
* d
* e

IBM

História|

* História da IBM
* Fusões e aquisições
* Pense (lema)
* Sistemas operacionais

Produtos|

| Hardware|

* Blue Gene
* Microprocessador Cell
* Mainframe
* PC
* Gestão da Informação
* Quantum
* Q System One
* Q System Two
* Eagle
* Rational Software
* Selectric
* ILOG
* Tivoli: Service Automation Manager
* Redbooks

|

Outros|

* alphaWorks
* Connections
* Criminal Reduction Utilising Statistical History
* Fortran
* Mashup Center
* PowerPC
* PureQuery
* SPSS
* Watson

Entidades
empresariais|

* Global Services
* jStart
* Red Hat
* Research
* International
* The Weather Company
* Weather Underground

Instalações|

* Torres
* Montreal
* Atlanta
* Software Labs
* Rome
* Toronto
* IBM Buildings
* Chicago
* Johannesburg
* Seattle
* Research Labs
* Austin
* China
* Tokyo
* Zurich
* Haifa
* India
* Almaden
* Instalações
* Hakozaki
* Yamato
* IBM Scientific Center
* Hursley House
* Canada Head Office Building
* Thomas J. Watson Research Center
* IBM Rochester
* Somers Office Complex

Iniciativas|

* Academy of Technology
* Centers for Advanced Studies: CASCON
* Deep Thunder
* IBM Fellow
* IBM Distinguished Engineer
* Pulse conference
* The Great Mind Challenge
* DeveloperWorks: Develothon
* Linux Technology Center
* IBM Virtual Universe Community
* Smarter Planet

Invenções|

* Caixa eletrônico
* Perfuradora de cartões
* Disco rígido
* Disquete
* DRAM
* Modelo relacional
* Selectric Typewriter
* Swap
* Código Universal de Produtos
* Cartão magnético
* SABRE airline reservation system
* Microscópio de corrente de tunelamento

Terminologia|

* GSGI
* Commercial Processing Workload
* Consumability
* Technology dividend
* E-business

CEOs|

* Thomas John Watson (1914–1956)
* T. J. Watson, Jr. (1956–1971)
* Thomas Vincent Learson (1971–1973)
* F. T. Cary (1973–1981)
* John Roberts Opel (1981–1985)
* John Fellows Akers (1985–1993)
* Louis Vincent Gerstner (1993–2002)
* Samuel J. Palmisano (2002–2011)
* V. M. Rometty (2012-2020)
* Arvind Krishna (2020- )

Conselho de
administração|

* Alain Belda
* William R. Brody
* Kenneth Chenault
* Michael L. Eskew
* David Farr
* Shirley Ann Jackson
* Andrew N. Liveris
* James McNerney
* James W. Owens
* Samuel J. Palmisano
* Virginia M. Rometty
* Joan E. Spero
* Sidney Taurel
* Lorenzo Zambrano

Outros|

* Deep Thought
* Common Public License/IBM Public License
* Customer engineer
* Dynamic infrastructure
* IBM e o Holocausto
* IBM international chess tournament
* Lucifer cipher
* Mathematica
* SHARE computing
* ScicomP

* Portal das tecnologias de informação

*[ABW]: A Biblioteca da Wikipédia
*[v]: Ver esta predefinição
*[d]: Discutir esta predefinição
*[e]: Editar esta predefinição