• Programovací jazyk Fortran (Fortran). Walking Dead. Fortran

    Historie vzniku programovacího jazyka Fortran. stávající normy. Verze programovacího jazyka Fortran.

    Programy pro první počítače byly napsány programátory v jazycích pro strojové instrukce. Jedná se o velmi pracný a zdlouhavý proces. Mezi začátkem programu a začátkem jeho používání uplynula značná doba. Tento problém bylo možné vyřešit pouze vytvořením nástrojů pro automatizaci programování.
    Prvními „nástroji“, které ušetřily práci programátorům, byly podprogramy. V srpnu 1944 byl napsán první podprogram pro výpočet sinx pro reléový stroj Mark-I pod vedením Grace Hopper (programátorka, důstojnice amerického námořnictva).
    Nejednu Grace Hopperovou trápil problém s usnadněním práce programátorů. V roce 1949 vyvinul John Mauchly (jeden z tvůrců počítače ENIAC) systém SHORT Code, který lze považovat za předchůdce programovacích jazyků. vysoká úroveň. Programátor do formuláře zapsal problém k řešení matematické vzorce, převedl vzorce na dvoupísmenné kódy. Dále speciální program přeložil tyto kódy do binárního strojového kódu. J. Mauchli tak vyvinul jeden z prvních primitivních tlumočníků. A v roce 1951 G. Hopper vytvořil první kompilátor A-0. Jako první zavedla tento termín.

    První jazyky na vysoké úrovni: Cobol a Fortran
    V 50. letech 20. století začala skupina vedená G. Hopperem vyvíjet nový jazyk a kompilátor B-0. Nový Jazyk by umožnilo programování v jazyce blízkém běžné angličtině. Vývojáři jazyka vybrali asi 30 anglických slov, pro jejichž rozpoznání přišel G. Hopper s metodou, která se u operátorů budoucích programovacích jazyků zachovala: každé slovo obsahuje unikátní kombinaci prvního a třetího písmena. Díky tomu může překladač při generování strojového kódu programu ignorovat všechna ostatní písmena ve wordu.
    Potřebu vzniku takového systému, jehož jazyk je blízký hovorovému, spojoval G. Hopper s tím, že se bude rozšiřovat pole působnosti počítačů, v souvislosti s čímž se rozšíří okruh uživatelů. Podle G. Hoppera je třeba upustit od pokusů „proměnit je všechny v matematici".
    V roce 1958 dostal systém B-0 název FLOW-MATIC a byl zaměřen na zpracování komerčních dat. V roce 1959 byl vyvinut jazyk COBOL (Common Business Oriented Language) (Cobol) nezávislý na stroji. programovací jazyk vysoká úroveň pro odpovídajícího překladatele z tohoto jazyka. Poradce pro tvorbu jazyk COBOL G. Hopper znovu promluvil.
    V roce 1954 byla zveřejněna zpráva o stvoření jazyk FORTRAN(PŘEKLAD FORMULA) (Fortran). Rodištěm jazyka bylo sídlo IBM v New Yorku. Jedním z hlavních vývojářů je

    John Backus. Stal se také autorem NFB (Backus Normal Form), který se používá k popisu syntaxe mnoha programovacích jazyků. Ve stejném období se jazyk ALGOL stal populárním v evropských zemích a v SSSR. Stejně jako FORTRAN se zaměřil na matematické problémy. Implementovala pokročilou technologii programování té doby - strukturované programování.

    Fortran v SSSR.

    Fortran se objevil v SSSR později než na Západě, protože Algol byl zpočátku považován za slibnější jazyk v naší zemi. Důležitou roli při zavádění Fortranu sehrála komunikace sovětských fyziků s jejich kolegy z CERNu, kde se v 60. letech téměř všechny výpočty prováděly pomocí programů Fortran.

    První sovětský kompilátor Fortranu vznikl v roce 1967 pro stroj Minsk-2, ale velké slávy se nedočkal. Široké zavedení Fortranu začalo po vytvoření kompilátoru FORTRAN-DUBNA v roce 1968 pro stroj BESM-6. Počítače ES, které se objevily v roce 1972, již zpočátku měly překladač Fortran („vypůjčený“ od IBM/360 spolu s dalším softwarem).

    Normy

    Jazyk byl standardizován v rámci ANSI a ISO

    Byly vyvinuty standardy - Fortran 66, Fortran 77, Fortran 90, Fortran 95, Fortran 2003 a Fortran 2008.

    Standardizace programovacích jazyků vytváří předpoklady pro zvýšenou mobilitu software pro počítače jakékoli architektury. Standardizace Fortranu je jedním z důvodů dlouhověkosti jazyka, neboť právě díky standardizaci je možné využívat obrovské množství aplikačních programů, které za desítky let existence jazyka vznikly.

    Fortran je vysoce standardizovaný jazyk, a proto je snadno přenositelný na různé platformy. Existuje několik mezinárodních jazykových standardů:

    FORTRAN IV(později tvořil základ FORTRAN 66 (1966);

    FORTRAN 77(1978) mnoho vylepšení: datový typ řetězce a funkce pro jejich zpracování, blokové příkazy IF, ELSE IF, ELSE, END IF, příkaz INCLUDE pro začlenění fragmentu programu atd.

    Fortran 90(1991) výrazně revidovali jazykovou normu. Představil bezplatný formát pro psaní kódu. Objevil se dodatečné popisy IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST; řídicí struktury DO … END DO, DO WHILE,CYCLE , SELECT CASE, WHERE; práce s dynamickou pamětí (ALLOCATE, DEALLOCATE, NULLIFY); softwarové komponenty MODUL, SOUKROMÝ, VEŘEJNÝ, OBSAHUJE, ROZHRANÍ, POUŽITÍ, ZÁMĚR. Objevily se nové vestavěné funkce, především pro práci s poli, v jazyce se objevily prvky OOP

    Fortran 95(1997) - oprava předchozí normy Fortran 2003(2004) Další rozvoj podpory OOP v jazyce. Interakce operační systém Byly zavedeny operátor a konstrukce FORALL, které umožňují větší flexibilitu než operátor a konstrukce WHERE pro přiřazování polí a nahrazování těžkopádných smyček. FORALL umožňuje nahradit jakékoli přiřazení sekce nebo operátor a zejména klauzule WHERE poskytuje přístup k diagonále matice. Tento operátor je považován za slibný v paralelním počítání a přispívá k efektivnější paralelizaci než smyčky.

    Fortran 2003 (2004) Další vývoj Podpora OOP v jazyce. Interakce s operačním systémem. Byly také přidány následující funkce: 1. Asynchronní vstup/výstup dat 2. Prostředky interakce s jazykem. 3. Zlepšení dynamického umístění dat. Fortran 2008(2010) Norma předpokládá podporu jazyka paralelní počítání(Co-Arrays Fortran). Plánuje se také zvýšení maximálního rozměru polí na 15, přidání vestavěných speciálních matematických funkcí atd.

    Verze programovacího jazyka Fortran

    Programátoři, kteří vyvíjeli programy výhradně v assembleru, vyjádřili vážné pochybnosti o možnosti vysoce výkonného vysokoúrovňového jazyka, takže hlavním kritériem při vývoji kompilátorů Fortran byla účinnost spustitelného kódu. Pro tento jazyk bylo vytvořeno obrovské množství knihoven, od statistických komplexů až po balíčky satelitní kontroly, takže Fortran je i nadále aktivně používán. Pro paralelní superpočítače s více procesory existuje standardní verze Fortran WF (High Performance Fortran).

    Cobol (Cobol). Jedná se o kompilovaný jazyk pro aplikaci v ekonomické oblasti a řešení obchodních problémů, vyvinutý na počátku 60. let. Vyznačuje se velkou „upovídaností“ – její operátory někdy vypadají jako běžné anglické fráze. Cobol implementoval velmi výkonné nástroje pro práci s velkým množstvím dat uložených na různých externí média. V tomto jazyce bylo vytvořeno mnoho aplikací, které jsou dnes aktivně využívány.

    Algol (Algol). Kompilovaný jazyk vytvořený v roce 1960. Měl nahradit Fortran, ale kvůli své složitější struktuře nebyl široce používán. V roce 1968 vznikla verze Algol 68, která svými možnostmi stále předbíhá řadu programovacích jazyků, ale pro nedostatek dostatečně výkonných počítačů pro ni nebylo možné včas vytvořit dobré kompilátory. .

    Pascal (Pascal). Jazyk Pascal, vytvořený koncem 70. let Niklausem Wirthem, zakladatelem mnoha myšlenek moderního programování, v mnohém připomíná Algol, ale zpřísňuje řadu požadavků na strukturu programu a má vlastnosti, které umožňují jeho úspěšné používá se při vytváření velkých projektů.

    Základní (Základní). Pro tento jazyk existují jak kompilátory, tak interpreti a je na prvním místě v oblíbenosti na světě. Vznikl v 60. letech jako výukový jazyk a velmi snadné se naučit. Je to jeden z nadějných programovacích jazyků.

    C (Ci). Daný jazyk byl vytvořen v Bellově laboratoři a nebyl původně považován za masový. Bylo plánováno nahradit assembler, aby bylo možné vytvářet stejně efektivní a kompaktní programy a zároveň nezáviset na konkrétním typu procesoru. V tomto jazyce bylo v 70. letech napsáno mnoho aplikovaných a systémových programů a řada známých operačních systémů (Unix).

    Java (Java, Java). Tento jazyk vytvořil Sun na počátku 90. let na základě C++. Je navržen tak, aby zjednodušil vývoj aplikací založených na C++ tím, že z něj odstraní všechny nízkoúrovňové funkce. Ale hlavní rys tohoto jazyka - kompilace ne do strojového kódu, ale do bajtkódu nezávislého na platformě (každý příkaz zabírá jeden bajt). Tento bajtkód lze spustit pomocí interpretu - virtuální stroj Java(Java Virtual Machine), jejichž verze jsou dnes vytvářeny pro jakoukoli platformu. Díky přítomnosti mnoha Java strojů mohou být Java programy portovány nejen na úrovni zdrojového kódu, ale také na úrovni binárního bajtového kódu, a proto je Java dnes na druhém místě v popularitě na světě po BASICu.

    V Nedávno programování systémů zaměřených na tvorbu Windows aplikace:

    · Igelitová taška Borland Delphi (Delphi) je skvělým nástupcem rodiny kompilátorů Borland Pascal, který poskytuje vysoce kvalitní a velmi pohodlné nástroje pro vizuální vývoj. Jeho výjimečně rychlý kompilátor vám umožní efektivně a rychle vyřešit téměř jakýkoli problém s programováním aplikací.

    · Igelitová taška Microsoft Visual Basic - pohodlný a oblíbený nástroj pro vytváření programů Windows pomocí vizuálních nástrojů. Obsahuje nástroje pro tvorbu diagramy A prezentace.

    · Igelitová taška Borland C++ - jeden z nejběžnějších nástrojů pro vývoj aplikací pro DOS a Windows.

    Poprvé jsem o Fortranu slyšel v raném dětství od svého otce. Řekl, že v 70. letech musel stát hodiny ve frontě u téměř jediného počítače na univerzitě, aby mohl spustit primitivní kód pomocí děrného štítku. Abych byl upřímný, od té doby a až donedávna (navzdory svému technickému vzdělání) jsem si byl zcela jistý, že Fortran zůstal někde daleko, ve světě, kde podivné lepenkové krabice s dírami fungují jako nosiče informací a počítače jsou tak drahé, že jsou vnímány jako skutečnou atrakci.

    Jaké bylo moje překvapení, když jsem zjistil, že Fortran se nepoužívá jen tak někde jinde, ale vyvíjí se, je žádaný a stále aktuální. Pokud jste také do této chvíle věřili, že Fortran je už dávno mrtvý muž, tak tady je pro vás pár zajímavých faktů, proč stále chodí.

    Přežil alespoň 10 aktualizací

    Ve skutečnosti Fortran, o kterém slyšíte od učitelů ve škole nebo na univerzitě, vznikl v letech 1954 až 1957. Vešel do historie jako první plně implementovaný jazyk na vysoké úrovni, udělal malý průlom ve světě IT, ale ve skutečnosti nebyl příliš pohodlný a funkční. IBM to začalo „dokončovat“ téměř okamžitě, již v roce 1958 se objevil FORTRAN II a paralelně FORTRAN III. Víceméně slušný vzhled ale získal až v 70. letech, kdy se objevily dostatečně přenosné stroje, kdy byl vyvinut plnohodnotný standard IBM FORTRAN IV a FORTRAN 66 se objevil se smyčkami, štítky, podmíněnými příkazy, I/O příkazy a ostatní podle moderních standardů primitivní možnosti.

    Nejnovější verze se objevila v roce 2010, jmenuje se Fortran 2008 (jak můžete vidět, v průběhu historie se název přestal psát výhradně velká písmena), jehož charakteristickým rysem jsou všechny druhy paralelních výpočtů, které pozitivně ovlivňují jak rychlost zpracování dat, tak rozměry zpracovávaných polí. Fortran 2015 má navíc vyjít v roce 2018. Z oznámení vyplývá, že zlepší integraci s C, stejně jako odstraní současné nedostatky.

    Zahrnuto ve 30 nejpopulárnějších programovacích jazycích

    K dnešnímu dni 0,743 % dotazů v vyhledávače pokud jde o programovací jazyky, věnuje se konkrétně Fortranu. Abyste si udělali představu o tom, jak je to skvělé, představte si, že jazyky jako Lisp, Scala, Clojure, LabVIEW, Haskell, Rust a VHDL jsou umístěny níže.

    Může fungovat na Androidu (a nejen)

    Kompilátory pro Fortan byly vyvíjeny v průběhu své dlouhé historie společnostmi jako IBM, Microsoft, Compaq, HP, Oracle, díky čemuž je dnes jazyk kompatibilní s Windows, Mac OS a Linux. A co víc, díky aplikaci CCTools pro Android je nyní k dispozici praktický kompilátor, který si můžete vzít s sebou. Kompilátor můžete spustit i na svém iPhonu, ale v tomto případě je potřeba kouzlit.

    Konkuruje MATLABu

    Zatím v tomto textu nebylo řečeno to hlavní, a to rozsah Fortranu. Toto je jazyk žádaný ve vědě a inženýrství, plně nebo částečně používaný pro předpovědi počasí, oceánografii, molekulární dynamiku, seismologické analýzy. Obecně se jedná o skutečný jazyk „Data Science“, který pochází z doby, kdy se kalkulačka poprvé začala masově prodávat.

    Zároveň stojí za to uznat, že Fortran vděčí za část své popularity dědictví. Během let si jazyk prakticky bez konkurence získal obrovskou základnu klientů, knihoven a doplňků. Navíc každý další verze Fortran nevyhnutelně podporuje ty předchozí. Proto nastala situace, kdy neexistují žádné významné faktory, aby byli vědci a inženýři nuceni tento svazek opustit.

    Ve skutečnosti je dnes hlavním konkurentem Fortranu MATLAB, který je všestrannější, funkčnější a pohodlnější. MATLAB má však zároveň přísná omezení na používaný software, je poměrně drahý a ve většině případů je jednoduše nadbytečný.

    Má relativně světlou budoucnost

    Samozřejmě nemůžeme předvídat, co se stane za 10–20 let a jak se svět IT během této doby změní. Při pohledu na možné nové konkurenty pro Fortran (jako je Go) je však jejich hlavní nevýhodou zobecnění. Tedy velmi rychle nastínili tvůrci Fortranu cílová skupina jako vědců mají jejich názory a přání přednost. Proto je těžké si představit, že se zítra vzdají své „zvláštní objednávky“ kvůli nějakému módnímu trendu. Právě na základě toho lze tvrdit, že další generace Fortranu směle odchází.

    A pak prostě vydají novou verzi.

    * "PC Magic" 2000 č. 6(28), s. 49–50.

    V roce 1955 byl vydán první algoritmický jazyk na vysoké úrovni. FORTRAN(FORmula TRANslator - překladač vzorců). Byl používán především k řešení vědeckých, technických a inženýrských problémů a byl vyvinut zaměstnanci IBM pod vedením John Backus. O něco později, v roce 1957, John Backus a jeho spolupracovníci nainstalovali první kompilátor Fortranu v IBM (Westinghouse). Programátoři, kteří dříve pracovali výhradně v Assembleru, byli k možnostem vysoce výkonného vysokoúrovňového jazyka skeptičtí, takže hlavním kritériem pro vývoj standardů Fortran a vytváření kompilátorů z tohoto jazyka byla efektivita spustitelného kódu. Mimochodem, výraz „kompilátor“ se v té době ještě příliš nepoužíval, ačkoli Grace Hopperová, jediná admirálka ve Spojených státech, které se také říkalo „první dáma programování a Cobolova babička“, již byla představena. .
    Většina operátorů Fortran překládá přímo do jedné nebo dvou strojových instrukcí, jednoduchých syntaktických konstrukcí a aktivní používání labels a goto umožnily získat velmi rychlý kód a v důsledku toho programy Fortran někdy pracovaly rychleji než programy v assembleru. Velmi jednoduchá byla i samotná vnitřní struktura sestaveného programu – veškerý kód, všechny podprogramy a všechna data spolu se společným blokem byly umístěny výhradně v statická paměť, kvůli kterému však nebylo možné použít rekurzi.
    Vzhledem k tomu, že Fortran byl prvním jazykem na vysoké úrovni, který vyhovoval potřebám většiny uživatelů té doby, a navíc se dal snadno naučit, rozšířil se velmi rychle.
    Vzhledem k širokému rozšíření tohoto jazyka a vzniku mnoha programů Fortran (především výpočetního charakteru) se otázka jeho standardizace stala naléhavou. Zpočátku to byl standard Fortran IV 1964, poté, jak se objevily nové myšlenky, byla v roce 1978 přijata nová norma Fortran 77(f77) s modernějšími a flexibilnějšími rozšířeními syntaxe. Dnes jsou nejběžnější variantou Fortranu Fortran 90(f90) a Fortran 95. Parta nadšenců dokončuje práce na super verzi jazyka F2k, která vyjde letos.
    Ačkoli byly někdy představeny nové verze jazyka jako zbytečné doplňky(například rozšíření spojená s dynamickou alokací paměti) a užitečná, jako je modulární organizace programu, práce s částmi polí atd., dnes tento jazyk nelze nazvat slibným pro učení, protože jeho syntaxe je výrazně zastaralá.
    Pro ty, kteří poměrně často musí řešit různé výpočetní problémy, však není vůbec nutné pokaždé brát do ruky učebnici matematiky a „začít od nuly“. V 90 % takových případů je to, co hledáte, již dávno implementováno a odladěno ve Fortranu. Proto je s největší pravděpodobností život Fortranu poskytován po dlouhou dobu.
    Pro Fortran existuje další, relativně mladá nika - paralelní výpočty, kde přísná sémantika jazyka umožňuje získat vysoce výkonné programy. Obvykle se používá standard f90, mírně rozšířený o sadu operátorů pro označení částí programu vhodných pro paralelizaci. Paralelní Fortran má svůj vlastní standard HPF(Vysoce výkonný Fortran). Fanoušci Fortranu, jehož heslem byla legendární věta „Proč bych se měl učit jiné jazyky, když můžu všechno napsat ve Fortranu“, však cítili jeho zjevnou nevhodnost pro rozsáhlé projekty spojené s lpěním na syntaxi 50. , a snažil se do něj zavést módní myšlenky OOP, ale objekt Fortran se neobjevil jako standard.
    Mezi bezplatnými verzemi Fortranu je nejznámější f2c, která je implementována pro všechny systémy UNIX a převádí text programu Fortran do kódu C. Pro DOS je verze bcf77 distribuována zdarma. Z komerčních verzí je třeba především zmínit Microsoft Fortran, který umožňuje vytvářet dll-knihovny, a Watcom Fortran, který generuje vysoce efektivní kód. Pro úlohy vyžadující vysokou přesnost výpočtů je určen překladač MicroWay. Obecně jsou kompilátory Fortranu různé kvality dostupné na absolutně všech počítačových platformách.
    Hlavní zásluha Fortranu je však jiná. Když bylo nutné vyvíjet velmi velké projekty, nevýhody Fortranu spojené především s „těžkým“ laděním zbytečně zatěžovaly. Fortran proto posloužil jako nejsilnější podnět pro rozvoj teorie ladění a testování programů. Objevily se stovky syntaktických ověřovatelů fortranských textů, kteří zachytili skryté logické chyby. Později z tohoto směru vyrostly takové teoretické oblasti programování jako ekvivalentní optimalizační transformace programů, kompilace na vysoké úrovni, automatické testování atd. Na Fortran tedy nelze zapomenout. Asi to nemá smysl používat jako sadu nástrojů v úlohách systémové integrace, ale co se vyvinulo nejlepší programátoři 30-40 let, může urychlit proces vývoje. Minimálně pro Fortran je nesrovnatelně více softwarových „stavebnic“ než pro jiné programovací jazyky. ■

    * * *
    John Backus narozen 3. prosince 1924 ve Philadelphii v Pensylvánii v bohaté rodině, dětství strávil ve Wilmingtonu. Po absolvování školy v roce 1942 nastoupil na University of Virginia na katedru chemie (na naléhání svého otce, chemika), ale po nějaké době studium ukončil a v roce 1943 byl povolán k vojenské službě.
    Backus začal sloužit v brigádě protivzdušné obrany ve Fort Stewart ve státě Georgia, ale následně byl poslán na vysokou školu studovat medicínu.
    Nějakou dobu nadšeně pracoval v městské nemocnici, ale v roce 1946 ho tato práce přestala bavit, opustil armádu a přestěhoval se do New Yorku, ačkoli nevěděl, co má dělat a jak dál žít.
    Po nějaké době Backus vstoupil do radiotechnické školy. "Měl jsem velmi dobrého učitele a požádal mě, abych vypočítal charakteristiky některých okruhů. Bylo to strašně zdlouhavé, ale nesmírně zajímavé."
    Backus brzy vstoupil na Kolumbijskou univerzitu (New York) ke studiu matematiky, kde v roce 1949 promoval. Krátce před promocí navštívil výpočetní středisko IBM na Madison Avenue. A tady se na něj štěstí usmálo podruhé – v roce 1950 se Backus stal programátorem v IBM.
    O dominanci IBM v počítačovém průmyslu se poprvé hovořilo v roce 1952. Vše začalo Modelem 701, známým také jako Obranná kalkulačka. Ihned po uvedení modelu 701 jej začali vylepšovat specialisté z divize aplikovaného výzkumu (1955-1956).

    Nejzávažnější změny navrhl John Backus, který se později aktivně podílel na vzniku počítače 704. Zejména díky němu se objevila technologie tzv. „speed-coding“, která umožnila výrazně zjednodušit psaní programů pro 701. 701, což byl unicastový počítač s pevnou řádovou čárkou bez indexových registrů, z něj udělal systém s pohyblivou řádovou čárkou s libovolným adresováním a indexovými registry,“ připomněl Backus. binární kód".
    Již tehdy se objevily první součásti technologie rychlého programování, která se dnes používá. Ve skutečnosti se tento systém stal předchůdcem podobných komplexů, které byly vydány v 50. a 60. letech a následně nahrazeny jazyky na vysoké úrovni.
    A v roce 1955 Backus „vynalezl“ Fortran, první strojový jazyk na vysoké úrovni. Následně, při vzpomínce na toto období, Backus řekne: "Nevěděli jsme, o co se máme snažit, a nevěděli jsme, jak to udělat." Zpočátku bylo plánováno dokončení všech prací na začátku roku 1954, ale vývoj jazyka byl dokončen téměř o dva roky později.
    První verze kompilátoru sestávala z 25 000 řádků strojového kódu napsaného na magnetické pásce. Každý IBM 704 byl vybaven kopií programu s 51 stránkovým programovacím manuálem.
    V roce 1959 vyvinul Backus gramatická pravidla pro popis syntaxe jazyků na vysoké úrovni (Backus-Naur Normal Form, zkráceně BNF).
    V roce 1976 byl John Backus oceněn Národní medailí za přínos vědě a v roce 1991 přestal pracovat na počítačových tématech.

    Vladimír Buslajev

    OCR: fir-vst, 2016

    Mezi vědci například existuje takové rčení, že jakýkoli matematický problém již má řešení ve Fortranu a skutečně lze mezi tisíci Fortranových balíčků najít jak balíček pro násobení matic, tak balíček pro řešení složitých integrálních rovnic a mnoho a mnoho dalších. Řada takových balíčků byla vytvořena v průběhu desetiletí a jsou stále populární ve vědecké komunitě dodnes, například - IMSL ( Angličtina).

    Většina z těchto knihoven je ve skutečnosti majetkem lidstva: jsou dostupné ve zdrojovém kódu, dobře zdokumentované, odladěné a velmi efektivní. Proto je nákladné je měnit, natož přepisovat do jiných programovacích jazyků, přestože se pravidelně objevují pokusy o automatickou konverzi FORTRAN kódu do moderních programovacích jazyků.

    Moderní Fortran (Fortran 95 a Fortran 2003) získal funkce nezbytné pro efektivní programování pro nové výpočetní architektury, umožňuje aplikovat moderní technologie programování, konkrétně OOP.

    Vývoj jazykových norem

    Fortran je vysoce standardizovaný jazyk, a proto je snadno přenositelný na různé platformy. Nové jazykové standardy do značné míry zachovávají kontinuitu se staršími, což umožňuje využívat kódy dříve napsaných programů a upravovat je.

    FORTRAN 66 (1972) Na základě standardu IBM FORTRAN IV FORTRAN 77 (1980) Zavedeno mnoho vylepšení: Fortran 90 (1991) Výrazně přepracovaná jazyková norma. Fortran 95 (1997) Oprava předchozího standardu. Byly zavedeny operátor a konstrukce FORALL, které umožňují větší flexibilitu než operátor a konstrukce WHERE pro přiřazování polí a nahrazování těžkopádných smyček. FORALL umožňuje nahradit jakékoli přiřazení sekce nebo operátor a zejména klauzule WHERE poskytuje přístup k diagonále matice. Tento operátor je považován za slibný v paralelním počítání a přispívá k efektivnější implementaci paralelizace než smyčky. Fortran 2003 (2004) Další rozvoj podpory OOP v jazyce. Interakce s operačním systémem. Byly také přidány následující funkce: Fortran 2008 (2010) Norma předpokládá podporu prostřednictvím paralelního výpočetního jazyka (Co-Arrays Fortran) . Plánuje se také zvýšení maximálního rozměru polí na 15, přidání vestavěných speciálních matematických funkcí atd.

    Kompilátory

    Od počátečního vývoje jazyka byly kompilátory Fortran vyráběny společností IBM. V současné době IBM dodává optimalizační kompilátor VS Fortran pro sálové počítače IBM System z, jehož historie vývoje různých verzí sahá až do roku 1964, a také kompilátor XL Fortran pro platformy založené na architektuře PowerPC - AIX, Linux a superpočítač Blue Gene (existovala i verze pro Mac OS X, kdy počítače Macintosh používaly procesory PowerPC). Oba tyto kompilátory obsahují velmi sofistikované optimalizátory, které jsou výsledkem půlstoletí nepřetržité vědecké práce specialistů IBM. Na základě kompilátoru IBM Fortran XL Absoft, obchodní partner IBM, vytvořil a dodává kompilátor Absoft Pro Fortran pro systémy založené na procesorech PowerPC (Linux, Mac OS X) a Intel (Linux, Mac OS X, Windows). .

    GNU Free Software Foundation vydala open source kompilátor Fortran 77, g77, dostupný pro téměř jakoukoli platformu a plně kompatibilní s GCC. Nyní jej nahradil kompilátor GFortran, který implementuje téměř všechny konstrukce standardu Fortran-95 a mnoho konstrukcí standardů Fortran-2003 a Fortran-2008. Je také plně zpětně kompatibilní s Fortran-77. Existuje také nezávislý projekt g95 na vytvoření kompilátoru Fortran-95 založeného na GCC.

    Vlastnosti a struktura programu

    Fortran má poměrně velkou sadu vestavěných matematických funkcí, podporuje práci s celými, reálnými a komplexními čísly s vysokou přesností. Expresivní prostředky jazyky byly zpočátku docela chudé, protože Fortran byl jedním z prvních jazyků na vysoké úrovni. Později bylo do Fortranu přidáno mnoho lexikálních konstrukcí, které jsou charakteristické pro strukturální, funkční a dokonce i objektově orientované programování.

    Děrný štítek s označením sloupců pro Fortran.

    Struktura programů byla původně zaměřena na vstup z děrných štítků a měla řadu vlastností, které byly vhodné pro tento konkrétní případ. 1. sloupec tedy sloužil k označení textu jako komentáře (se symbolem C), od 1. do 5. byla oblast štítku a od 7. do 72. byl skutečný text operátora nebo komentáře. Sloupce 73 až 80 mohly sloužit pro číslování karet (k obnovení náhodně rozházeného balíčku) nebo pro krátký komentář, překladatel je ignoroval. Pokud se text operátora nevešel do přiděleného prostoru (od 7. do 72. sloupce), umístil se do 6. sloupce další karty znak pokračování a na něm pak operátor pokračoval. Nebylo možné umístit dva nebo více operátorů do jednoho řádku (mapy). Když se děrné štítky staly historií, tyto výhody se změnily ve vážné nepříjemnosti.

    Proto má standard Fortran počínaje Fortranem 90 kromě pevného formátu zdrojového textu i volný formát, který nereguluje polohu řádku, a navíc umožňuje napsat více operátorů na řádek. Zavedení volného formátu umožnilo vytvořit kód, který je stejně čitelný a jasný jako kód vytvořený pomocí jiných moderní jazyky programování jako je nebo Java .

    Jakousi „vizitkou“ starého Fortranu je obrovské množství štítků, které se používaly jak v operátorech nepodmíněného skoku GOTO, tak v operátorech smyček a v operátorech popisu vstupu/výstupu formátu FORMAT. Velké množství štítků a příkazů GOTO často ztěžovalo pochopení programů Fortran.

    Právě tato negativní zkušenost se stala důvodem, proč v řadě moderních programovacích jazyků (například Java) byly štítky a s nimi spojené operátory nepodmíněných skoků výrazně upraveny.

    Moderní Fortran se však přebytku štítků zbavil zavedením operátorů jako DO ... END DO, DO WHILE, SELECT CASE. Navíc v moderních jazykových standardech zůstal pouze klasický operátor GOTO, který se v mnoha jazycích používá dodnes. Vypočtený příkaz GOTO a také konstrukt ENTRY - vícenásobný vstup do procedur byly vyloučeny.

    Mezi pozitivní vlastnosti moderního Fortranu patří také velké množství vestavěných operací s poli a flexibilní podpora polí s neobvyklým indexováním. Příklad:

    Skutečná ,rozměr (: ,: ) :: V ... alokovat (V(- 2 : 2 ,0 : 10 ) ) ! Přidělte paměť pro pole, jehož indexy mohou ! měnit od -2 do 2 (první index) ! a od 0 do 10 - druhá... V (2 ,2 : 3 ) = V (- 1 : 0,1 ) ! Otočte výseč pole napište(*,*) V(1,:) ! Vytiskněte všechny prvky pole V, jehož první index je 1. uvolnit (V)

    Ahoj světe!

    Pevný formát (mezery na řádcích 1 až 6 jsou označeny znaky „␣“):

    ␣␣␣␣␣␣PROGRAM ahoj ␣␣␣␣␣␣PRINT* , "Ahoj světe!" ␣␣␣␣␣␣KONEC

    Volný formát:

    Program hello print * , "Ahoj, světe!" konec

    Poznámky.

    • Příkaz PROGRAM je volitelný. Přísně vzato, jediným požadovaným příkazem v programu Fortran je příkaz END.
    • Volba velkých nebo malých písmen pro psaní příkazů programu je libovolná. Z pohledu moderních jazykových standardů Fortran je mnoho velkých a mnoho malých písmen stejných při psaní jazykových operátorů.

    Interakce s jinými jazyky

    Mnoho programovacích systémů umožňuje propojit objektové soubory získané jako výsledek překladu programu Fortran s objektovými soubory získanými z kompilátorů z jiných jazyků, což umožňuje vytvářet flexibilnější a multifunkční aplikace. Pro jazyk Fortran je k dispozici také velké množství knihoven obsahujících jak podprogramy pro řešení klasických výpočetních problémů (LAPACK, IMSL, BLAS), tak úlohy pro organizaci distribuovaných výpočtů (MPI, pvm) a úlohy pro konstrukci grafická rozhraní(Quickwin, FORTRAN/TK) nebo přístup k DBMS (Oracle).

    Fortran v SSSR

    Poznámky

    1. Viz například: Úložiště Netlib na UTK a ORNL
    2. A. M. Gorelík. Evoluce programovacího jazyka Fortran (1957-2007) a perspektivy jeho rozvoje // Computational methods and programming, 2008, vol. 9, str. 53-71
    3. Barteniev O.V. Moderní Fortran. - M .: Dialog MEPhI, 2005. - ISBN 5-86404-113-0
    4. A. M. Gorelík. objektově orientované programování v moderním Fortranu
    5. S. D. Algazin, V. V. Kondratiev. Programování ve Visual Fortran. - M .: "MEPhI Dialogue", 2008. - 448 s. - ISBN 5-8243-0759-8
    6. Zprávy Gorelik A. M
    7. VS FORTRAN
    8. XL Fortran pro Linux
    9. Absoft Pro Fortran Compiler Suites Obecný přehled
    10. Sun Studio – benchmarky
    11. Esej Alexandra Rastorgueva o vzhledu Fortranu v Dubně
    12. Historie počítačové grafiky v Rusku

    Literatura

    • Fortran. Programmer's Reference Manual.Automatický kódovací systém Fortran pro IBM 704 EDPM - IBM Corp., 1956. - 51 s.
    • ISO/IEC 1539-2:2000 Informační technologie - Programovací jazyky - Fortran - Část 2: Řetězce znaků různé délky
    • Robert W. Šebesta. 2.3. Počítač IBM 704 a jazyk Fortran // Základní pojmy programovacích jazyků\u003d Koncepty programovacích jazyků / Per. z angličtiny. - 5. vyd. - M.: Williams, 2001. - S. 63-69. - 672 s. - 5000 výtisků. - ISBN 5-8459-0192-8 (ruština), ISBN 0-201-75295-6 (anglicky)

    Odkazy

    • gfortran - Fortran 95/2003/2008 kompilátor, součást GNU Compiler Collection
    • in Progopedia - encyklopedie programovacích jazyků ​​(ruština)

    Abeceda - v programování - systém nerozložitelných, sebevědomě odlišitelných symbolů (písmena, číslice, interpunkční znaménka a další symboly) používaných k sestavení programovacích jazyků.

    Syntaxe je stránka programovacího jazyka, která popisuje strukturu programů jako sady znaků. Syntaxe jazyka je v protikladu k jeho sémantice. Syntaxe jazyka popisuje „čistý“ jazyk, zatímco sémantika přiřazuje význam různým syntaktickým konstrukcím.

    Sémantika - v programování - systém pravidel pro určování chování jednotlivých jazykových konstruktů. Sémantika určuje sémantický význam vět v algoritmickém jazyce.

    Nízkoúrovňové programovací jazyky - Autocode, Assembler,

    Programovací jazyky na vysoké úrovni - Fortran, Algol, Cobol, Pascal, BASIC, C++, Prolog

    Programovací jazyky na velmi vysoké úrovni - APL, Algol-68

    Výpočetní programovací jazyky - Fortran, Pascal, Algol, BASIC, C

    Jazyky pro zpracování symbolů - Lisp, Prolog, Snobol atd.

    Jazyky první generace:

    Strojové kódy byly programovacím jazykem první generace

    Jazyky druhé generace:

    assembler

    Jazyky třetí generace:

    tyto jazyky jsou často označovány jako jazyky „vysoké“ úrovně.

    Jazyky čtvrté generace:

    BASIC, COBOL, C a Pascal

    Programovací jazyky páté generace:

    Prolog, LISP, C++, Visual Basic, Delphi.

    Fortran programovací jazyk

    První programovací jazyk na vysoké úrovni, který má překladač. Vytvořeno v letech 1954 až 1957 skupinou programátorů vedených Johnem Backusem v IBM Corporation. Jméno Fortran je zkratkou pro FORmula TRANslator (Formula Translator). Fortran je široce používán především pro vědecké a inženýrské výpočty. Jednou z výhod moderního Fortranu je velké množství programů a knihoven v něm napsaných podprogramů. Většina z těchto knihoven je ve skutečnosti majetkem lidstva: jsou dostupné ve zdrojovém kódu, dobře zdokumentované, odladěné a velmi efektivní. Proto je nákladné je měnit, natož přepisovat do jiných programovacích jazyků, přestože se pravidelně objevují pokusy o automatickou konverzi FORTRAN kódu do moderních programovacích jazyků.

    Moderní Fortran (Fortran 95 a Fortran 2003) získal vlastnosti potřebné pro efektivní programování pro nové výpočetní architektury, umožňuje použití moderních programovacích technologií, zejména OOP.

    Vývoj jazykových norem

    Fortran je vysoce standardizovaný jazyk, a proto je snadno přenositelný na různé platformy. Nové jazykové standardy do značné míry zachovávají kontinuitu se staršími, což umožňuje využívat kódy dříve napsaných programů a upravovat je.

    FORTRAN 77 (1980)

    Bylo zavedeno mnoho vylepšení:

    Jsou představeny operátory pro otevírání a zavírání souboru (OPEN, CLOSE) a výstup na standardní zařízení - PRINT.

    Přidán datový typ řetězce a funkce pro jeho zpracování.

    Zavádí se blokový příkaz IF a konstrukce IF THEN - ELSE IF THEN - END IF a také příkaz INCLUDE pro zahrnutí fragmentu programu.

    Zavedena možnost práce se soubory s přímým přístupem.

    Maximální rozměr pole byl zvýšen ze 3 na 7. Omezení indexů pole byla odstraněna.

    Zlepšily se a rozšířily možnosti práce s postupy.

    Byl zaveden koncept interního souboru (což jsou pole, číselné a řetězcové proměnné). Interní soubory umožňují zejména provádět převody číselných řetězců a řetězců čísel pomocí standardních operátorů čtení a zápisu READ a WRITE.

    Fortran 90 (1991)

    Výrazně přepracovaná jazyková norma.

    Představil bezplatný formát pro psaní kódu. Přidány další popisy pro IMPLICIT NONE, TYPE, ALLOCATABLE, POINTER, TARGET, NAMELIST.

    Jsou představeny ovládací operátory a konstrukce. Přidáno DO ... END DO (místo ukončení smyčky štítkem), DO WHILE, příkaz přenosu řízení na začátek smyčky CYCLE, výběrový konstrukt SELECT CASE (k nahrazení těžkopádných konstrukcí IF a příkazů GOTO), jako stejně jako závěrečný příkaz programové jednotky, modulu nebo interní procedury END .

    Představeny ukazatelové nástroje a funkce pro práci s RAM (analogicky s jazykem C).

    Byly zavedeny operátory pro práci s dynamickou pamětí (ALLOCATE, DEALLOCATE, NULLIFY).

    Přidány softwarové komponenty MODUL, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.

    Bylo zavedeno maskování přiřazení pole (přiřazení, když je splněna logická podmínka kladená na prvky pole bez použití podmíněných operátorů), a také práce s sekcemi pole. Představený operátor a konstrukce WHERE pro částečnou výměnu smyček ( pravá část operátor přiřazení se nemění). Maskování přiřazení se vztahuje na téměř všechny operátory, konstrukce a funkce, které pracují s poli.

    Standardní operace přiřazení, sčítání, odčítání a dělení a násobení číslem jsou rozšířeny na pole a jejich sekce definované sekcemi. V tomto případě se provádí přiřazení prvek po prvku.

    Jsou zde nové vestavěné funkce především pro práci s poli. Funkce pro výpočty v polích: ALL (logický součin) a MASK (logické sčítání), COUNT (počet skutečných prvků), PRODUCT (součin prvků pole), SUM (sčítání prvků pole), DOT_PRODUCT (skalární součin), MATMUL ( násobení matic) ). Byly přidány funkce nápovědy a také funkce přetváření a skládání polí.

    V jazyce se objevily prvky OOP. Zavedeny odvozené datové typy. Samostatně byl oznámen seznam zastaralých jazykových funkcí, které budou v budoucnu odstraněny.

    Přidal doplňkové funkce pro práci s daty řetězce, zejména funkce TRIM (odstranění koncových mezer) a REPEAT (vícenásobná kopie řetězce) a funkce zarovnání vlevo a vpravo.

    Fortran 95 (1997)

    Oprava předchozí normy. Byly zavedeny operátor a konstrukce FORALL, které umožňují větší flexibilitu než operátor a konstrukce WHERE pro přiřazování polí a nahrazování těžkopádných smyček. FORALL umožňuje nahradit jakékoli přiřazení sekce nebo operátor a zejména klauzule WHERE poskytuje přístup k diagonále matice. Tento operátor je považován za slibný v paralelním počítání a přispívá k efektivnější paralelizaci než smyčky.

    Fortran 2003 (2004)

    Další rozvoj podpory OOP v jazyce. Interakce s operačním systémem. Byly také přidány následující funkce:

    Asynchronní vstup-výstup dat.

    Prostředky interakce s jazykem C

    Zlepšení dynamického umístění dat

    Standard předpokládá podporu prostřednictvím paralelního výpočetního jazyka (Co-Arrays Fortran). Plánuje se také zvýšení maximálního rozměru polí na 15, přidání vestavěných speciálních matematických funkcí atd.