Počítačový program

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Počítačový program je soubor instrukcí, který je interpretován nebo kompilován k vytvoření počítačem prováděných operací. Programování je proces vytváření těchto programů za pomocí různých programovacích jazyků a technik. Programovací jazyky jsou systémy symbolů, pravidel a nástrojů, které umožňují programátorům psát počítačové programy. Existuje mnoho různých programovacích jazyků, které mají různé úrovně složitosti a specializace. Kódování je způsob, jakým programátoři zapisují počítačové programy do počítače. Po zapsání programu může být programový kód kompilován nebo interpretován, aby umožnil vykonání požadované funkce. Počítačové programy mají široké využití v různých oblastech, včetně obchodu, vědy, komunikačních technologií a zábavy. Programy umožňují automatizovat úkoly, zpracovávat data a komunikovat s uživateli a dalšími počítačovými systémy. Je důležité, aby byly programy správně navrženy a testovány, aby byly spolehlivé a účinné.

Počítačový program (též jen program, obecně pak software) je v informatice posloupnost instrukcí (ne nutně strojových instrukcí), která popisuje realizaci dané úlohy počítačem. Aby počítač mohl vykonávat nějakou činnost, potřebuje mít ve své operační paměti alespoň jeden program. V současné době je v počítači základním programem jádro, které řídí jeho chod a uživatel pak pracuje s aplikačním softwarem.

...
...

Charakteristika

Počítačový program dnes vytváří programátor zápisem algoritmu v nějakém programovacím jazyce. Zdrojový kód je buď nejprve přeložen překladačem do strojového kódu, který je pak přímo vykonáván procesorem, nebo je zdrojový kód vykonáván interpretem (bez existence spustitelného strojového kódu). +more V dřívějších dobách mohl být program realizován přímo v hardwaru zapojením vodičů, děrným štítkem a podobně.

Historie

První programovatelná zařízení

Nejčasnější programovatelná zařízení předchází vynálezu digitálního počítače. V roce 1801 Joseph-Marie Jacquard vymyslel tkalcovský stav, který tkal vzor (květy, listy a jiné symboly) podle předem určených a seřazených děrných štítků. +more Pouhou změnou pořadí štítků byl změněn celý vzor.

Analytický stroj

Charles Babbage se roku 1837 inspiroval „programovatelným“ tkalcovským strojem a pokusil se sestavit první analytický stroj. Zařízení mělo možnost uložit až 1000 čísel o délce až 40 číslic, se kterými se mohlo dále pracovat. +more Zařízení bylo programovatelné pomocí dvou sad děrných štítků. Jedna sada řídila provoz zařízení a druhá sloužila k nastavení vstupních hodnot.

I přes velmi slibný návrh, mnoho využitých finančních zdrojů a hodiny práce se tento projekt nepodařilo zcela dokončit.

Mezi lety 1842-1843 Ada Lovelace přeložila monografii italského generála a matematika hraběte Menabrea, která mimo jiné detailně popisovala metodu pro výpočet Bernoulliho čísla pomocí analytického stroje. Tato poznámka v monografii je mnoha historiky považována za první počítačový program na světě.

Univerzální Turingův stroj

Alan Turing roku 1936 představil univerzální Turingův stroj. Jednalo se o teoretické zařízení, které bylo schopné modelovat všechny výpočetní operace proveditelné na Turingově úplném výpočetním stroji. +more Jedná se o stroj s nekonečně dlouhou páskou určenou pro zápis a čtení s konečným počtem stavů. Stroj může pohybovat páskou libovolným směrem a měnit její obsah dle zadaného algoritmu. Zařízení začíná v počátečním stavu, prochází sekvencí po sobě jdoucích operací a zastaví při výskytu stavu zastavení. Některými specialisty je tento stroj označován za předchůdce programovatelného počítače využívající Von Neumannovu architekturu.

Programovatelné počítače

První vývoj programovatelných počítačů byl zaznamenán v 40. až 50. +more letech 20. století. Za zmínku stojí například počítač Z3 od německého inženýra Konráda Zuse. Jednalo se o programovatelný binární kalkulátor s plovoucí řádovou čárkou, obsahoval smyčky, ale nevyužíval podmíněné skoky. Měl také paměť a výpočetní jednotku založenou na telefonních relé.

