Hlavní strana | See live article

Jazyk C

C je programovací jazyk, který vyvinuli Ken Thompson a Dennis Ritchie, pro potřeby operačního systému Unix. V současné době je prakticky na každém operačním systému. Je to nejpopulárnější jazyk pro psaní systémového softwaru a taky velmi rozšířená volba pro psaní aplikací. Používá se také ve výuce počítačových věd.

Table of contents
1 Vlastnosti
2 Historie
3 C99
4 "Hello, World!" v C
5 Relation to C++

Vlastnosti

C je mocný, relativně minimalistický, kompilovaný programovací jazyk velmi podobný assembleru. Jeho zdrojový kód je ovšem mnohem čitelnější a je také jednodušší ho zapsat. Často překladače, knihovny a interpretery vysokoúrovňových jazyků jsou implementovány pravě v C.

Ukládání dat je v C řešeno třemi základními způsoby: statickou alokací paměti (při překladu), automatickou alokací paměti na zásobníku, dynamickou alokací na heapu pomocí knihovních funkcí. Navíc existuje datový typ zvaný ukazatel, který drží odkaz na alokovanou paměť. Ukazatele existují nezávisle na proměnných, na které odkazují. C bylo často kritizováno, protože práce s ukazateli je velmi náchylná k chybám.

Jazyky Java a C#, oba odvozené od C, používají bezpečnější způsob na odkazování alokovaných proměnných, takže je menší pravděpodobnost napsání chyby v programu. Jazyk C++, starší potomek C, si ovšem ukazatele zachoval.

Mnoho dalších moderních programovacích jazyků přebírá způsob zápisu (neboli syntaxi) z jazyka C. Patří mezi ně i Perl a PHP.

Historie

Počátky

Vývoj jazyka C začal v Bellových laboratořích AT&T; mezi léty 1969 a 1973. Ritchie tvrdí, že nejpřínosnější období bylo v roce 1972. Pojmenování "C" zvolili, protože mnoho vlastností přebíraly ze staršího jazyka zvaného "B", jehož název byl zase odvozen od jazyka BCPL (ale to není jisté, neboť Thompson také vytvořil jazyk Bon na poctu své ženy Bonnie).

V roce 1973 se stal jazyk C dostatečně stabilním. Většina zdrojového kódu jádra Unixu, původně napsaného v assemleru PDP-11, byla přepsána do C. Unix tedy patří mezi první operační systémy, které byly napsané v jiném než strojovém jazyce či assembleru. Předchozí byl například systém Multics (napsaný v PL/I) a TRIPOS (napsaný v BCPL).

K&R C

V roce 1978, Ritchie a Brian Kernighan vydali první vydání knihy The C Programming Language. Tato kniha, mezi programátory C známá jako "K&R", sloužila po mnoho let jako neformální specifikace jazyka. Verze C, kterou takto popsali, bývá označována jako "K&R C". (Druhé vydání knihy popisovalo novější standard ANSI C.)

K&R zavedli následující vlastnosti jazyka:

K&R C se považuje za základní stavební kamen jazyka, který je potřeba, aby překladače splňovali. Ještě mnoho let po uvedení ANSI C to byl "nejmenší společný jmenovatel", na který se programátoří jazyka C vázali kvůli maximální přenositelnosti, protože zdaleka ne všechny překladače plně podporovali ANSI C.

V několika letech následujících po uvedení K&R C bylo uvedeno a přidáno několik "neoficiálních" vlastností jazyka, které byly podporovány překladači od AT&T a některých dalších dodavatelů. Změny zahrnují:

ANSI C a ISO C

V pozdních sedmdesátých letech začalo C nahrazovat BASIC jako přední programovací jazyk pro micropočítače. Během osmdesátých let bylo přejato pro použití na platformě IBM PC a jeho popularita se značně zvýšila. Tou dobou Bjarne Stroustrup a další v Bellových laboratořích začali pracovat na rozšiřování C o objektově orientované prvky. Jazyk, který vytvořili, zvaný C++, je dnes nejrozšířenější programovací jazyk pro aplikace na Microsoft Windows; C zůstává stále populářnější ve světě Unixu.

V roce 1983 se American National Standards Institute (ANSI) dohodla na sestavení komise X3J11, aby vytvořila standartní specifikaci C. Po dlouhém a pracném procesu byl standart dokončen v roce 1989 a schválen jako ANSI X3.159-1989 "Programming Language C". Tato verze jazyka je často stále označována jako ANSI C. V roce 1990 byl standart ANSI C (s drobnými změnami) adoptován institucí International Standards Organization (ISO) jako "ISO 9899|ISO/IEC 9899:1990".

Jeden z cílů standardizačního procesu ANSI C byl vytvořit nadmnožinu K&R C zahrnující mnoho "neoficiálních vlastností". Navíc standardizační komise přidala několik vlastností jako funkční prototypy (vypůjčené z C++) a schopnější preprocesor.

ANSI C je dnes podporováno téměř všemi rozšířenými překladači. Většina kódu psaného v současné době v C je založena na ANSI C. Jakýkoli program napsaný pouze ve standardním C je přeložitelný a spustitelný na jakékoli platformě, která odpovídá tomuto standardu. Nicméně mnoho programů se dá přeložit pouze na jedné platformě nebo jedním překladačem, kvůli (i) použití nestandadních knihoven, např. pro grafiku, a také (ii) některé překladače v implicitním módu neodpovídají standardu ANSI C.

"Hello, World!" v C

Následující jednoduchá aplikace vypíše "Hello, World" na stadardní výstup (většinou obrazovku, ale může to být i do souboru nebo na jiné hardwarové zařízení nebo dokonce i bit bucket, což závisí na nastavení standartního výstupu v době spuštění programu). Jedna z verzí se poprvé objevila v K&R.

\n#include \n\nint main(void)\n{\n    printf("Hello, World!\\n");\n    return 0;\n}\n