přejít na obsah přejít na navigaci

Linux E X P R E S, Jazyk C a C++

Konference Cloud computing v praxi

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.


reklama

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

Nahoru

Odkazy

Top články z OpenOffice.cz

Příspěvky

Jazyk C a C++
drepo 7. 07. 2007, 12:06:06
Odpovědět  Odkaz 
ukazme si zlozitejsi kodik a to priklad ako pomocou poiterov zmenit skutocne parametre z vnutra funkcia (tak aby zmeny ostali zachovane aj po opusteni funkcie). Program cita z klavesnice jednotlive riadky a vracia pocet medziez a malych pismen v riadku. program konci, ked nacita prazdny riadok.

#include

int readline(int *p_medzery, int *p_male)
{
int c, pocet = 0;

*p_medzery = 0; *p_male = 0;
while ((c = getchar()) != '\n') {
pocet++
if (c == ' ')
(*p_medzery)++;
else if (c >= 'a' && c

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Lukáš Faltýnek

Lukáš Faltýnek

Vystudoval informační management na Univerzitě Hradec Králové. Pracuje jako analytik/programátor. Láskou k počítačům vzplanul v roce 1986, kdy dostal svůj první počítač Atari 800 XL. S Unixem se poprvé setkal před dvanácti lety. Chvíli nato pak s Linuxem, který si pro jeho svobodu zamiloval. Je ženatý a má dvě děti. Mezi jeho koníčky patří literatura, kinematografie a cestování.


  • Distribuce: Ubuntu

| blog


Soutěž - reproduktory Trust

Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »