From Wikipedia, the free encyclopedia
La família de lenguaiges de porgramaçon coincida globalmente cumo Fortran fui zambolbida a partir de la década de 1950 i cuntina a ser ousada hoije an die. L nome ye un acrónimo de la spresson "IBM Mathematical FORmula TRANslation Systen"
Las bersones eniciales de la lenguaige éran coincidas cumo FORTRAN, mas la capitalizaçon fui eignorada an bersones recentes de la lenguaige ampeçando a partir de l Fortran 90. Ls padrones oufeciales de la lenguaige refíren- se a eilha atualmente cumo "Fortran".
La lenguaige Fortran ye percipalmente ousada an Ciéncia de la Cumputaçon i Análeze Numérica. Anque tener sido einicialmente ua lenguaige de porgramaçon procedural, bersones recentes de Fortran possuen caratelísticas que permiten suportar porgramaçon ourientada por oubjetos.
Fui la purmeira lenguaige de porgramaçon amperatiba. L purmeiro cumpilador de FORTRAN fui zambolbido pa l IBM 704 an 1954-57 por ua eiquipe de la IBM xefiada por John W. Backus. L cumpilador era outimizado, pus ls outores acraditában que naide eirie ousar essa lenguaige se la sue prestaçon nun fusse cumparable cula de la lenguaige assembly. Le langage Fortran la cunnu de nombreuses ébolutiones[1] :
antre outras melhories, facelita la porgramaçon de struturas cun blocos. « IF / THEN / ELSE / ENDIF ». An 1978, ua stenson antroduzia antre outros « DO WHILE / END DO »[7]. Ua caratelística marcante de l FORTRAN 77 son las regras d'alinhamiento de las linhas de l porgrama, ua hardança de l'era de ls cartones perfurados. Ouriginalmente, la sintaxe de l FORTRAN 77 fui defenida de forma que cada linha de l porgrama fusse scrita nun carton perfurado, cun un carater por coluna, oubedecendo las seguintes regras:
Las mesmas regras cuntinórun an bigor , mesmo depuis de ls cartones perfurados tenéren caído an desuso i ls porgramas an FORTRAN 77 passáren a ser scritos diretamente an eiditores de testo.
Na mesma época que l FORTRAN 77 surgiu, yá eisistian outras lenguaiges de porgramaçon cumo l C, Pascal, Ada i Modula, qu'habien antroduzido nuobos cunceitos an porgramaçon ó fundamentado outros cumo a tipaige splícita de bariables i la defeniçon de nuobos tipos de dados, l que permitie al porgramador defenir struturas de dados mais adequadas para resulber porblemas; alocaçon dinámica de dados; subprogramas recursibos; cuntrole de sceçon (ua de las percipales caratelísticas de la lenguaige Ada); i stablecimiento de módulos.
L FORTRAN 77 nun ouferecie nanhun desses recursos i ampeçou a ser pouco a pouco abandonado pula quemunidade científica que passórun a recorrer l'outras lenguaiges de porgramaçon.
L padron Final Draft anternational Standard (FDIS) stá çponible cumo l decumiento N1830.[15] Outro amportante suplemiento al Fortran 2008 ye la specificaçon técnica (TS) 29113 de la ISO an Anglés Further Anteroperabelity of Fortran with C,[16][17] que fui submetida para aprobaçon de l ISO an Maio de 2012. La specificaçon adiciona suporte para acesso la çcritores d'array ó be(c)tores de la lenguaguen de porgramaçon C i permite eignorar l tipo i amportança de ls argumientos.
L cumpilador libre gc permite la cumpilaçon cul Fortran 77 (cumpilador g77[18], até al 3.4.6) i depuis l 90 i 95 (a partir de gc 4.0.0, que sustitui g77 para gfortran[19] · [20]), pa las nuobas plataformas, l cumpilador g95[21] ye tamben baseado ne l gc, mas yá nun era mantido depuis de 2011. L cumpilador g77, agora çtribuido separadamente de l gc, puode se ancluído ne l gc para cumpilart[22], i ls sou binarios son inda çponibelizados para ciertos modelos de cumputadores[23] · [24] · [25]. Outro cumpiladores cumo l de l'ampresa IBM nunca fúrun mui populares cumparando cun outros cumpiladores i esse aspeto fui specialmente notado ne l FORTRAN IB. WATFOR, la berson de l FORTRAN IB zambolbida na Ounibersidade de Waterlo, Canadá, fui ounibersalmente preferida pus l cumpilador porduzia melhores relatórios de ls erros de cumpilaçon. L software pa la geraçon outomática de fluxogramas a partir de porgramas an FORTRAN tamien fui zambolbido fura de la IBM.
Cumpiladores Fortran para processamiento paralelo i/ó çtribuído an Cluster of Workstationes (COW) ó Clustes of PCs (agrupamientos de PCs):
L Fortran permite la criaçon de porgramas que priman pula belocidade d'eisecuçon. Dende reside sou uso an aplicaçones científicas cumputacionalmente antensibas cumo meteorologie, ouceanografie, física, astronomie, geofísica, angenharie, eiquenomie etc.
Einicialmente, la lenguaige dependia de la formataçon percisa de l código-fuonte i de l'uso stensibo de númaros de depoimiento i de depoimientos goto
. Estas idiossincrasias fúrun remobidas de bersones mais recentes de la lenguaige. Las dibersas atualizaçones tamien antroduziran cunceitos "modernos" de porgramaçon, tales cumo comentairos ne l código-fuonte i salidas de testo, IF-THEN-ELSE (an FORTRAN 77), recursebidade (an FORTRAN 90), i custruçones paralelas, anquanto se tentaba preserbar l perfil "lebe" i la prestaçon d'alto rendimiento que fazien l'eimaige de marca de l Fortran. Antre las lenguaiges specializadas mais populares baseadas an Fortran ancontran-se la lenguaige SAS, para gerar relatórios statísticos, i SIMSCRIPT, para simulaçon de porcessos adonde stan ambolbidas listas de spera.
Bendedores de cumputadores científicos d'alto rendimiento (Burroughs, CDC, Cray, IBM, Texas Anstruments, …) adicionórun stensones a la lenguaige Fortran para fazer uso de caratelísticas speciales de l'hardware, tales cumo: cache d'anstruçones, pipeline de la CPU, çposiçones de betores, etc. Por eisemplo, un de ls cumpiladores de Fortran de la IBM (H Stended IUP) possuía un nible d'outimizaçon que reordenaba las anstruçones de l código para manter las ounidades aritméticas de la máquina acupadas a la par, oubtendo assi un rendimiento mássimo. Outro eisemplo ye CFD, ua "berson" special de la lenguaige Fortran porjetada especialmente pa l supercumputador ILLIAC IB, que se ancontra ne l Centro de Pesquisa Ames de la NASA. Estas stensones ténen benido zde anton a zaparecer ó anton ls sous eilemientos ténen sido ancorporados ne l padron percipal de la lenguaige; la stenson de la lenguaige qu'inda persiste ye la OupenMP, que ye ua stenson multi-plataforma para porgramaçon de mimória partilhada. Ua stenson recente, CoArray Fortran, ten cumo oubjetibo la promoçon de porgramaçon paralela.
Ne l que fui la purmeira tentatiba de projeçon dua lenguaige de porgramaçon d'alto nible, la sintaxe de la lenguaige ye cunsidrada arcaica por muitos porgramadores que daprendírun lenguaiges mais modernas. Ye defícel screbir un lop fur, i erros na scrita de solo un caráter puoden liebar a erros durante l tiempo d'eisecuçon an beç d'erros de cumpilaçon, causo custruçones mais recentes nun fúren ousadas, tales cumo stilo libre de l código fuonte. Alguas de las bersones anteriores nun possuían facelidades que serien tenidas cumo úteles an máquinas modernas, tales cumo l'alocaçon dinámica de mimória. Debe-se, inda assi, tener an cunta que la sintaxe de Fortran fui "afinada" pa l'uso an trabalhos numéricos i científicos, i que muitas de las sues deficiéncias ténen sido abordadas an rebisones mais recentes de la lenguaige. Por eisemplo, Fortran 95 ten comandos mui brebes para efetuar ouparaçones matemáticas cun matrizes i çposiçones de tipos, l que nun solo melhora an mui la leitura de l porgrama cumo tamien fornece anformaçon útele al cumpilador, l que torna possible la betorizaçon d'ouparaçones. Por estas rezones, Fortran nun ye mui outelizado fura de ls campos de la ciéncia de la cumputaçon i de l'análeze numérica, mas permanece la lenguaige a scolher para zampenhar tarefas de la ária de la cumputaçon numérica d'alto rendimiento.
Ls dous padrones ambaixo refleten las amplementaçones atuales de Fortran:
C 1 2 3 4
C234567890123456789012345678901234567890
PROGRAM HELLO
PRINT *, "HELLO WORLD!" ! ← USANDO COMANDO PRINT
END
C 1 2 3 4 5 6
C2345678901234567890123456789012345678901234567890123456789012345
PROGRAM BASKHARA
C
REAL :: A,B,C, DELTA, X1,X2, RE, IM
C
PRINT *, "Este programa resolve uma equação de 2o.grau"
PRINT *, "no formato: a*x**2 + b*x + c = 0"
C
PRINT 10, "Digite a, b, c: "
10 FORMAT( A, 1X, $)
20 READ(*, *, ERR=20)A, B, C
C
DELTA= B**2-4.0*A*C
C
IF( DELTA.GT.0 )THEN ! (DUAS RAIZES 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 RAIZES REAIS IGUAIS)
X1= -B / ( 2.0*A )
X2= X1
PRINT *, "RAIZES: X1=X2= ", X1
ELSE ! (DUAS RAIZES 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
C
END PROGRAM BASKHARA
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
program ola
print*,"Olá Mundo!"
end program ola
program cilindro
! Calcula a área de um cilindro.
!
! Declara as variáveis e constantes.
implicit none ! Requer que todas as variáveis sejam declaradas -- Habilidade do Fortran 90.
integer :: ierr
real :: raio,altura,area
real , parameter :: pi = 3.14159
do
! 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
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.