Programování - úvod Kapitola seznamuje se základními pojmy programování. Klíčové pojmy: Program, proces programování, programovací jazyky Programování Programování je zdlouhavý proces. Jeho cílem je vytvořit program, který bude mít požadované výstupy a chování. Programování obnáší mnoho znalostí z různých oborů. Proces tvorby program se skládá z několika částí. Zároveň i konečný program by měl míti základní vlastnosti. Proces programování Proces se skládá ze čtyř základních částí: 1. Analýza problému Na začátku musí programátor zjistit, co uživatel přesně potřebuje - přesná specifikace úlohy. Specifikace zadání obsahuje všechny důležité funkce programu. 2. Algoritmizace vymyslet postup, jak danou úlohu řešit 3. Programování donutit počítač, aby tento postup realizoval Alfa-testování provádí autor Beta-testování provádí vybraná skupina uživatelů 4. Testování ověřování funkčnosti program Vlastnosti dobrého programu: Správnost řeší to co má Efektivita rychlost, nároky na paměť Modifikovatelnost snadná upravitelnost, rozšiřitelnost Srozumitelnost komentáře, proč to dělá a jak to dělá Odolnost blbuvzdornost, kontrola vstupních dat Uživatelský přívětivost konfortní grafické prostředí 5/5/2014 Programování - úvod 1/5
Pojem programovací jazyk Programovací jazyk je prostředek pro zápis algoritmů, jež mohou být provedeny na počítači. Zápis algoritmu ve zvoleném programovacím jazyce se nazývá program. Programovací jazyk je soubor pravidel pro zápis algoritmu. Rozdělení programovacích jazyků Podle míry abstrakce (vzdálenosti programu od hardwaru počítače): vyšší programovací jazyky většina programovacích jazyků jazyk symbolických instrukcí - symbolicky zapisované instrukce a adresy strojového kódu příslušného procesoru. z JSA se označuje jako assembler Podle způsobu překladu a spouštění kódu: kompilované programovací jazyky o např. Pascal, C. o Před spuštěním se celý kód pomocí překladače (kompilátoru) přeloží do strojového kódu. Program pak běží v počítači rychleji. Sebemenší změna zdrojového programu znamená vždy celý postup opakovat - náročnost na ladění programů interpretované programovací jazyky o např. BASIC, Perl, Python. Ty lze dále rozdělit na jazyky: o za běhu interpretované - program se za běhu interpretuje - provádí. Interpretovaný program pracuje pomaleji než kompilovaný, ladění je však snažíš. o interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do strojového kódu počítače (např. Java, Python). Podle charakteru programovacího jazyky: procedurální (imperativní) o program se skládá z příkazů, které popisují algoritmus o strukturované - program se rozdělí na menší části a to na procedury a funkce a ty se sestaví v celek (C,BASIC) o objektové - práce s objekty(java) neprocedurální (deklarativní) o specifikují cíl a algoritmizace je ponechána programu daného jazyka o Funkcionální - Lisp o Logické - Prolog 5/5/2014 Programování - úvod 2/5
Další dělení: Strojově orientovaný programovací jazyk - Assembler o Počítač rozumí pouze strojovému kódu (dvojková soustava) o Na počátku byl strojový kód, takže všechny příkazy byly reprezentovány čísly, program se převáděl na soustavu čísel o Velkou nevýhodou byla závislost na typu procesoru o Pro člověka je zápis ve strojovém kódu velice obtížný, proto byla čísla nahrazena slovním zápisem = mnemotechnickým vyjádřením strojového kódu Vyšší programovací jazyky o Překládané Celý vstupní program se nejdříve převede do výstupního spustitelného formátu program, který převádí data nebo zdrojový kód program ze vstupního formát do výstupního formát Vzniká nový soubor, nejčastěji s příponou.exe či.bat Při změně provedení změny ve zdrojovém kódu se musí vždy znovu přeložit Např. Pascal, Basic, C Soubor ve zdrojovém tvaru = kompilátor Soubor v cílovém tvaru Obr. 1:Vyšší programovací jazyky - překládané o Interpretované Nejsou překládané, ale spouštějí se pomocí speciálního programu interpret Interpret speciální program, který příkazy okamžitě vykonává Nevýhodou je pomalejší tempo, při každém spuštění se program překládá znovu, nelze jej optimalizovat Vhodné pro internetové aplikace, a příkazy zadané v příkazové řádce OS Např. HTML, JavaScript, SQl,. Vstupní data interpret výsledek Obr. 2:Vyšší programovací jazyky - interpretované 5/5/2014 Programování - úvod 3/5
o Kombinované Např. Java nejdříve se přeloží do binárního kódu a následně s interpretuje Vstupní data překladač interpret výsledek Obr. 3:Vyšší programovací jazyky - kombinované Strukturované programování o Problém je dělen do menších podproblémů a ty mohou být dále ještě děleny o Jednotlivé problém se vyjadřují procedurami (funkcemi) Modulární programování o Pro omezení chyb se program rozděluje na vice relativně nezávislých celků modulů o K jednotlivým modulům přistupuje program přes rozhraní - většinou soubor funkcí pro přístup k datum v modulu Modul 1 Zdrojový kód Modul 2 Zdrojový kód = compiler = compiler Modul 1 Relativní kód Modul 2 Relativní kód linker Spustitelný program Absolutní adresy Obr. 4:Modulární programování Objektově orientované programování o Objekt je vyjádřením určitého konkrétního předpisu tzv. Třídy o Základními vlastnostmi jsou: Zapouzdření přístup k datum je jen přes funkce Dědičnosti třídy se postupně specializují a dědí vlastnosti předchůdců Polymorfismus jednu činnosti, funkci, může každý z objektů vykonávat různým způsobem 5/5/2014 Programování - úvod 4/5
Přehled nejznámějších programovacích jazyků Název Rok vzniku Zařazení a charakteristika Fortran 1957 Lisp 1958 COBOL 1959 ALGOL 1960 BASIC 1963 Strukturovaný procedurální jazyk určený především pro vědeckotechnické výpočty Funkcionální programovací jazyk, který se používá v oboru umělá inteligence. Používá ho také např. konstrukční program AutoCAD. Strukturovaný procedurální jazyk pro hromadné zpracování dat a později i databázové aplikace Historický strukturovaný procedurální jazyk pro matematické aplikace, později ovlivnil vývoj dalších jazyků např. Pascal Skupina strukturovaných procedurálních jazyků určených zejména pro výuku programování Pascal 1971 Strukturovaný procedurální jazyk původně určený pro výuku programování Prolog 1972 Deklarativní programovací jazyk pro logické programování. C 1973 Strukturovaný procedurální jazyk pro systémové programování, ale i aplikace. C++ 1983 Objektově orientovaný programovací jazyk, dnes velice používaný Python 1991 Dynamický objektově orientovaný skriptovací programovací jazyk Perl 1991 Interpretovaný programovací jazyk, který se s rozvojem internetu stal velmi populárním nástrojem pro tvorbu CGI skriptů Java 1995 Objektově orientovaný programovací jazyk, vychází z C a C++ Zdroje dat: PŘEHLED PROGRAMOVACÍCH JAZYKŮ [ONLINE] 28.7.2013 Z HTTP://GYMNAZIUM.MILEVSKO.CZ/RUZNE/MATURITA_IKT_11/PROGRAMOVACI_JAZYK.HTML Úvod do paradigmat programování, Skoupil Davit, skripta Přírodovědecká fakulta UP Olomouc, Dostupné [online] 24.8.2013 na: http://phoenix.inf.upol.cz/esf/ucebni/uvod_para.pdf 5/5/2014 Programování - úvod 5/5