Programátor: Porovnání verzí

Z WikiKnihovna
 
(Není zobrazeno 20 mezilehlých verzí od stejného uživatele.)
Řádek 12: Řádek 12:
  
 
==Charakteristika==
 
==Charakteristika==
Programátor neboli vývojář je tím, kdo navrhuje, píše a testuje počítačové systémy, [[počítačový program|programy]] nebo aplikace. S prací programátora se můžeme setkat ve všech elektrotechnických zařízeních (od her v mobilních zařízeních po hardware v osobním počítači). Tyto programy se píší v programovacích jazycích v editorech určených přímo k práci s kódem.  
+
Programátor neboli vývojář je ten, kdo navrhuje, píše a testuje počítačové systémy, [[počítačový program|programy]] nebo aplikace. S prací programátora se můžeme setkat ve všech elektrotechnických zařízeních (od her v mobilních zařízeních po hardware v osobním počítači). Tyto programy se píší v programovacích jazycích v editorech určených přímo k práci s kódem.  
 
Programátory můžeme rozdělit na dvě hlavní skupiny, a to podle jejich zaměření:  
 
Programátory můžeme rozdělit na dvě hlavní skupiny, a to podle jejich zaměření:  
 
* Programátoři aplikací ([[software]])
 
* Programátoři aplikací ([[software]])
* Programátoři systémů (hardware)
+
* Programátoři systémů (hardware)<ref name="discoverit">Applications Programmer. In: Discover It [online]. c2005, 2008 [cit. 2013-04-07]. Dostupné z: http://www.discoverit.org/applications_programmer.aspx</ref>
Vývoj programu není práce jen pro programátora, např. u psaní kódu [[webová stránka|webových stránek]] se odvíjí a závisí od návrhu [[Webový grafik|designéra]] a jeho [[HTML]] kódu, který programátor uvádí do chodu. Důležitou složkou programátorovi práce je také testování zdrojového kódu. Jde jak o chod programu, tak i o přistupování k síti, používání databází, funkčnost ve všech prohlížečích nebo chování celé aplikace na simulované podněty. Pro simulaci těchto činností se používají falešné objekty, které nevykonávají žádnou skutečnou činnost, pouze splňují nějaké požadované rozhraní.<ref>ZAMRZLA, Josef. Testování a tvorba testovatelného kódu v PHP. In: Zdroják: O tvorbě webových stránek a aplikací [online]. 2012-08-13. 2009, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/</ref>
+
Vývoj programu není práce jen pro programátora, např. u psaní kódu [[webová stránka|webových stránek]] se odvíjí a závisí od návrhu [[Webový grafik|designéra]] a jeho [[HTML]] kódu, který programátor uvádí do chodu. Důležitou složkou programátorovi práce je také testování zdrojového kódu. Jde jak o chod programu, tak i o přistupování k síti, používání databází, funkčnost ve všech prohlížečích nebo chování celé aplikace na simulované podněty.<ref name="zamrzla"></ref> Pro simulaci těchto činností se používají falešné objekty, které nevykonávají žádnou skutečnou činnost, pouze splňují nějaké požadované rozhraní.<ref name="zamrzla">ZAMRZLA, Josef. Testování a tvorba testovatelného kódu v PHP. In:'' Zdroják'': O tvorbě webových stránek a aplikací [online]. 2012-08-13. 2009, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/</ref>
  
 
==Historie==
 
==Historie==
Za vůbec první programátorku je považována [[Ada Lovelace|Ada Augusta Lovelace]] (dcera Lorda Byrona), která navrhla a vytvořila předchůdce dnešních programovacích jazyků. Popsala práci [[Charles Babbage|Babbagova]] Analytického stroje a také pro něj psala první programy. „Její text o stroji se stal prvním, který popisoval proces dnes známý jako počítačové programování.“ <ref>WEEDA, Renske. History of Informatics: Ada Lovelace [online]. Radboud University Nijmegen, Faculty of Science, 2004 [cit. 2013-04-07]. Dostupné z: http://www.cs.ru.nl/~hans/Geschiedenis/Papers/Renske.pdf</ref>
+
Za vůbec první programátorku je považována [[Ada Lovelace|Ada Augusta Lovelace]] (dcera Lorda Byrona), která navrhla a vytvořila předchůdce dnešních programovacích jazyků. Popsala práci [[Charles Babbage|Babbagova]] Analytického stroje a také pro něj psala první programy. ''„Její text o stroji se stal prvním, který popisoval proces dnes známý jako počítačové programování.“'' <ref>WEEDA, Renske. ''History of Informatics: Ada Lovelace'' [online]. Radboud University Nijmegen, Faculty of Science, 2004 [cit. 2013-04-07]. Dostupné z: http://www.cs.ru.nl/~hans/Geschiedenis/Papers/Renske.pdf</ref>
  
 
Pracovním nástrojem programátorů na prvních programovatelných počítacích strojích z 30. let 20. století byly děrné štítky, ty představovaly 1 a 0 binární soustavy a řídili počítače.  
 
Pracovním nástrojem programátorů na prvních programovatelných počítacích strojích z 30. let 20. století byly děrné štítky, ty představovaly 1 a 0 binární soustavy a řídili počítače.  
Ve 40. letech sestrojil Conrad Zuse elektrický počítač Z1 a později také první programovací jazyk Plankalkul pro počítač Z3, který byl ovlivněn Turingovým strojem a Lambda kalkul Alonza Churche.
+
Ve 40. letech sestrojil Conrad Zuse elektrický počítač Z1 a později také první programovací jazyk Plankalkul pro počítač Z3, který byl ovlivněn Turingovým strojem a Lambda kalkul Alonza Churche.<ref name="nygryn">NYGRÝN, Pavel. Historie počítačů: Od elektronky po internet. In: Živě [online]. 2011-08-15. c1996, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zive.cz/clanky/historie-pocitacu-od-elektronky-po-internet/sc-3-a-147343/default.aspx</ref>
  
V 50. až 60. letech 20. století vznikaly první operační systémy a s nimi první vyšší programovací jazyky (Fortran, Algol) – místo řad 1 a 0 dvojkové soustavy se zadávaly příkazy v podobě čísel osmičkové nebo šestnáctkové soustavy, později i skutečná slova z písmen.
+
V 50. až 60. letech 20. století vznikaly první operační systémy a s nimi první vyšší programovací jazyky (Cobol, Fortran, Algol)<ref name="hora">HORA, Vladimír a David MAZEL. Ovládání počítače. 1. vyd. Brno: Masarykova univerzita, 2007. Dostupné z: https://is.muni.cz/auth/el/1490/kurzy2007-nekreditove/u3v_pc1/um/U3V_scripta_Z1_WEB.pdf</ref> ''„místo řad 1 a 0 dvojkové soustavy se zadávaly příkazy v podobě čísel osmičkové nebo šestnáctkové soustavy, později i skutečná slova z písmen“''.<ref name="haluza">HALUZA, Pavel. Výpočetní technika I: Organizační informace; Úvod do výpočetní techniky [prezentace v Misrosoft Powerpoint]. Brno, PEF MENDELU, 2011. Str. 51. Dostupné z: https://akela.mendelu.cz/~xhorak10/1.semestr/pc/V%FDpo%E8etn%ED%20technika%201/VT1_prednaska01/vt1-01.pdf</ref>
 
Z prvních programovacích jazyků se až do dnešní doby vyvinulo a dále vyvíjí velké množství dalších jazyků. Dnes jsou jich známy stovky a většina z nich jen zdaleka připomíná ty počáteční.
 
Z prvních programovacích jazyků se až do dnešní doby vyvinulo a dále vyvíjí velké množství dalších jazyků. Dnes jsou jich známy stovky a většina z nich jen zdaleka připomíná ty počáteční.
  
 
==Programování==
 
==Programování==
„Navrhování programů je tvůrčí činnost, snaha dospět k výsledku nebo jej jeho nastínění vyžaduje vývoj nebo zapojení nových poznatků.“ <ref name="ershov">ERSHOV, A. P. Programming. In: Encyclopedia of Mathematics. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500</ref>
+
''„Navrhování programů je tvůrčí činnost, snaha dospět k výsledku nebo jej jeho nastínění vyžaduje vývoj nebo zapojení nových poznatků.“'' <ref name="ershov">ERSHOV, A. P. Programming. In: ''Encyclopedia of Mathematics''. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500</ref>
  
 
[[Programování]] je činnost, která se skládá z několika fází.
 
[[Programování]] je činnost, která se skládá z několika fází.
 
V první fázi je zapotřebí určit, co je úkol (problém). Následně se problém analyzuje a rozebere do detailů, abychom věděli, co má daný program dělat. Pak přichází na řadu návrh algoritmu, tedy fáze, kde se řeší, jakým způsobem bude program daný problém řešit. [[algoritmus|Algoritmy]] a programováním se zabývá algoritmizace.
 
V první fázi je zapotřebí určit, co je úkol (problém). Následně se problém analyzuje a rozebere do detailů, abychom věděli, co má daný program dělat. Pak přichází na řadu návrh algoritmu, tedy fáze, kde se řeší, jakým způsobem bude program daný problém řešit. [[algoritmus|Algoritmy]] a programováním se zabývá algoritmizace.
  
„Algoritmus musí splňovat několik vlastností. Musí být:
+
''„Algoritmus musí splňovat několik vlastností. Musí být:''
 
*konečný (rezultativní). To znamená, že má jistý počet kroků, které vedou k výsledku
 
*konečný (rezultativní). To znamená, že má jistý počet kroků, které vedou k výsledku
 
*deterministický, tedy každá část algoritmu musí dávat jasně najevo, co dělá, k čemu je určená
 
*deterministický, tedy každá část algoritmu musí dávat jasně najevo, co dělá, k čemu je určená
Řádek 43: Řádek 43:
 
Pokud již byla úloha definována jako algoritmus, zredukuje se na překlad do algoritmického jazyka, který může být přijat počítačem.<ref name="ershov">ERSHOV, A. P. Programming. In: Encyclopedia of Mathematics. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500</ref>
 
Pokud již byla úloha definována jako algoritmus, zredukuje se na překlad do algoritmického jazyka, který může být přijat počítačem.<ref name="ershov">ERSHOV, A. P. Programming. In: Encyclopedia of Mathematics. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500</ref>
 
Pro analýzu a znázorňování algoritmů se používají vývojové diagramy.
 
Pro analýzu a znázorňování algoritmů se používají vývojové diagramy.
Výsledkem je „program, který je zápis algoritmu v programovacím jazyku.“<ref name="motycka" />
+
Výsledkem je ''„program, který je zápis algoritmu v programovacím jazyku.“''<ref name="motycka" />
  
 
Programy se píší ve speciálních, na to určených editorech nebo vývojových prostředích.
 
Programy se píší ve speciálních, na to určených editorech nebo vývojových prostředích.
Jsou to textové editory obohacené o další vlastnosti, jako například zvýrazňování syntaxe, automatické doplňování kódu, možnost instalace dalších doplňků a podobně. Mezi tyto editory patří například NotePad++ nebo český PSPad. Nejrozšířenější vývojová prostředí jsou Eclipse a Netbeans.
+
Jsou to textové editory obohacené o další vlastnosti, jako například zvýrazňování syntaxe, automatické doplňování kódu, možnost instalace dalších doplňků a podobně. Mezi tyto editory patří například NotePad++ nebo český PSPad.<ref name="gube">GUBE, Jacob. The 15 Most Popular Text Editors for developers. In: ''Six Revisions:'' Useful Information for Web Developers & Designers [online]. c2008, 2013 [cit. 2013-05-28]. Dostupné z: http://sixrevisions.com/web-development/the-15-most-popular-text-editors-for-developers/</ref>
  
 
==Programovací jazyky==
 
==Programovací jazyky==
„Programovací jazyk je umělý a je zpravidla velmi zredukovanou podmnožinou přirozeného anglického jazyka.“<ref name="motycka">MOTYČKA, Arnošt. ''Algoritmizace''. 1. vyd. Brno: Konvoj, 1999, 75 s. Scriptum. ISBN 80-856-1580-0.</ref>  Programovací jazyky jsou tedy názvy příkazů a funkcí odvozených z anglického jazyka. Bývají to většinou zkratky slov, například funkce strLen() odvozená od String Length(délka řetězce), nebo iostream = input output stream (vstupně výstupný proud).
+
''„Programovací jazyk je umělý a je zpravidla velmi zredukovanou podmnožinou přirozeného anglického jazyka.“''<ref name="motycka">MOTYČKA, Arnošt. ''Algoritmizace''. 1. vyd. Brno: Konvoj, 1999, 75 s. Scriptum. ISBN 80-856-1580-0.</ref>  Programovací jazyky jsou tedy názvy příkazů a funkcí odvozených z anglického jazyka. Bývají to většinou zkratky slov, například funkce strLen() odvozená od String Length(délka řetězce), nebo iostream = input output stream (vstupně výstupný proud).
  
 
[[Programovací jazyk]]y lze rozdělit do tří skupin. Tu první tvoří programovací jazyky '''nízké úrovně''', jako například Assembler, které se zabývají ovládáním těch nejzákladnějších elementů, např. paměť počítače nebo práce s bity.
 
[[Programovací jazyk]]y lze rozdělit do tří skupin. Tu první tvoří programovací jazyky '''nízké úrovně''', jako například Assembler, které se zabývají ovládáním těch nejzákladnějších elementů, např. paměť počítače nebo práce s bity.
 
Od této úrovně se odvíjejí jazyky '''střední úrovně'''. Jsou to jazyky C, C++, Pascal, Perl obsahující příkazy,  funkce a procedury, které provedou veškeré potřebné úkony nižších úrovní. Příklad: print(), read().
 
Od této úrovně se odvíjejí jazyky '''střední úrovně'''. Jsou to jazyky C, C++, Pascal, Perl obsahující příkazy,  funkce a procedury, které provedou veškeré potřebné úkony nižších úrovní. Příklad: print(), read().
 
Jazyky C++ a Java patří mezi ty '''vyšší''', protože dokážou pracovat s objekty reálného světa, kterým se pak přiřazují vlastnosti do takzvaných atributů a mají také funkce (metody), které s těmito vlastnosti pracují.
 
Jazyky C++ a Java patří mezi ty '''vyšší''', protože dokážou pracovat s objekty reálného světa, kterým se pak přiřazují vlastnosti do takzvaných atributů a mají také funkce (metody), které s těmito vlastnosti pracují.
Od nich se dále odvíjejí další jazyky a tak vznikají jazyky '''nejvyšší úrovně''', kam patří například Python nebo [[SQL]], kde se místo příkazů a funkcí používají takzvané dotazy (query). Například: „Vyber z tabulky xy jméno, kde věk je větší než x“.<ref>Low, mid, high level language, what's the difference?. In: Stack Over Flow [online]. 2010-08-12. c2008, 2013 [cit. 2013-04-07]. Dostupné z: http://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference</ref>
+
Od nich se dále odvíjejí další jazyky a tak vznikají jazyky '''nejvyšší úrovně''', kam patří například Python nebo [[SQL]], kde se místo příkazů a funkcí používají takzvané dotazy (query).<ref>Low, mid, high level language, what's the difference?. In: ''Stack Overflow'' [online]. 2010-08-12. c2008, 2013 [cit. 2013-04-07]. Dostupné z: http://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference</ref><ref name="holmann">HOLLMANN, Viktor. Programovací jazyky: Historie a současnost. In: Computerworld [online]. 1998-05-01. 2013 [cit. 2013-04-07]. Dostupné z: http://computerworld.cz/archiv/programovaci-jazyky-historie-a-soucasnost-9520</ref> Například: ''„Vyber z tabulky xy jméno, kde věk je větší než x“''.
  
 
==Poznámky==
 
==Poznámky==
Řádek 62: Řádek 62:
 
*Applications Programmer. In: ''Discover It'' [online]. c2005, 2008 [cit. 2013-04-07]. Dostupné z: http://www.discoverit.org/applications_programmer.aspx
 
*Applications Programmer. In: ''Discover It'' [online]. c2005, 2008 [cit. 2013-04-07]. Dostupné z: http://www.discoverit.org/applications_programmer.aspx
 
*ERSHOV, A. P. Programming. In: ''Encyclopedia of Mathematics''. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500
 
*ERSHOV, A. P. Programming. In: ''Encyclopedia of Mathematics''. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500
 +
*GUBE, Jacob. The 15 Most Popular Text Editors for developers. In: ''Six Revisions'': Useful Information for Web Developers & Designers [online]. c2008, 2013 [cit. 2013-05-28]. Dostupné z: http://sixrevisions.com/web-development/the-15-most-popular-text-editors-for-developers/
 +
*HALUZA, Pavel. ''Výpočetní technika I: Organizační informace; Úvod do výpočetní techniky'' [prezentace v Misrosoft Powerpoint]. Brno, PEF MENDELU, 2011. Str. 51. Dostupné z: https://akela.mendelu.cz/~xhorak10/1.semestr/pc/V%FDpo%E8etn%ED%20technika%201/VT1_prednaska01/vt1-01.pdf
 
*HOLLMANN, Viktor. Programovací jazyky: Historie a současnost. In: ''Computerworld'' [online]. 1998-05-01. 2013 [cit. 2013-04-07]. Dostupné z: http://computerworld.cz/archiv/programovaci-jazyky-historie-a-soucasnost-9520
 
*HOLLMANN, Viktor. Programovací jazyky: Historie a současnost. In: ''Computerworld'' [online]. 1998-05-01. 2013 [cit. 2013-04-07]. Dostupné z: http://computerworld.cz/archiv/programovaci-jazyky-historie-a-soucasnost-9520
 
*HORA, Vladimír a David MAZEL. ''Ovládání počítače''. 1. vyd. Brno: Masarykova univerzita, 2007. Dostupné z: https://is.muni.cz/auth/el/1490/kurzy2007-nekreditove/u3v_pc1/um/U3V_scripta_Z1_WEB.pdf
 
*HORA, Vladimír a David MAZEL. ''Ovládání počítače''. 1. vyd. Brno: Masarykova univerzita, 2007. Dostupné z: https://is.muni.cz/auth/el/1490/kurzy2007-nekreditove/u3v_pc1/um/U3V_scripta_Z1_WEB.pdf
 
*Low, mid, high level language, what's the difference?. In: ''Stack Overflow'' [online]. 2010-08-12. c2008, 2013 [cit. 2013-04-07]. Dostupné z: http://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference
 
*Low, mid, high level language, what's the difference?. In: ''Stack Overflow'' [online]. 2010-08-12. c2008, 2013 [cit. 2013-04-07]. Dostupné z: http://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference
*KOSEK, Jiří.'' PHP - tvorba interaktivních internetových aplikací'': podrobný průvodce. Vyd. 1. Praha: Grada, 1999, 490 s. Průvodce (Grada). ISBN 80-716-9373-1.
 
 
*MOTYČKA, Arnošt. ''Algoritmizace''. 1. vyd. Brno: Konvoj, 1999, 75 s. Scriptum. ISBN 80-856-1580-0.
 
*MOTYČKA, Arnošt. ''Algoritmizace''. 1. vyd. Brno: Konvoj, 1999, 75 s. Scriptum. ISBN 80-856-1580-0.
 
*NYGRÝN, Pavel. Historie počítačů: Od elektronky po internet. In: ''Živě'' [online]. 2011-08-15. c1996, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zive.cz/clanky/historie-pocitacu-od-elektronky-po-internet/sc-3-a-147343/default.aspx
 
*NYGRÝN, Pavel. Historie počítačů: Od elektronky po internet. In: ''Živě'' [online]. 2011-08-15. c1996, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zive.cz/clanky/historie-pocitacu-od-elektronky-po-internet/sc-3-a-147343/default.aspx
*RYBIČKA, Jiří. ''Informatika pro ekonomy''. 3. vyd. Brno: Konvoj, 2007, 139 s. ISBN 978-80-7302-128-3.
 
 
*WEEDA, Renske. ''History of Informatics'': Ada Lovelace [online]. Radboud University Nijmegen, Faculty of Science, 2004 [cit. 2013-04-07]. Dostupné z: http://www.cs.ru.nl/~hans/Geschiedenis/Papers/Renske.pdf
 
*WEEDA, Renske. ''History of Informatics'': Ada Lovelace [online]. Radboud University Nijmegen, Faculty of Science, 2004 [cit. 2013-04-07]. Dostupné z: http://www.cs.ru.nl/~hans/Geschiedenis/Papers/Renske.pdf
 
*ZAMRZLA, Josef. Testování a tvorba testovatelného kódu v PHP. In: ''Zdroják'': O tvorbě webových stránek a aplikací [online]. 2012-08-13. 2009, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/
 
*ZAMRZLA, Josef. Testování a tvorba testovatelného kódu v PHP. In: ''Zdroják'': O tvorbě webových stránek a aplikací [online]. 2012-08-13. 2009, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/

Aktuální verze z 28. 5. 2013, 15:42

Autor: Dana Tomančáková

Klíčová slova: programátor, programování, programovací jazyk, algoritmus

Synonyma: vývojář, systémový inženýr

Související pojmy:

nadřazené – počítač, informatika, elektrotechnika
podřazenéprogramovací jazyk, aplikace, program

Charakteristika

Programátor neboli vývojář je ten, kdo navrhuje, píše a testuje počítačové systémy, programy nebo aplikace. S prací programátora se můžeme setkat ve všech elektrotechnických zařízeních (od her v mobilních zařízeních po hardware v osobním počítači). Tyto programy se píší v programovacích jazycích v editorech určených přímo k práci s kódem. Programátory můžeme rozdělit na dvě hlavní skupiny, a to podle jejich zaměření:

  • Programátoři aplikací (software)
  • Programátoři systémů (hardware)[1]

Vývoj programu není práce jen pro programátora, např. u psaní kódu webových stránek se odvíjí a závisí od návrhu designéra a jeho HTML kódu, který programátor uvádí do chodu. Důležitou složkou programátorovi práce je také testování zdrojového kódu. Jde jak o chod programu, tak i o přistupování k síti, používání databází, funkčnost ve všech prohlížečích nebo chování celé aplikace na simulované podněty.[2] Pro simulaci těchto činností se používají falešné objekty, které nevykonávají žádnou skutečnou činnost, pouze splňují nějaké požadované rozhraní.[2]

Historie

Za vůbec první programátorku je považována Ada Augusta Lovelace (dcera Lorda Byrona), která navrhla a vytvořila předchůdce dnešních programovacích jazyků. Popsala práci Babbagova Analytického stroje a také pro něj psala první programy. „Její text o stroji se stal prvním, který popisoval proces dnes známý jako počítačové programování.“ [3]

Pracovním nástrojem programátorů na prvních programovatelných počítacích strojích z 30. let 20. století byly děrné štítky, ty představovaly 1 a 0 binární soustavy a řídili počítače. Ve 40. letech sestrojil Conrad Zuse elektrický počítač Z1 a později také první programovací jazyk Plankalkul pro počítač Z3, který byl ovlivněn Turingovým strojem a Lambda kalkul Alonza Churche.[4]

V 50. až 60. letech 20. století vznikaly první operační systémy a s nimi první vyšší programovací jazyky (Cobol, Fortran, Algol)[5]„místo řad 1 a 0 dvojkové soustavy se zadávaly příkazy v podobě čísel osmičkové nebo šestnáctkové soustavy, později i skutečná slova z písmen“.[6] Z prvních programovacích jazyků se až do dnešní doby vyvinulo a dále vyvíjí velké množství dalších jazyků. Dnes jsou jich známy stovky a většina z nich jen zdaleka připomíná ty počáteční.

Programování

„Navrhování programů je tvůrčí činnost, snaha dospět k výsledku nebo jej jeho nastínění vyžaduje vývoj nebo zapojení nových poznatků.“ [7]

Programování je činnost, která se skládá z několika fází. V první fázi je zapotřebí určit, co je úkol (problém). Následně se problém analyzuje a rozebere do detailů, abychom věděli, co má daný program dělat. Pak přichází na řadu návrh algoritmu, tedy fáze, kde se řeší, jakým způsobem bude program daný problém řešit. Algoritmy a programováním se zabývá algoritmizace.

„Algoritmus musí splňovat několik vlastností. Musí být:

  • konečný (rezultativní). To znamená, že má jistý počet kroků, které vedou k výsledku
  • deterministický, tedy každá část algoritmu musí dávat jasně najevo, co dělá, k čemu je určená
  • efektivní = rychlý
  • obecný, tedy být řešením pro libovolná vstupní data
  • opakovatelný, na základě stejných hodnot poskytnout stejné výsledky
  • srozumitelný, přehledný a modifikovatelný, což zaručuje jeho rozšiřování a vylepšování“[8]

Pokud již byla úloha definována jako algoritmus, zredukuje se na překlad do algoritmického jazyka, který může být přijat počítačem.[7] Pro analýzu a znázorňování algoritmů se používají vývojové diagramy. Výsledkem je „program, který je zápis algoritmu v programovacím jazyku.“[8]

Programy se píší ve speciálních, na to určených editorech nebo vývojových prostředích. Jsou to textové editory obohacené o další vlastnosti, jako například zvýrazňování syntaxe, automatické doplňování kódu, možnost instalace dalších doplňků a podobně. Mezi tyto editory patří například NotePad++ nebo český PSPad.[9]

Programovací jazyky

