přejít na obsah přejít na navigaci

Linux E X P R E S, Fortran

Fortran

Lukáš Faltýnek představuje další programovací jazyk.


Přestože mnozí dnes jazyk Fortran řadí do kategorie dědečků, což bezesporu k ročníku svého zrodu je, nedá se o něm rozhodně říct, že by patřil do domova důchodců, a tak z aktivního světa současných počítačových jazyků nadobro zmizel.

Fortran je akronymem z FORmula TRANslator. Do verze Fortran 90 se název Fortran psal kapitálkami - FORTRAN. Teprve pro verzi Fortran 90 a dále se oficiálně používají malá písmena. Bez zajímavosti není ani rok 1960, kdy firma IBM doporučovala Fortran zapisovat jako FØRTRAN. Protože se dnes velmi často používá Fortran místo FORTRAN, není ani tento text výjimkou.

Období vzniku Fortranu spadá do rozmezí let 1954-1957, kdy desetičlenný tým vývojářů vedený Johnem Backusem (1924) stál před nelehkým úkolem vytvořit vyšší programovací jazyk, který by zjednodušil a usnadnil programování širší veřejnosti. Vývoj jazyka financovala společnost IBM a dle původních propočtů nemělo jeho vytvoření zabrat více než půl roku. Jak už to ale u obdobných projektů chodí, celý vývoj se protáhl na dlouhé tři roky.

Světu byl Fortran představen v únoru roku 1957 na Western Joint Computer Conference v Los Angeles, kde společnost IBM uspořádala jeho veřejnou demonstraci. Při této příležitosti, krátce před zahájením konference, byli někteří zákazníci požádáni o vyřešení několika úloh s použitím assembleru. Poté se jejich ručně vytvořené programy srovnávaly úlohami zapsanými ve Fortranu. Bylo ukázáno, že kód, vygenerovaný kompilátorem Fortranu, byl mnohem rychlejší než kód zapsaný v assembleru.

První kompilátor Fortranu byl vytvořen pro počítač IBM 704 a programy se zapisovaly na děrné štítky. Z tohoto důvodu byla dána přesná pravidla pro šířku řádku. S postupným přechodem na magnetická média se délka řádku řádku rozšiřovala, a tak Fortran 77 byl poslední verzí, která tyto artefakty počítačové historie obsahovala.

Před verzí Fortranu 77 byly realizovány verze Fortran I (1957), Fortran II (1958), Fortran IV (1961) a Fortran 66 (1966). Fortan III byl navržen v roce 1958, ale protože dovoloval vkládat kód v assembleru, oficiálně nikdy nevyšel. Tvůrci se domnívali, že by tak ztratil koncept vyššího programovacího jazyka, s jehož ideou byl především vytvořen.

Fortran 77 (1977) byl standardizován ANSI. Stejně pak i Fortran 90 (1990), který od Fortranu 77 doznal značných změn, a Fortran 95 (1995). Poslední verzí je dnes Fortran 2003 (2003). Protože verze Fortranu nejsou mezi sebou na 100 % zpětně kompatibilní, je na to potřeba myslet při přechodu na vyšší verzi či u přistoupení k rozpracovanému projektu, kde si případně můžeme verzi zvolit. Taktéž v mnoha implementacích Fortranu nalezneme některá rozšíření, která nevyhovují ANSI, a tak i je musíme brát na vědomí.

Kompilátorů Fortranu existuje mnoho. Z komerčních si jmenujme například Absoft, nebo Lahey/Fujitsu Fortran. Z volně šiřitelných pak GNU Fortran 95 nebo Open Watcom. Kromě kompilátorů existuje i řada užitečných nástrojů. Pro Linux například parser Forcheck pro kontrolu syntaxe, Source Navigator jako IDE, nebo f2c, který nám umožní konverzi programů napsaných ve Fortranu do jazyka C.

Syntaxe Fortranu je velmi srozumitelná. Programování respektive řešení úloh v něm pak relativně snadné. Dnes se nejčastěji setkáme s Fortranem 77, Fortranem 90 a Fortranem 95. Protože ve Fortranu 90 byla oproti Fortranu provedena výrazná rozšíření, pojďme si ve zkratce říct jaká. Tím se zároveň dostaneme do obrazu, co přibližně od Fortranu, jakožto imperativního jazyka, očekávat.

