c
Rovnez mohou byt napsany v jazyku C. Programy v jazyku C jsou dostatecne efektivni a neni treba misto nich psat programy v assembleru. Jednim z takovych prikladu je operacni system UNIX, ktery je temer cely napsan v jazyku C. Navic veskery aplikacni software sys- tému UNIX je psán v jazyku C. Prevažná většina uživatelu syste- mu UNIX (včetně autoru teto knihy) nezná assembler počitačeŐ.po 12 PDP - 11. Prestože jazyk C pracuje na mnoha počitačich, je nezavislý na architekture daného počitače, a tak je možné s trochou peče psát "přenositelné" programy. V našem oddělení je software, který je vyvinut pod systémem UNIX, přenašen na počitače HONEYWELL, IBM a Interdata systém. Ve skutečnosti jsou prekla- dače a prostředky jazyka C na těchto čtyrech pocitacich pod- statne kompatibilnejsi nez napr. ANSI standart FORTRAN. Pro programatory, kteri pracuji s jinymi jazyky, muze byt uzitecne pro srovnani se dozvedet o historickych, technickych a filozo- fickych aspektech jazyka C. Vetsina nejdulezitejsich myslenek jazyka C pochazi z dosti stareho, ale staleho ziveho jazyka BCPL, ktery byl vyvinut Martinem Richardsem. Vliv BCPL na C se uskutecnil neprimo jazy- kem B, ktery napsal Ken Thompson v r. 1970 pro prvni system UNIX na PDP-11. Prestoze jazyk C ma s BCPL mnoho spolecnych znaku, neni v zadnem pripade jeho kopii. Jazyky BCPL a B jsou jazyky bez "typu". Jediny typ dat je slovo pocitace a pristup k ostatnim druhum je pomoci specialnich operatoru nebo funkci. V jazyku C jsou zakladnimi datovymi typy znaky, cela cisla ruznych delek a cisla s pohyblivou desetinou carkou. Navic je zde hierarchie odvozenych datovych typu vytvorenych pointry, poli, strukturami, uniony a funkcemi. C umoznuje zak- ladni konstrukce pro rizeni behu, pozadovane pro dobre struk- turovane programy: shlukovani prikazu, rozhodovani /if/, cykly s testem na ukonceni nahore /while,for/ nebo dole /do/, klic vyberu /switch/. Vse jiz bylo implementovano v jazyku BCPL, ale s ponekud jinou syntaxi; BCPL dlouha leta ocekaval prichod "strukturovaneho programovani". Jazyk C umoznuje pouzivani pointru a aritmeticke adresy. Argumenty funkci jsou pri predani kopirovany a neni mozne, aby volana funkce zmenila hodnotu aktualniho parametru ve volajici funkci. Pokud pozadujeme "predavani adresou", muze byt predan pointer, a volana funkce muze zmenit objekt, na ktery pointer ukazuje. Pole jsou predavana adresou pocatku pole. Funkce mohou byt volany rekurzivne a lokalni promenne jsou prevazne "automaticke", tj. jsou vytvoreny znovu pri kaz- dem vyvolani. Definice funkci nemohou byt vkladany do sebe, ale promenne mohou byt deklarovany blokovou strukturou. Funkce jazyka C mohou byt prekladany samostatne.
Labels: programovani
<< Home