Linguagem de programação Fortran

Visão Geral

Fortran, abreviação de "Formula Translation", é uma linguagem de programação de alto nível que é particularmente adequada para aplicações científicas e de engenharia. Foi uma das primeiras linguagens de programação desenvolvidas para computadores eletrônicos e evoluiu consideravelmente desde sua criação. Fortran permite a manipulação eficiente de dados em arrays e suporta cálculos matemáticos complexos, tornando-se uma linguagem de escolha para previsão numérica do tempo, física computacional e bioinformática, entre outros campos.

Aspectos Históricos

Criação

Fortran foi desenvolvido na década de 1950 pela IBM como uma linguagem projetada para computação numérica e computação científica. A primeira versão, Fortran I, foi lançada em 1957. A ideia central era criar uma linguagem que permitisse a cientistas e engenheiros escrever programas sem precisar conhecer as complexidades do hardware subjacente.

Evolução

Versões subsequentes do Fortran foram introduzidas, cada uma adicionando novos recursos e melhorando a usabilidade. O Fortran II seguiu logo em seguida, adicionando recursos de programação estruturada. Em 1966, o Fortran IV foi introduzido, que se tornou um padrão da indústria. O Fortran 77 (lançado em 1978) adicionou recursos como tipos de dados de caracteres e melhorou as capacidades de entrada/saída.

A partir de 1991, o Fortran 90 introduziu programação de arrays, programação modular, recursão e alocação dinâmica de memória. O Fortran 2003 e o Fortran 2008 aprimoraram ainda mais a linguagem com recursos como Programação Orientada a Objetos e melhor interoperabilidade com a linguagem de programação C. O padrão mais recente, Fortran 2018, trouxe melhorias adicionais, incluindo melhor compatibilidade e funcionalidade para processamento paralelo.

Estado Atual

O Fortran continua a ser amplamente utilizado em muitas disciplinas científicas e de engenharia, apoiado por compiladores modernos como o GNU Fortran (gfortran) e o Intel Fortran Compiler. Possui uma grande base de código legado, e muitas bibliotecas científicas são escritas em Fortran, tornando-se uma linguagem crítica em certos domínios.

Recursos de Sintaxe

Tipagem Forte

Fortran é uma linguagem de tipagem forte que requer declaração explícita dos tipos de variáveis. Por exemplo:

INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name

Manipulação de Arrays

Fortran se destaca na manipulação de arrays, permitindo operações em arrays inteiros com uma sintaxe simples.

REAL, DIMENSION(10) :: A
A = 2.0 * A  ! Multiplica cada elemento do array A por 2

Estruturas de Controle

Fortran fornece estruturas de controle convencionais, como loops e instruções condicionais.

DO i = 1, 10
   IF (A(i) > 0) THEN
       PRINT *, 'Positivo'
   END IF
END DO

Funções e Sub-rotinas

Fortran permite a definição de funções e sub-rotinas para programação modular.

FUNCTION square(x)
   REAL :: square
   REAL, INTENT(IN) :: x
   square = x * x
END FUNCTION square

Tipagem Implícita

Por padrão, o Fortran possui uma regra onde variáveis com nomes que começam com "I", "J", "K", "L", "M" ou "N" são implicitamente do tipo INTEGER. Isso pode ser substituído para maior clareza.

IMPLICIT NONE  ! Desabilita a tipagem implícita
INTEGER :: I
REAL :: R

Laços Do-While

Fortran suporta laços do-while para execução repetida com base em uma condição.

i = 1
DO WHILE (i <= 10)
   PRINT *, i
   i = i + 1
END DO

Tipos Derivados

Fortran possui tipos definidos pelo usuário, conhecidos como tipos derivados, que permitem definições de dados semelhantes a estruturas.

TYPE :: Person
   CHARACTER(len=20) :: name
   INTEGER :: age
END TYPE Person

TYPE(Person) :: p1

Suporte a Módulos

Fortran suporta módulos para encapsular dados e procedimentos, promovendo a reutilização e organização do código.

MODULE myModule
   CONTAINS
   SUBROUTINE mySubroutine()
       ! Implementação
   END SUBROUTINE
END MODULE

Uso de Ponteiros

Fortran suporta ponteiros que facilitam a gestão dinâmica de memória, semelhante a linguagens como C.

REAL, POINTER :: pA
ALLOCATE(pA(10))  ! Aloca dinamicamente um array

Interoperabilidade

Fortran possui recursos que criam interoperabilidade com C, permitindo programação em múltiplas linguagens.

INTERFACE
   FUNCTION c_function(x) BIND(C, NAME="c_function")
       INTEGER(C_INT) :: c_function(INTEGER)
   END FUNCTION c_function
END INTERFACE

Ferramentas de Desenvolvimento e Ambientes de Execução

Compiladores e Interpretadores

Os compiladores Fortran mais populares incluem:

Ambientes de Desenvolvimento Integrados (IDEs)

Embora o Fortran não seja tão comumente associado a IDEs modernas como algumas outras linguagens, vários IDEs o suportam:

Construção de Projetos

Construir um projeto em Fortran geralmente envolve criar arquivos fonte com extensão .f, .f90 ou .f95 e compilá-los usando um compilador Fortran. Um comando típico pode ser:

gfortran -o my_program my_source.f90

Aplicações do Fortran

Fortran é amplamente utilizado em computação científica, previsão numérica do tempo, modelagem climática, física computacional, química computacional e bioinformática. É particularmente conhecido por seu desempenho em cálculos numéricos pesados e simulações.

Comparação com Linguagens Similares

Os principais concorrentes do Fortran no campo da programação científica e de engenharia incluem:

Dicas de Tradução de Código Fonte

Fortran possui várias ferramentas de tradução de código fonte que podem ajudar os desenvolvedores a converter código legado para linguagens mais contemporâneas ou otimizar código existente. Algumas ferramentas incluem:

Essas ferramentas facilitam a transição de versões mais antigas do Fortran ou de paradigmas de programação completamente diferentes, enquanto ajudam a manter o desempenho e a funcionalidade.