Ve Fortranu 90 oproti Fortranu 77 již nemusíme dbát na přesnou pozici znaků. Můžeme používat pole, dynamicky alokovat paměť, pracovat s ukazateli, definovat vlastní typy, používat moduly, vykonávat rekurzivní funkce, operace s maticemi. Nadto částečně umožňuje objektový přístup.

Ukázka programu Hello World:

print*,"Hello World!"
end program hello

Ukázka programu pro výpočet obsahu kruhu:

program kruh
real r, obsah, pi
parameter (pi = 3.14159)
write (*,*) 'Zadej polomer r:'
read (*,*) r
area = pi*r*r
write (*,*) 'Obsah = ', obsah
stop
end

S praktickým využitím Fortranu se dnes můžeme setkat především ve zpracovaní inženýrských a matematických úloh. Příklady použití Fortranu nalezneme u velkých společností, jakými jsou Fujitsu, HP, IBM, Intel a Sun. Pro zajímavost pak například v CDH (Command and Data Handling systém) systému na sondě Galileo. A samozřejmě i v jiných velkých systémech, kde je potřeba rychle provádět náročné matematické výpočty.

Nahoru

Odkazy

Příspěvky

Kolik článků
18. 01. 2006, 14:27:45
Odpovědět  Odkaz 
Kolik článků o jazycích ještě vyjde?

Díky.
Lukáš Zapletal Re: Kolik článků
zapletal 19. 01. 2006, 18:52:24
Odpovědět  Odkaz 
Seriál zatím nekončí, nemějte obavy.
Jirka Vrba použití F77
baf 19. 01. 2006, 21:39:37
Odpovědět  Odkaz 
No hlavní přenost Fortranu je jeho rychlost a přehlenost. Když jsem programoval řešení velkých soustav rovnic, tak s Fortranem jsem měl nejlepší výsledky. U několikadeních výpočtů už má vliv každé zrychlení. Jedinou podstatnou slabinou FORTRANu77 je že neumí dynamicky alokovat pamět.
Jinak překladač Fortranu je prakticky na každém výpočetním Unixovém stroji.

Za zmínku stojí ještě preprocesor g77 pro gcc, který je součástí prakticky každé distribuce linuxu, takže kdo si chce FORTAN77 zkusit ...
Re: použití F77
19. 01. 2006, 22:44:58
Odpovědět  Odkaz 
Novy standard fortranu podporovany Intelovskym ifc nebo GNU g95 (soucast prekladacu gnu od verze 4.0 vys) je uz daleko lepsi a tak ani dynamicke alokace nejsou problem. Dokonce vetsina prekladacu ma i moznost kontroly indexu takze se s nimi pracuje mnohem lip nez napriklad v C/C++.
Re: použití F77
20. 01. 2006, 10:41:17
Odpovědět  Odkaz 
Lepší výsledky než v čem? Co srovnáváte? V jazyce C by to přeci mělo jít napsat stejně rychle, možná i rychleji. Předpokládám ale s větším úsilím...
Jirka Vrba Re: použití F77
baf 20. 01. 2006, 14:55:58
Odpovědět  Odkaz 
Srovnaval jsem to s C, C++ bylo jeste pomalejsi. Jednalo se reseni velkych soustav rovnic, zkousel jsem to na PC s linuxem a na 8 procesorovem serveru s IRIXem asi tak pred 6 lety. S vetsim usilim by to snad v C jelo stejne, ale rychleji asi ne. Pritom preklac g77 to stejne nejdriv prevede do C a pak kompiluje :).

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Lukáš Faltýnek

Lukáš Faltýnek

Vystudoval informační management na Univerzitě Hradec Králové. Pracuje jako analytik/programátor. Láskou k počítačům vzplanul v roce 1986, kdy dostal svůj první počítač Atari 800 XL. S Unixem se poprvé setkal před dvanácti lety. Chvíli nato pak s Linuxem, který si pro jeho svobodu zamiloval. Je ženatý a má dvě děti. Mezi jeho koníčky patří literatura, kinematografie a cestování.


  • Distribuce: Ubuntu

| blog