Programování
Programování je proces zahrnující činnosti od návrhu algoritmu, psaní, testování a ladění zdrojového kódu počítačového programu (software), včetně následné údržby.
Návrh algoritmu obvykle určuje obecný postup řešení dané úlohy. Zdrojový kód programu je zápisem algoritmu ve zvoleném programovacím jazyce. Programem (algoritmem) nemusí být nutně počítačový program — programy jsou např. i návody k použití, recepty v kuchařkách apod.
Cílem programování je vytvořit program, který vykazuje určité žádoucí chování. Proces psaní zdrojových kódů často vyžaduje odborné znalosti v mnoha různých oborech, včetně znalosti oblasti použití.
V rámci softwarového inženýrství je programování součástí vývojového cyklu software (anglicky Software development process).
Historie programování
První známý kalkulátor se znaky programování byl mechanismus z Antikythéry ze starověkého Řecka, který pomocí diferenciálního soukolí zaznamenával pohyby Měsíce a Slunce a s jeho pomocí bylo možné předpovědět zatmění těchto těles a data Olympiád.[1]
V roce 1206 Al-Džazárí postavil a ve své knize Kniha znalostí důmyslných mechanických zařízení popsal programovatelného Automata - bubeníka, který natočením vaček měnil rytmy a vzory bubnování.[2]
V roce 1801 řídil Joseph Marie Jacquard svůj tkalcovský stav pomocí sady děrných štítků, které představovaly tkaný vzor. Jacquardův tkalcovský stav tak mohl produkovat s různými sadami děrných štítků naprosto odlišné vzory.[3][4]
Okolo roku 1830 použil děrné štítky také Charles Babbage pro svůj Analytický stroj.[5]
První známou programátorkou byla Ada Lovelace (1815—1852), dcera básníka lorda Byrona. Zabývala se programováním analytického stroje (anglicky Analytical Engine), který navrhl Charles Babbage.
Programovací paradigmata
Jako programovací paradigma se označuje základní přístup k tvorbě programu. Zahrnuje programovou strukturu, způsob formulace problémů a metodologii jejich řešení, metodiku zpracování apod.
- Imperativní programování (též procedurální programování) – klasický způsob programování.
- Deklarativní programování – opak imperativního: V programu se definuje co se má udělat, ne jak se to má udělat.
- Funkcionální programování - podmnožina deklarativního programování využívající λ-kalkul.
- Objektově orientované programování (zkratka OOP) – programování řízené událostmi, „pracují data“.
- Aspektově orientované programování – rozšíření myšlenky OOP o zapouzdřování průřezových koncernů za pomocí aspektů.
- Generické programování – maximální oddělování algoritmů od datových typů.
- Logické programování – směs imperativního a deklarativního paradigma při jejímž použití jsou počítači předložena fakta a pravidla pomocí kterých se rozhoduje při řešení úloh.
Způsob (metodika) vývoje
Existují v podstatě dva způsoby vývoje software.
Kaskádový
Kaskádový způsob je jeden z prvních způsobů vývoje softwaru a probíhá prakticky ve sledu:
Návrh (analýza) → programování → nasazení u zákazníka (údržba).
S důrazem na to, že jednotlivé části se neprolínají a jedna navazuje na druhou.
Iterační
Dnešní moderní programování vychází z principu, že při psaní mohou vzniknout chyby (a vznikají), a dále z toho, že některé myšlenky je vhodné si ověřit v praxi, než se zahrnou do projektu. Proto se využívá postup:
Návrh (analýza) → programováni → testování.
S důrazem na to, že tyto tři části mohou probíhat současně. Např. Programátor si chce ověřit funkčnost návrhu, a proto vytvoří tzv. „minimální implementaci“ dané části (programování předbíhá návrhu). Nebo se při testování zjistí, že datová prostupnost aplikace je nižší než požadovaná, a proto se daná část přeprogramuje. V ideálním případě se testování účastní i zákazník, který zhotovení programu zadal. Z tohoto principu pak vychází a dále ho rozšiřují další metody:
Aspektové – Agilní – Extrémní.
Programovací jazyky
Pod pojmem programovací jazyk rozumíme prostředek pro zápis algoritmů, jež mohou být provedeny na počítači. Je komunikačním nástrojem mezi programátorem, který v programovacím jazyce formuluje postup řešení daného problému, a počítačem, který program interpretuje technickými prostředky.
Programovací nástroje
Programovací nástroje jsou programy, které programátorům usnadňují vývoj programů. Nejčastějšími nástroji jsou překladače, vývojová prostředí. Další jsou nástroje pro řešení speciálních úkolů (např. automatické generování kódu): bison, flex, yacc.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Computer programming na anglické Wikipedii.
- ↑ Ian Sample, Mysteries of computer from 65BC are solved, The Guardian, 30. listopadu 2006
- ↑ Georgi Dalakov, The Arabic Automata, History of Computers
- ↑ The Great Idea Finder, Jacquard loom
- ↑ James Essinger, Jacquard's Web: How a Hand-Loom Led to the Birth of the Information Age, book description, Oxford University Press, USA, 1. prosince 2004, ISBN 978-0-19-280577-5
- ↑ Alan S. Weber, [1], Nineteenth-Century Science, An Anthology, s.84, Broadview Press, 2000, ISBN 978-1-55111-165-0
Literatura
- Vacek Václav: Učebnice programování PIC, BEN - technická literatura, 2002
- Vacek Václav: Učebnice programování ATMEL s jádrem 8051 BEN - technická literatura, 2002 ISBN 80-7300-043-1
- Bumba Jiří: Programování mikroprocesorů - učebnice; Computer Press,a.s. Brno, 2011. ISBN 978-80-251-2838-1