Linux E X P R E S

Facebook

Jazyk C a C++

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;
 }

Diskuze (1) Nahoru