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. Překladač 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
Překladač – 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
Překladač = 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é Vstupní data
Např. Java – nejdříve se přeloží do binárního kódu a následně s interpretuje
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
Překladač = compiler
Modul 1 Relativní kód
Spustitelný program linker
Modul 2 Zdrojový kód
Překladač = compiler
Modul 2 Relativní kód
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:
5/5/2014
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
Programování - úvod
4/5
Přehled nejznámějších programovacích jazyků
Název
Rok vzniku
Zařazení a charakteristika
Fortran
1957
Strukturovaný procedurální jazyk určený především pro vědeckotechnické výpočty
Lisp
1958
Funkcionální programovací jazyk, který se používá v oboru umělá inteligence. Používá ho také např. konstrukční program AutoCAD.
COBOL
1959
Strukturovaný procedurální jazyk pro hromadné zpracování dat a později i databázové aplikace
ALGOL
1960
Historický strukturovaný procedurální jazyk pro matematické aplikace, později ovlivnil vývoj dalších jazyků např. Pascal
BASIC
1963
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