Úvod do jazyka C Proč jazyk C C je univerzální programovací jazyk . Nebudu zde řešit otázku, zda je lepší jazyk C ci LISP, Prolog, Cobol, AWK nebo SQL, ze stejného důvodu jako se nebudu zabývat tím, zda je lepší jazyk C nebo oříšková zmrzlina. Ostatní výše zmíněné jazyky jsou zkrátka o něčem jiném. Proc jazyk C stojí za pozornost mezi desítkami jiných univerzálních programovacích jazyku? Jedná se o jazyk pro opravdové programování. Niklaus Wirth, autor jazyka Pascal, věnoval značné úsilí, aby jeho jazyk, určený pro výuku programování, byl co možná nejbezpečnější, aby bylo obtížné v něm programovat ošklivě. Popularita jaké Pascal dosáhl, svědčí o tom, že Wirth vytvořil něco lepšího, než o co usiloval. Nicméně něco je možné napsat ve standardním Pascalu jen s velkým úsilím, něco vůbec ne. Obhájci Pascalu se chlubí, že Pascal má od začátku závaznou normu, ale neprogramují v ní. Množství vzájemně nekompatibilních rozšíření (nejvýznamnější z nich je asi Turbo Pascal) svědčí o tom, že standardnímu Pascalu mnoho užitečných rysu chybí. Jazyk C prošel několikaletým vývojem, kdy se skutečně používal i na věci nesnadné a komplikované (přenos operačního systému Unix na počítače několika značně odlišných typu). Během vývoje byl doplněn o vlastnosti, které se ukázaly jako užitečné (např. prototypy funkcí), a naopak některé vlastnosti matoucí, zbytečně složité nebo zbytečné byly odstraněny Důležitým okamžikem vývoje jazyka C bylo vytvoření jeho standardu.
Úvod do jazyka C Jazyk C vytvořili programátoři pro programátory. Díky tomu neobsahuje podobné přehmaty jako parametry procedur volané jménem z jazyka Algol 60 – vlastnost, která se obtížně implementuje, nepříliš efektivně překládá a přitom je možné ji nahradit nečím mnohem čistším a průhlednějším (parametry volanými referencí), nebo „návaznost“ souboru na operační systém pomocí parametru programu v Pascalu. Způsob zápisu algoritmu v jazyce C je velice podobný zápisu v jazycích Algol, Pascal, Basic, PL/I, Modula–2, Ada, což tyto jazyky favorizuje před jazyky s méně obvyklou syntaxí (Fortran, Cobol, Forth, Perl, . . . ). Syntaxe jazyka C umožňuje stručné vyjádření algoritmu a navíc často naznačuje překladači možnost optimalizace. Jazyk C umožňuje oddělený překlad jednotlivých částí programu, používání a vytváření knihoven. Díky tomu je možné jej používat i na rozsáhlé projekty a pro týmovou práci. Jazyk C nepokutuje programátora za použití některých svých vlastností (číselná návěští v Pascalu s nutností je předem deklarovat, logické spojky and a or v Pascalu s povinným vyhodnocením obou operandu), ani nenabízí „mocné“ konstrukce, které je snadné použít, ale které vedou ke komplexním operacím a k udivení nad pomalým během programu. Většinu příkazů jazyka je možné přeložit jednou nebo několika málo strojovými instrukcemi.
Úvod do jazyka C Jazyk C je relativně jednoduchý. Nejedná se o ohromné monstrum, jakým je například jazyk PL/I (O) nebo dokonce Ada, pro kterou několik let neexistoval překladač. Nejedná se ani o jazyk, na který si činí vlastnické právo některá firma či jiná organizace. Jazyk C je k dispozici na většině platforem, od jednočipových mikropočítačů (překladače pro ne samozřejmě pracují na větších strojích – jedná se o tzv. křížové překladače( cross compilers), přes domácí a osobní počítače, pracovní stanice, střediskové počítače až k superpočítačům. Nejrozšířenější operační systémy (DOS a UNIX) jsou napsány jazyce C. Jazyk C nenutí programátora použít jediný správný přístup; tentýž algoritmus je možné zapsat s použitím různých prostředku a do různé míry zhuštěně. C je typickým jazykem volby. Programování v jazyce C však přináší i některá nebezpečí. Mezi časté chyby patří například použití operátoru = namísto == pro porovnávání, zapomenutí příkazu break na konci větve uvnitř switch, neuvedení hlavickového souboru pro použité funkce a nesprávné sestavení programu
Překladače jazyka C Kompletní profesionální vývojové prostředí pro jazyk C mívá cenu desítek tisíc Kč. Existuje však rada volně dostupných překladačů a jednoduchých vývojových prostředí, které jsou pro výuku plně dostačující: OS Linux: vývojové prostředí s gcc, gdb, součástí prakticky všech distribucí. OS Windows (prostředí příkazového řádku) nebo DOS: DJGPP http://www.delorie.com/djgpp/– kompletní aktuální vývojové prostředí (ovšem s uživatelským rozhraním poplatným MS-DOSu a roku 1990). Archivy zabírají asi 20 MB (nebo více podle množství použitých balíku). Výběr souboru se provádí pomocí ZIP Picker. V Čechách zrcadleno na serveru ftp://ftp.zcu.cz/pub/win/simtelnet/gnu/djgpp/. Borland Museum: http://community.borland.com/museum/ – starší verze integrovaného prostředí s překladačem C od firmy Borland. Turbo C++ verze 1.01 (2,7 MB) nebo Turbo C verze 2.01 (1,1 MB).
Srovnání jazyka C a Pascal C
Pascal
pro praktické programování
pro výuku programování
původním „standardem“ je kniha rozšíření
od počátku existoval standard jazyka,
„language of choice“
„language of bondage and discipline“
umožňuje modulární programování
modulární programování dostupné
objektová rozšíření C++, C#,
objektové rozšíření Turbo Pascal,
Objective C
Delphi
rozsáhlé standardní knihovny jsou volnou součástí jazyka, množství dalších knihoven
standardní funkce jsou nedílnou součástí jazyka