| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 30.09.2005 22:53 | |
|
Stručně o jazyku C
Historie jazyka C počíná okolo roku 1969 a souvisí se vznikem operačního systému UNIX. Systém UNIX byl postupně s několika mezistupni nakonec vyvynut v Bellových laboratořích (AT&T) a na jeho vývoji se v prvotních fázích podíleli především D. Ritchie, B. Kernighan a K. Thompson.
Později bylo nutné vyvinout programovací jazyk nízké úrovně, v němž by mohl být UNIX přepsán. Prvotním základem byl jazyk BCPL (vytvořil Martin Richards). V roce 1970 z něj byl vyvinut jazyk B (Ken Thompson). Jazyk B byl použit pro implementaci OS UNIX na počítači PDP-7. Oba tyto jazyky (BCPL a B) pracovaly pouze s jedním datovým typem - slovem.
V roce 1978 Kernighan a Ritchie vydali v nakladatelství Prentice Hall "The C programming language" - knihu popisující zcela nový procedurální jazyk s podporou různých datových typů. V této knize tedy veřejně prezentovali jazyk C.
V roce 1990 byla zveřejněna norma ANSI C. Do normy je zahrnuta také množina knihovních funkcí, kterou by měl každý překladač poskytovat.
Základní charakteristika jazyka C
- Jazyk nízké úrovně, jazyk pro systémové programování. Postupně přebíral rysy vyšších programovacích jazyků.
- Pole a řetězce nejsou jazykem přímo podporovány – vše řeší ukazatelová aritmetika.
- Standard ANSI C – přenositelnost na úrovni zdrojového kódu nezávisle na hardwaru počítače.
- Z důvodu přenositelnosti C neobsahuje příkazy vstupu a výstupu, protože jsou přímo závislé na hardwaru a operačním systému počítače, což popírá přenositelnost. Proto jsou implementovány jako knihovní funkce.
- Malá množina příkazů jazyka usnadňuje rychlé vytvoření překladače pro nové platformy a rychlé zvládnutí jazyka.
- Má velice efektivní kód - téměř se vyrovná assembleru.
Rysy jazyka - programové konstrukce
Základní řídící konstrukce strukturovaných programů:
- sdružování příkazů do bloků
- podmíněný příkaz if ... else
- cykly s proměnnou na začátku a na konci
- výběr z množiny alternativ pomocí příkazu switch ... case
Podpora ukazatelové aritmetiky:
- základní operace nad ukazateli a adresami
- snadná práce s dynamickými poli
Funkce:
- každou funkci lze volat rekurzivně
- definice funkcí nesmí být vnořené, všechny funkce jsou globální v jednom zdrojovém souboru
- funkce lze překládat odděleně - každou zvlášť
Proměnné - paměťové třídy
- lokální proměnné - statické a automatické
- globální - externí
- překladači lze doporučit, aby pro uložení vybrané proměnné používal registr - zvýšení efektivnosti
Jazyk C není příliš přísný v kontrole typů, předávaných parametrů a mezí polí.
Nevýhody jazyka C
- Priority některých operátorů.
- Drobné odchylky překladačů od normy.
- Chybějící kontrola typů a indexů.
Omezení ANSI C kompilátorů
Norma ANSI C určuje minimální požadavky na každý překladač jazyka C. Toto je nutné znát pro psaní přenositelného kódu.
požadavky:
- max. 15 úrovní zahnízdění bloků, iterací, podmíněných příkazů a přepínačů
- max. 6 úrovní zahnízdění podmíněného překladu
- max. 12 dodatečných typových modifikátorů základního typu v definici nebo deklaraci proměnné, funkce, pole či ukazatele
- max. 127 úrovní zahnízdění závorek ve výrazech
- max. 31 platných znaků v identifikátorech
- max. 6 platných znaků u externích identifikátorů
- max. 511 externích identifikátorů v jednom zdrojovém souboru
- max. 127 identifikátorů s platností v jednom bloku
- max. 1024 jmen maker definovaných v jednom zdrojovém souboru
- max. 31 parametrů funkcí
- max. 31 parametrů maker
- max. 509 znaků v jednom řádku zdrojového souboru
- max. 509 znaků v jednom řetězcovém literálu
- max, 32767 bytů dlouhé pole nebo struktura
- max. 8 úrovní zahnízdění v #include souborech
- max. 257 variant case v příkazu switch
Převzato z přednášek Mgr. Tomáše Kozla, Katedra informatiky a kvantitativních metod, Fakulta informatiky a managementu, Univerzita Hradec Králové.
By Lukaas
|
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|