Počítačový program
Z Wikipedie, otevřené encyklopedie
Počítačový program je nějakým způsobem zaznamenaný postup, jak realizovat zadanou úlohu (algoritmus). Obvykle je program zapsán v nějakém programovacím jazyku nebo strojovém kódu počítače a je tvořen posloupností příkazů. Stejně tak ale může být realizován přímo elektronickými obvody (automatická pračka), mechanickým strojem (hrací skříň) nebo slovním popisem (kuchařská kniha).
Jako proces se označuje spuštěný počítačový program zavedený do paměti počítače. Pokud je nějaký program spuštěn vícekrát, jde stále o jediný program, spuštěno je více procesů. Proces má stav (tedy bod, ve kterém se program vykonává), vyhrazenou paměť pro zásobník, vyhrazenou paměť pro data. Většina moderních mnohoúkolových operačních systémů podporuje vlákna procesu (angl. thread), každé vlákno se chová jako současně běžící proces se samostatným zásobníkem, ale se společnou oblastí paměti pro data. Vlákna mají hlavní význam pro synchronizaci mezi procesy, kdy jedno vlákno čeká na jiný proces (nebo vlákno) a ostatní vlákna procesu se mohou dále vykonávat.
Počítačový program je v současné době obvykle zapsán v některém z programovacích jazyků jako zdrojový kód. To je vyjádření algoritmu takovým způsobem, aby byl čitelný a srozumitelný pro člověka – programátora, ale zároveň aby bylo možné tento zápis přeložit do strojového kódu konkrétního procesoru. Vlastní překlad je prováděn jiným specializovaným programem – překladačem – a probíhá v několika fázích, při nichž se kromě vlastního překladu k výslednému kódu připojují další připravené obecné moduly z knihoven podprogramů. Jednotlivé příkazy zapsané programátorem se převedou na posloupnost instrukcí strojového kódu pro cílový procesor.
První počítače byly programovány přímo ve strojovém kódu, z tohoto důvodu se výsledek překladu, tj. soubor, který obsahuje strojový kód, také nazývá programem.
Přímým nástupcem programování ve strojovém kódu je jazyk assembler, který je tvořen přímo posloupností instrukcí strojového kódu, ale jednotlivé instrukce jsou psány ve srozumitelném tvaru (například pro mikroprocesor i386 místo 0xCD 0x80 se napíše int 80, místo 0x8B 0x040x 93 mov eax,[ebx+edx*4]). Mívá také rozšiřující syntaktické možnosti, např. zpracování maker.
Příklady dalších programovacích jazyků: C, C++, Pascal, Python, Perl, Java, PHP, SQL, Lisp, a další.