„Programovací jazyk je umělý a je zpravidla velmi zredukovanou podmnožinou přirozeného anglického jazyka.“[8] Programovací jazyky jsou tedy názvy příkazů a funkcí odvozených z anglického jazyka. Bývají to většinou zkratky slov, například funkce strLen() odvozená od String Length(délka řetězce), nebo iostream = input output stream (vstupně výstupný proud).

Programovací jazyky lze rozdělit do tří skupin. Tu první tvoří programovací jazyky nízké úrovně, jako například Assembler, které se zabývají ovládáním těch nejzákladnějších elementů, např. paměť počítače nebo práce s bity. Od této úrovně se odvíjejí jazyky střední úrovně. Jsou to jazyky C, C++, Pascal, Perl obsahující příkazy, funkce a procedury, které provedou veškeré potřebné úkony nižších úrovní. Příklad: print(), read(). Jazyky C++ a Java patří mezi ty vyšší, protože dokážou pracovat s objekty reálného světa, kterým se pak přiřazují vlastnosti do takzvaných atributů a mají také funkce (metody), které s těmito vlastnosti pracují. Od nich se dále odvíjejí další jazyky a tak vznikají jazyky nejvyšší úrovně, kam patří například Python nebo SQL, kde se místo příkazů a funkcí používají takzvané dotazy (query).[10][11] Například: „Vyber z tabulky xy jméno, kde věk je větší než x“.

Poznámky

  1. Applications Programmer. In: Discover It [online]. c2005, 2008 [cit. 2013-04-07]. Dostupné z: http://www.discoverit.org/applications_programmer.aspx
  2. 2,0 2,1 ZAMRZLA, Josef. Testování a tvorba testovatelného kódu v PHP. In: Zdroják: O tvorbě webových stránek a aplikací [online]. 2012-08-13. 2009, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/
  3. WEEDA, Renske. History of Informatics: Ada Lovelace [online]. Radboud University Nijmegen, Faculty of Science, 2004 [cit. 2013-04-07]. Dostupné z: http://www.cs.ru.nl/~hans/Geschiedenis/Papers/Renske.pdf
  4. NYGRÝN, Pavel. Historie počítačů: Od elektronky po internet. In: Živě [online]. 2011-08-15. c1996, 2013 [cit. 2013-04-07]. Dostupné z: http://www.zive.cz/clanky/historie-pocitacu-od-elektronky-po-internet/sc-3-a-147343/default.aspx
  5. HORA, Vladimír a David MAZEL. Ovládání počítače. 1. vyd. Brno: Masarykova univerzita, 2007. Dostupné z: https://is.muni.cz/auth/el/1490/kurzy2007-nekreditove/u3v_pc1/um/U3V_scripta_Z1_WEB.pdf
  6. HALUZA, Pavel. Výpočetní technika I: Organizační informace; Úvod do výpočetní techniky [prezentace v Misrosoft Powerpoint]. Brno, PEF MENDELU, 2011. Str. 51. Dostupné z: https://akela.mendelu.cz/~xhorak10/1.semestr/pc/V%FDpo%E8etn%ED%20technika%201/VT1_prednaska01/vt1-01.pdf
  7. 7,0 7,1 ERSHOV, A. P. Programming. In: Encyclopedia of Mathematics. [online]. 2011-02-07. c2002, 2012 [cit. 2013-04-07]. Dostupné z: http://www.encyclopediaofmath.org/index.php?title=Programming&oldid=12500 Chybná citace: Neplatná značka <ref>; název „ershov“ použit vícekrát s různým obsahem
  8. 8,0 8,1 8,2 MOTYČKA, Arnošt. Algoritmizace. 1. vyd. Brno: Konvoj, 1999, 75 s. Scriptum. ISBN 80-856-1580-0.
  9. GUBE, Jacob. The 15 Most Popular Text Editors for developers. In: Six Revisions: Useful Information for Web Developers & Designers [online]. c2008, 2013 [cit. 2013-05-28]. Dostupné z: http://sixrevisions.com/web-development/the-15-most-popular-text-editors-for-developers/
  10. Low, mid, high level language, what's the difference?. In: Stack Overflow [online]. 2010-08-12. c2008, 2013 [cit. 2013-04-07]. Dostupné z: http://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference
  11. HOLLMANN, Viktor. Programovací jazyky: Historie a současnost. In: Computerworld [online]. 1998-05-01. 2013 [cit. 2013-04-07]. Dostupné z: http://computerworld.cz/archiv/programovaci-jazyky-historie-a-soucasnost-9520

Použitá literatura