Pokud se budeme zabývat vývojem programovacích jazyků, musíme vzít v potaz, že je neoddělitelný od samotného vývoje počítačů, ale ten není tématem tohoto článku. Proto poukáži pouze na některé důležité mezníky, které měly vliv na samotné programování.
Za první pokus, ne o programovací jazyk, ale o samotné koncipování programátorských principů lze považovat práci dcery básníka lorda Byrona Augustu Adu Byronovou. Ta se díky svému zaujetí o fyziku a matematiku dostala až k počítacím strojům a projektu Charlese Babbaga,
v této spolupráci došlo roku 1837 k vyvrcholení jejich práce v podobě zařízení Analytic Engine. Bohužel kvůli předčasné smrti Augusty Ady Byronové se dochoval pouze jeden kompletní program a to pro výpočet Bernoulliho čísel. Samotné programování se skládalo z mnoha manuálně složitých úkonů.
V dalším vývoji prochází programování fází děrných štítků, tak jak tomu bylo v případě Hellerithova děrnošťítkového počítacího stroje v roce 1888. Převratným obdobím pro rozvoj jak počítačů, tak i jejich programování nastává hlavně před a v čase 2. světové války, kdy přichází Konrad Zuse (Německo) se svou řadou počítačů Z 1-3. Stejně tak v USA (MARK 1) a Velké Británii jsou podobná zařízení navrhována pro automatické řízení střelby. Všechny tyto přístroje však byly ještě programovány pomocí přepojování jednotlivých funkčních bloků nebo pomocí tlačítek manuálně.
Za opravdu revoluční bod v historii klasického programování bychom však mohli označit rok 1944, kdy JOHN VON NEUMANN definuje svou koncepci počítače. Je zde jediná společná paměť pro data, i pro instrukce, kde je celý program včetně potřebných dat uložen v operační paměti.
A tím už se dostávám pomalu k samotné historii programovacích jazyků. Jak již z předchozího textu mohlo vyplynout, počítače byly konstruovány pro zrychlení a zpřesnění matematických výpočtů. První analogové počítače byly původně navrženy pro výpočet diferenciálních rovnic, a tím tedy ,jak již bylo řečeno, pro správné řízení střelby. V padesátých letech prudce stoupá výkon počítačů a celkový počet úloh, které počítače musely řešit. To sebou neslo samozřejmě velké nároky na jejich programování. Tyto již číslicové počítače jsou tak programovány ve strojovém kódu, který představoval pro programátora velmi složitý proces, kdy si musel pamatovat jednotlivé číslové kódy instrukcí. Proto byly pro zjednodušení vytvořeny tzv. autokódy, které bychom mohli přirovnat k dnešním makroinstrukcím. Později dochází z těchto autokódů k vytvoření nižšího programovacího jazyka Assembleru. K tomu, aby mohl jazyk vůbec vzniknout, je potřeba tzv. překladače jazyka.
Překladač je SW nástroj umožňující překlad uživatelského programu. Překladače mají různou konstrukci v závislosti na programu. Překladače můžeme rozdělit do tří základních skupin.
a) Kompilační:
Jsou historicky nejstarší a mají největší počet aplikací.
Principiálně ze zdrojového programu vytvoří rovnou cílový kód.
Výhodné díky své rychlosti, bohužel s obtížným laděním
b) Interpretační
Nevytvářejí cílový kód, ale každý řádek programu je interpretován jako volání podprogramu. Výhodou je rychlost při ladění
Nevýhodou je pomalý chod uživatelského programu
c) Inkrementální - kompromis mezi a) a b).
Překlad jako inrepreteační s možností uložení do cílového kódu
Základním zpracováním takového překladače byl tzv. Turingův stroj, konstruovaný jako nekonečný zásobníkový automat. Na jeho principu lze snadno vysvětlit překlad programu. Zjednodušeně ho můžeme také přirovant k sekvenčnímu logickému obvodu, tedy jeho výstupní hodnota závisí na vstupní kombinaci a jeho vnitřním stavu.
Jazyk Assembler, někdy také nazýván jako jazyk symbolických adres (JSA), kladl velké nároky na programátora . V tomto ohledu se také i těžko ladí, ale hlavním přínosem bylo symbolické zapsání instrukce(např. Instrukce ADD - aritmetický součet). Program napsaný v assembleru je nejnižší urovní, ve které může programátor programovat mikro počítač.
Po assembleru byly vyvíjeny programy určené především pro vědecko-technické výpočty. Do tohoto spektra patří programy , Fortran (Formula Translation), Algol (ALGOritmus Languages), BASIC (Beginer All Purose Symbolic Instruction Code). Začínají se však vyvíjet programovací jazyky i pro hromadné zpracování dat Cobol, ten byl vytvořen pro ministersto obrany USA (Pentagon) a vycházel z hovorové angličtiny. Poté je vytvořen programovací jazyk Pascal (podle Blaise Pascala), tento jazyk se dnes používá především pro výuku programování. Dále uveďme pokus o zkombinování jazyka pro vědecké výpočty a hromadného zpracování dat v podobě PL/1. Vývoj se však ubíral přes programovací jazyk Simula 67 jiným směrek, a to k speciálním programovacím jazykům jako byl v 70.letech Jazyk C, který byl využíván pro Unix. Jazyk C je vyšší prog. jazyk, který má možnost bitových operací. Problémem tohoto programu je však velice obtížná slučitelnost a čitelnost programu. Vyvíjeny jsou i programy pro podporu umělé inteligence Lips a Ada a zatím poslední místo ve vývoji programovacích jazyků zaujímají skriptovací jazyky Perl a Python.
Určitě jsem toho spustu vynechal, spoustu opomenul, ale pro střučný přehled je tento článek dostačující. . . Pokud budete mít faktické nebo doplňující informace k tématu, napište a článek doplníme ;-)
Jan Princlík
ZDROJE:
Seznam použité literatury:
Ing. Josef Hrázský, Ing. Miroslav Škop, Repetitorium z předmětu Elektronické počítače, Praha 2006, Střední průmyslová škola elektrotechnická, Praha 10, V Úžlabině 320
Ing. Josef Hrázský, Mikropočítače a počítače I, Praha 2006, Střední průmyslová škola elektrotechnická, Praha 10, V Úžlabině 320
WWW:
http://mole.borec.cz/Programovani/borland.php?cil=3
http://encyklopedie.seznam.cz/heslo/177562-strojovy-kod
http://www.epstudio.cz/~papousek/
http://en.wikipedia.org/wiki/ALGOL
http://cs.wikipedia.org/wiki/Fortran
http://cs.wikipedia.org/wiki/Perl
http://www.fi.muni.cz/usr/jkucera/pv109/2000/xkrubova.htm
http://programujte.com/index.php?akce=clanek&cl=2005082701-Byl-jednou-jeden-programovaci-jazyk-byl-jednou-jeden-programovaci-jazyk
http://en.wikipedia.org/wiki/BASIC
http://lukas.faltynek.com/2007/02/13/cobol-programovaci-jazyk-ktery-stale-zije/
http://lukas.faltynek.com/2007/05/21/java---dnes-pri-salku-dobre-kavy/
http://www.sweb.cz/oopsimula/
http://docs.linux.cz/programming/interpreted/perl/control.htm
http://www.linuxsoft.cz/article.php?id_article=675
{jcomments off}