Bővebb ismertető
BEVEZETÉS
A C programozási nyelv az egyik legnépszerűbb programfejlesztési eszköz a világon. A fejlesztők szívesen dolgoznak vele, mert általános célú, alkalmas igen nagy lélegzetű csoportmunkákban való felhasználásra (ellentétben a PASCAL legtöbb implementációjával), nagyon jó hatásfokú kódot lehet vele előállítani, mégis magas szinten struktúráit, átfogóan szabványosított nyelv. Ez utóbbi azt jelenti, hogy egy adott géptípus adott operációs rendszerére kidolgozott - bizonyos programírási szabályokat figyelembe vevő - program viszonylag kis munkával, jól meghatározott helyeken való módosítással átírható más számítógép tetszőleges (a C nyelvet támogató) operációs rendszere alá. Itt kell azonban rögtön megjegyeznünk azt is, hogy nagyon könnyű C nyelven áttekinthetetlen, nehezen megérthető és módosítható programokat készíteni. Nagyon fontos tehát a fegyelmezett, körültekintő programozási stílus alkalmazása, aminek az elsajátítása kb. annyi munkát igényelhet, mint maguknak a nyelvi elemeknek a megtanulása. Másképp megfogalmazva: a C nyelv nyújtotta szabadság - mint minden szabadság a világon - csak annak válik igazán hasznára, aki megfelelően tud vele élni.
A C programozási nyelvet sokan tekintik struktúráit, gépfüggetlen assembly nyelvnek. Ez persze nem azt jelenti, hogy magasszintű nyelvről le kívánják "alacsonyítani", hanem éppen az előnyeit hangsúlyozzák: annyira gépközeli, hogy segítségével lehet akár operációs rendszert is írni, egyúttal annyira gépfüggetlen, hogy ugyanazt a rendszert más géptípusra forrásnyelvi szinten csekély módosítással át lehet tenni (kivéve persze a legalsó réteget képviselő hardware-közeli részeket, de azok úgyis assemblyben készülnek). A C nyelvet ez a képessége azonban nem korlátozza rendszerszintű programozásra, hanem egyúttal általános célú programfejlesztési eszközzé is kinőtte magát, amiben az említett nagyfokú szabványosság is komoly szerepet játszott.
A C nyelvi fordítók szinte kivétel nélkül mind compilerként kerülnek megvalósításra, azaz a forrásszövegből ún. tárgykódú modult (object modul) hoznak létre, amiből azután - egyéb tárgymodulok és könyvtárak (libraries) felhasználásával - az operációs rendszer szerkesztő programja (linkage editor) állítja elő a futtatható programot. Ennek előnye, hogy az egyes forrásfile-ok egymástól függetlenül fordíthatók, továbbá lehetőséget biztosít más nyelven (pl. assemblyben) megírt programrészek felhasználására is. Hátránya, hogy egy "módosítás - fordítás - kipróbálás - hibafelderítés" ciklus ideje általában hosszabb az értelmező típusú fordítókénál. Megjegyezzük még, hogy vannak olyan C nyelvi fordítók is, amelyek tárgymodul helyett assembly forráskódot generálnak, Hl. a legtöbb fordító rendelkezik ilyen opcióval. Mind a fordító, mind az adott assembly nyelv megismeréséhez hasznos gyakorlat ilyen fordítási listákat összevetni az eredeti forrásszöveggel.
A C nyelv fentebb vázolt előretörése természetesen nem "kímélte" a személyi számítógépeket sem. A nyelv sajátosságai miatt jó hatásfokú megvalósítása csak 16 ill. 32 bites gépeken lehetséges, ezért széles
5