LIMSwiki

Tento článek je o procesu při tvorbě počítačového programu. O formě hudební produkce pojednává článek Programování (hudba).
Informatika

Programování je v informatice proces od návrhu řešení problému pomocí výpočetní techniky ke spustitelnému počítačovému programu. Zahrnuje činnosti jako je analýza problému, jeho pochopení, nalezení algoritmu a zápis zdrojového kódu v cílovém programovacím jazyce (kódování, anglicky coding).[1][2] Účelem programování je nalezení takové sekvence příkazů (resp. strojových instrukcí), které může počítač provést, a zadaný úkol tak automatizovaně vyřešit. Proces psaní zdrojových kódů často vyžaduje odborné znalosti v mnoha různých oborech, například návrhu aplikací a jejich rozhraní, logiky a algoritmizace.

Související činností je i testování a ladění počítačového programu (software), včetně jeho následné údržby. Celkově se vše označuje jako proces vývoje softwaru a využívá se při něm softwarové inženýrství.

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.[3]

V roce 1206 Al-Džazárí postavil a ve své knize Kniha znalostí důmyslných mechanických zařízení popsal programovatelný automat, bubeníka, který natočením vaček měnil rytmy a vzory bubnování.[4]

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.[5][6]

Okolo roku 1830 použil děrné štítky také Charles Babbage pro svůj analytický stroj.[7]

První známou programátorkou byla Ada Lovelace (18151852), dcera básníka lorda Byrona. Zabývala se programováním analytického stroje (anglicky Analytical Engine), který navrhl Charles Babbage.

Programovací paradigmata

Podrobnější informace naleznete v článku Programovací paradigma.

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.

Způsob (metodika) vývoje

Existují v podstatě dva způsoby vývoje software.

Kaskádový

Kaskádový (též vodopá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).

Jednotlivé fáze se neprolínají, ale jedna navazuje na druhou. Tato vlastnost je i hlavní nevýhodou této metody – u velkých a časově náročných projektů může být čas potřebný pro provedení příslušné etapy tak dlouhý, že podmínky, do kterých je výsledný software nasazen, si žádají zcela jiné požadavky, než byly identifikovány na začátku projektu.

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í.

Etapy známé z vodopádového modelu platí i zde, ale aplikují se na mnohem menší části projektu (např. dílčí funkcionalitu, jednotlivé moduly). Nově identifikovaný požadavek je ihned analyzován, implementován a podroben revizi (testování). Z pohledu celého projektu se jeví, že příslušné fáze probíhají 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ázejí a dále ho rozšiřují další metody programování: aspektové, agilní a extrémní.

Programovací jazyky

Programování v BASICu
Podrobnější informace naleznete v článcích Programovací jazyk a Seznam programovacích jazyků.

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

Související informace naleznete také v článku CASE 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.

  1. BEBBINGTON, Shaun. What is coding [online]. 2014 [cit. 2014-03-03]. Dostupné online. (anglicky) 
  2. BEBBINGTON, Shaun. What is programming [online]. 2014 [cit. 2014-03-03]. Dostupné online. (anglicky) 
  3. SAMPLE, Ian. Mysteries of computer from 65BC are solved [online]. The Guardian, 2006-11-30 [cit. 2014-03-03]. Dostupné online. (anglicky) 
  4. DALAKOV, Georgi. The Arabic Automata [online]. History of Computers. Dostupné online. (anglicky) 
  5. Jacquard Loom [online]. The Great Idea Finder. Dostupné online. (anglicky) 
  6. ESSINGER, James. Jacquard's Web: How a Hand-Loom Led to the Birth of the Information Age. [s.l.]: Oxford University Press, USA, 2004-12-01. Dostupné online. ISBN 978-0-19-280577-5. (anglicky) 
  7. WEBER, Alan S. Nineteenth-Century Science, An Anthology. [s.l.]: Broadview Press, 2000. Dostupné online. ISBN 978-1-55111-165-0. (anglicky) 

Literatura

Související články

Externí odkazy

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu programování na Wikimedia Commons