Dalším významným představitelem je malé Manchesterské experimentální zařízení (anglicky Manchester Small-Scale Experimental Machine), označované jako Baby, které jako první ukládalo své programové instrukce o velikosti pouze 3 bity do paměti v podobě čísel, a ze kterého později vznikl jeden z prvních počítačů Manchester Mark I.

Počítače vyrobené do roku 1970 měly na svém předním panelu přepínače určené k programování. Samotný program byl napsán na papíře a jednotlivé instrukce byly posléze reprezentován konfigurací přepínačů. +more Tento proces se pak opakoval pro celý program. Počítačový program bylo také možné „nahrát“ pomocí děrných štítků či papírové pásky.

V roce 1961 byl sestrojen unikátní stroj své doby, počítač Burroughs B5000, který byl programován v jazyce ALGOL 60. V roce 1964 vznikl IBM System/360, který se stal na trhu extrémně úspěšným. +more Skládal se z řady šesti počítačů majících stejnou instrukční sadu. Model 30 byl nejmenší a nejlevnější. Zákazníci mohli upgradovat a obdržet stejný aplikační software. Každý System/360 podporoval multiprogramování. Díky podpoře operačního systému mohlo být v paměti více programů. Pokud jeden z nich čekal na vstup či výstup, jiný mohl pracovat. Každý model dokázal také emulovat jiné počítače. Pokud zákazníci upgradovali na System/360, mohli obdržet také aplikační software IBM 7094 nebo IBM 1401. Počítače IBM System/360 byly skutečně průlomové, vyráběly se po tisících a byly komerčně i prakticky využívány.

Rozdělení programů

Všechny počítačové programy označujeme souhrnně jako software (mezi software jsou někdy zahrnována i data). Programy můžeme rozdělit na dvě základní skupiny:

* systémový software - zajišťuje chod počítače * aplikační software - umožňuje využít počítač uživatelem k užitečné činnosti

Systémový software

V současné době je základním programem v počítači jádro, které je součástí operačního systému (například jádro Linuxu, jádro některé verze systému Windows NT, jádro Symbian OS…). Toto jádro je do paměti počítače zaváděno při startu počítače (viz bootování), na čemž se v IBM PC kompatibilních počítačích podílí BIOS (tj. +more firmware) a zavaděč (oboje jsou speciální programy). Během startu počítače se uplatňují další speciální programy. Vše se označuje jako systémový software.

Aplikační software

Operační systém umožňuje uživateli počítač ovládat, spouštět další aplikační software a komunikovat s ním (předávat mu vstupy a získávat výstupy, resp. výsledky jeho činnosti). +more Typickým aplikačním softwarem je například Microsoft Word, LibreOffice, ale i drobné aplikace (tzv. gadgety).

Programovací jazyky

První počítače byly programovány buď přímým zapojením obvodů nebo ve strojovém kódu procesoru. V současné době se programy obvykle zapisují v některém z programovacích jazyků ve formě zdrojového kódu, aby byl zápis srozumitelný pro člověka. +more Úpravy zdrojového kódu zahrnují testování, analýzu či ladění, a velice často probíhá ve spolupráci s ostatními programátory na společném projektu. Osoba, která tuto činnost vykonává, je označována jako programátor, vývojář softwaru či softwarový architekt, v závislosti na náplni práce, která se u jednotlivých pozic liší. Běžný trend je, že z kvalitních vývojářů se stávají analytici či softwaroví architekti, kteří navrhují komplexní informační systémy. Tato velice často zdlouhavá činnost se nazývá vývoj softwaru.

Spouštění programu

Počítačové programy jsou obvykle uchovány ve stálé, nevolatilní paměti (např. pevný disk) do té doby, dokud nejsou vyžádány uživatelem ke zpracování, a to buď přímo či nepřímo jiným procesem. +more Na základě tohoto požadavku je program operačním systémem načten do operační paměti, kde je jeho posloupnost instrukcí přímo dosažitelná procesorem. Spuštěný program, který je vykonáván, se nazývá proces. Proces se v operační paměti skládá z vlastního programu a dynamicky se měnících dat.

Souběžné zpracování

V současných multitaskingových systémech je spuštěno zároveň více různých programů (resp. procesů). +more Jeden program může být spuštěn vícekrát a vytvořit tak více procesů (např. dvakrát spuštěný webový prohlížeč, přičemž v každém je zobrazena jiná webová stránka). Jeden proces může být složen z více vláken, která obvykle navzájem spolupracují.

Většina současných operačních systémů podporuje multitasking, který umožňuje zpracování několika programů (resp. procesů) zároveň, které jsou zdánlivě prováděny současně. +more Jádro operačního systému ve skutečnosti všechny procesy velmi rychle střídá (změna kontextu zhruba sto až několik tisíc přepnutí za sekundu), takže pro uživatele vzniká dojem jejich současného běhu. V dnešní době umožňují víceprocesorové nebo vícejádrové počítače zpracování více programů naráz bez ztráty výkonu.

Ukončení procesu

Procesor vykonává instrukce běžícího programu (procesu) instrukci za instrukcí až do jeho ukončení. K ukončení procesu dochází buď standardně (dojde k vykonání instrukce, která má za úkol program ukončit) nebo pokud nastane nějaká chyba, například programátorská nebo hardwarová.

Vznik programu

Vestavěný program

USB flash paměti je ovládaný vestavěným programem tzv. +more firmware. Některé počítačové programy, případně celé vestavěné systémy, jsou zabudované do hardware napevno. Aby mohl nějaký systém naběhnout (tzv. nabootovat z angl. boot), vyžaduje uložený počítačový program tzv. vestavěný program, uložený v paměti ROM. Proces bootování je nezbytný k inicializaci všech částí systému, od registrů procesoru, přes ovladače zařízení až po obsah volatilní paměti. Po procesu zavádění načte tento zabudovaný program operační systém, a nastaví čítač instrukcí pro započetí běžných operací. Periferní zařízení mohou mít zabudovaný program, tzv. firmware, pro ovládání jejich činnosti nezávisle na hostitelském počítači. Firmware se používá v případech, kdy se neočekává jeho změna nebo pokud je taková změna výjimečná; případně tehdy, kdy je nutné zajistit, že nedojde ke ztrátě programu při výpadku energie.

Ruční programování

Zásuvka pro ruční vstup na 16bitovém počítači Data General Nova 3 Počítačové programy byly dříve vkládány do hlavního procesoru ručně, prostřednictvím zásuvek k tomu určených. +more Instrukce pro procesor byly reprezentovány nastavením polohy zapnuto/vypnuto. Poté, co byla nastavena potřebná konfigurace, stisklo se tlačítko pro vykonání programu. Poté byl program vykonán a tento proces se několikrát opakoval. Dříve byly pro tyto ruční vstupy používány zejména děrné štítky, ale také děrné pásky.

Automatické generování programu

Automatické generování kódu je styl programování, který vytváří zdrojový kód prostřednictvím generických tříd, prototypů či šablon za účelem zvýšení produktivity programátora. Zdrojový kód je generován programovacími nástroji nebo integrovaným vývojovým prostředím. +more Nejjednodušší formou generátoru zdrojového kódu jsou tzv. makra, jakými je například preprocesor jazyka C, který nahrazuje šablony částí zdrojových kódů na základě poměrně jednoduchých pravidel.

Tzv. software engine generuje zdrojový kód nebo značkovací kód, který se současně stává vstupem do dalšího procesu. +more Analogicky bychom mohli říci, že jeden proces pohání další, používaje počítačový kód jako palivo. Aplikační server může například dodávat aplikace ke klientským počítačům. Příkladem takového enginu je Wiki, což je aplikační server, který umožňuje uživatelům tvořit dynamický obsah webu prostřednictvím článků. Wiki generují HTML kód, CSS definice, Java applety, a skripty v jazyce JavaScript, které jsou poté interpretovány internetovým prohlížečem.

Reference

Externí odkazy

Kategorie:Programování

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top