Procedurální, imperativní programovací jazyk C vytvořil v roce 1972 Dennis Ritchie v Bellových laboratořích AT&T. Jeho záměrem bylo napsat systémový jazyk pro systémové programátory. Konkrétně pro operační systém UNIX.
UNIX byl původně napsán v assembleru, ale od Kena Thompsona, jednoho z jeho vývojářů, vyvstal požadavek na jeho přepsání do některého z vyšších programovacích jazyků. Požadavek byl iniciován potřebou snadnější přenositelnosti systému UNIX mezi různými počítači, v dobovém kontextu konkrétně z PDP-7 na PDP-11.
Ken Thompson nejprve zkoušel použít jazyk Fortran. Po několika dnech práce však Fortran shledal nepoužitelným a sám si napsal jazyk B. Jazyk B byl jazykem zcela funkčním. Jednalo se však o jazyk interpretovaný a tedy značně pomalý. Dennis Ritchie posléze do jazyka B implementoval datové typy a následně pak zahájil práci na jeho kompilátoru. Výsledkem Ritchieho činnosti byl na konci zcela nový jazyk C.
Jazyk C byl navrhnut jako relativně nízkoúrovňový jazyk, který byl vhodný jak k systémovému programování, tak k přesnému vyjádření algoritmů. Po velmi krátké době byl do jazyka C přepsán skoro celý UNIX a pro dostupný hardware začaly vznikat překladače nového jazyka. Protože mnoho z vytvořených překladačů si k jazyku C přidalo další specifické vlastnosti, začala se z jazyka C vytrácet jedna z jeho důležitých předností, a to přenositelnost. Nastala tak potřeba jazyk C standardizovat.
Když se jazyk C vyvinul z jazyka B, dá se logicky předpokládat, že nástupcem jazyka C bude jazyk D. Kdo tak předpokládá, dělá dobře, protože jazyk D skutečně existuje a jeho snahou je být nástupcem jazyka C a C++. Jazyk D vychází z jazyka C++ a více se o něm v případě zájmu dozvíte na jeho domovské stránce http://www.digitalmars.com/d/ .
V roce 1978 vydal Dennis Ritchie a Brian Kernighan knihu The C Programming Language (C programovací jazyk), později též běžně označovanou jako K&R C. Kniha se tak za velmi krátkou dobu stala první neoficiální normou jazyka C. Tvůrci překladačů se ji drželi. V roce 1982 byla Americkým institutem národních standardů ustanovena komise X3J11, která měla za úkol sestavit normu pro jazyk C a jeho knihovny, a tím vytvořit jednoznačnou a na hardwaru nezávislou definici jazyka. V roce 1989 pak byla formálně přijata norma známá jako ANSI C. Poté následovaly další ANSI normy, ale ty již pro jazyk C nebyly tak významné jako právě ANSI C.
V souvislosti s jazykem C s jistotou přijde mnoha lidem na mysl jazyk C++. S trochou nadhledu můžeme jazyk C++ považovat za mladšího, chytřejšího a baculatějšího bratříčka jazyka C. C++ se od jazyka C liší mimo mnoha vylepšení především objektovým přístupem.
K příbuznosti s jazykem C a C++ svádí i jazyk C#, pocházející z dílen Microsoftu. Bohužel C# toho s jazyky C a C++ mnoho společného nemá. Navržen byl s úmyslem konkurovat jazyku Java, a tak mnoho podobností má spíše s ní.
Autorem jazyka C++ je Bjarne Stroustrup rovněž z Bellových laboratoří. Původní název jazyka byl C with Classes (C s třídami) a až později byl jazyk přejmenován na C++ . Práce na jazyku C++ byly zahájeny na počátku osmdesátých let minulého století. Dveře Bellových laboratoří pak jazyk C++ opustil v roce 1983.
V roce 1995 vydal Bjarne Stroustrup knihu The C++ Programming Language (C++ programovací jazyk) a došlo k prvnímu veřejnému uvolnění překladače jazyka C++. V roce 1998 byl pak jazyk C++ standardizován jak ANSI tak i ISO. Norma je někdy souhrnně označována jako ANSI/ISO C++. Jazyk C++ je až na malé výjimky zpětně kompatibilní s jazykem C.
Kompilátory jazyka C i C++ najdeme v mnoha operačních systémech. V Linuxu se standardně setkáte s GCC (The GNU Compiler Collection), která kromě jiných jazyků podporuje jazyk C i C++. Jako IDE pak můžete použít Eclipse.
Hlavními rysy jazyka C i C++ jsou snadná přenositelnost mezi různými operačními systémy a platformami, efektivita vykonávání kódu a možnost realizovat i věci na systémové úrovni. Velmi silným prostředkem k tomuto jsou široké možnosti s adresami dat a funkcí. Při dobře napsaném programu se programy napsané v jazyce C a C++ mohou svou rychlostí téměř vyrovnat stejnému programu napsanému v assembleru.
Kód napsaný v jazyce C si ukážeme na dvou tradičních programech. Programu Hello World a programu na výpočet faktoriálu.
#include <stdio.h> int main(void) { printf("Hello World!\n"); } unsigned int faktorial(int n) { return n>=1 ? n * faktorial(n-1) : 1; }
Článek vyšel v časopisu LinuxEXPRES, článek je uveřejněn s GNU FDL licencí (anglicky, česky).
Lukáš Faltýnek
0 komentářů:
Okomentovat