Fortran

Fortran
Fortran acs cover.jpeg
Paradigmamulti-paradigma: estruturada,
imperativa (procedural,
orientada a objetos),
genérica
Surgido em1957; há 61 anos
Última versãoFortran 2008 (ISO/IEC 1539-1:2010) / 2010; há 8 anos
Criado porJohn Backus & IBM
Estilo de tipagem:forte, estática e manifesta
Dialetos:Absoft, Cray, gFortran, G95, IBM XL Fortran, Hitachi, Intel, Lahey/Fujitsu, NAG, Open Watcom, Pathscale, PGI, Silverfrost, Oracle Solaris Studio, Visual Fortran, outros
Influenciada porSpeedcoding
InfluenciouALGOL 58, BASIC, C, Chapel, CMS-2, Julia, PL/I, PACT I, MUMPS e Ratfor
Extensão do arquivo:.f, .for, .ftn, .f90, .f95, .f03, .f08, .f15[1]

A família de linguagens de programação conhecida globalmente como Fortran foi desenvolvida a partir da década de 1950 e continua a ser usada hoje em dia. O nome é um acrônimo da expressão "IBM Mathematical FORmula TRANslation System"

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. Os padrões oficiais da linguagem referem-se a ela atualmente como "Fortran".

A linguagem Fortran é principalmente usada em Ciência da computação e Análise numérica. Apesar de ter sido inicialmente uma linguagem de programação procedural, versões recentes de Fortran possuem características que permitem suportar programação orientada por objetos.

História, versões e revisões

Foi a primeira linguagem de programação imperativa. O primeiro compilador de FORTRAN foi desenvolvido para o IBM 704 em 1954-57 por uma equipe da IBM chefiada por John W. Backus. O compilador era optimizado, pois os autores acreditavam que ninguém iria usar essa linguagem se a sua prestação não fosse comparável com a da linguagem assembly. A linguagem Fortran conheceu as seguintes evoluções:[2] :

  • 1956. Fortran II é uma linguagem de programação criada após a "original" FORTRAN em 1954.[3] Esta originou outras linguagens como BASIC
  • 1958. Fortran III Versão que nunca foi disponibilizada.
  • 1962. Fortran IV A linguagem Fortran foi largamente adaptada por cientistas para a escrita de programas numericamente intensivos, o que encorajou os produtores de compiladores a escrever compiladores que gerassem código mais rápido.
  • 1965. Documento ECMA Fortran[4]
  • 1966. Fortran 66 (ANSI X3.9-1966)[5], quando a primeira versão padronizada da linguagem, conhecida como FORTRAN IV ou FORTRAN 66, estava disponível, o Fortran já era a linguagem mais usada pela comunidade científica. FORTRAN IV foi padronizada pela American Standard Association (ASA).[6] 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 e a capacidade de lidar com número complexo, além de muitas outras características, ajudaram em sua ampla difusão dentro da comunidade científica.
  • 1978. Fortran 77 (ANSI X3.9-1978)[7],

entre outras melhorias, facilita a programação de estruturas com blocos. « IF / THEN/ / ELSE / ENDIF ». Em 1978, uma extensão introduzia entre outros « DO WHILE / END DO »[8]. Uma característica marcante do FORTRAN 77 são 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.

  • 1980. Fortran 8X. Durante a década de 1980, foi lançada uma nova revisão do 8x que incorporava todos os conceitos acima citados (exceto a tipagem explícita e o controle de exceção).
  • 1990. Fortran 90 (ANSI X3.198-1992)[9] : 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. A versão final desta revisão foi apresentada com o nome de FORTRAN 90. FORTRAN 90 é tão eficiente quanto o C e o Pascal para os fins a que ela se destina. FORTRAN 90 trouxe uma novidade para o mundo das linguagens de programação: mecanismos para manipulação de arranjos, que não são oferecidos por nenhuma outra linguagem.[10]
  • 1995. Fortran 95 (ISO/IEC 1539-1:1997)[11] O padrão formal da linguagem mais recente, publicado em 1996, é conhecido como Fortran 95[12]. Esta revisão do FORTRAN acrescentou pequenas alterações ao FORTRAN 90, motivada pela necessidade de aproximar o padrão à linguagem High Performance Fortran ou 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.
  • 2003. Fortran 2003 (ISO/IEC 1539-1:2004)[13] : Desde 1997, o FORTRAN vem passando por um novo processo de revisão. O FORTRAN 2003 irá incorporar um conjunto de novos comandos que permitirão, entre outras coisas, o controle de exceções e programação orientada a objetos.
  • 2008. Fortran 2008 (ISO/IEC 1539-1:2010)[14]. O padrão mais recente, a ISO/IEC 1539-1:2010, conhecido informalmente como Fortran 2008, foi aprovado em Setembro de 2010.[15] Tal como o Fortran 95, sofreu pequenos melhoramentos, incorporando clarificações e correções ao Fortran 2003, assim como algumas novas funcionalidades, tais como:
  • Submodulos – facilidades estruturais adicionais para os módulos; substitui ISO/IEC TR 19767:2005
  • Co-array Fortran – 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.

O padrão Final Draft international Standard (FDIS) está disponível como o documento N1830.[16] Outro importante suplemento ao Fortran 2008 é a especificação técnica (TS) 29113 da ISO em Inglês Further Interoperability of Fortran with C,[17][18] que foi submetida para aprovação do ISO em Maio de 2012. 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.

Código FORTRAN num Cartão perfurado, mostrando as colunas de texto especializadas 1-5, 6 e 73-80.
En otros idiomas
العربية: فورتران
asturianu: Fortran
azərbaycanca: Fortran
беларуская: Fortran
български: FORTRAN
বাংলা: ফোরট্রান
bosanski: FORTRAN
català: Fortran
کوردی: فۆرتران
čeština: Fortran
Чӑвашла: Фортран
dansk: Fortran
Deutsch: Fortran
Ελληνικά: Fortran
English: Fortran
español: Fortran
eesti: Fortran
euskara: FORTRAN
فارسی: فورترن
suomi: Fortran
français: Fortran
Gaeilge: FORTRAN
עברית: Fortran
हिन्दी: फ़ोरट्रान
hrvatski: Fortran
magyar: Fortran
interlingua: FORTRAN
Bahasa Indonesia: Fortran
italiano: Fortran
日本語: FORTRAN
Taqbaylit: Fortran
қазақша: Фортран
한국어: 포트란
kurdî: Fortran
Latina: FORTRAN
lietuvių: Fortran
latviešu: Fortran
മലയാളം: ഫോർട്രാൻ
монгол: Фортран
Bahasa Melayu: Fortran
Mirandés: FORTRAN
မြန်မာဘာသာ: Fortran
Nederlands: Fortran
norsk nynorsk: Fortran
norsk: Fortran
occitan: Fortran
polski: Fortran
română: Fortran
русский: Фортран
саха тыла: Fortran
Scots: Fortran
srpskohrvatski / српскохрватски: Fortran
Simple English: Fortran
slovenčina: Fortran
slovenščina: Fortran
shqip: Fortran
српски / srpski: Фортран
svenska: Fortran
తెలుగు: ఫోర్ట్రాన్
тоҷикӣ: Фортран
Türkçe: Fortran
українська: Фортран
Tiếng Việt: Fortran
中文: Fortran