Bővebb ismertető
6 BEVEZETÉS
7
7
A C programozási nyelv az egyik legnépszerűbb programfejlesztési l^eszköz a világon. A fejlesztők szívesen dolgoznak vele, mert általános l^célú, alkalmas igen nagy lélegzetű csoportmunkákban való felhasználásra lUellentétben a PASCAL legtöbb implementációjával), nagyon Jó hatásfokú 2íkódot lehet vele előállítani, mégis magas szinten struktúráit, átfogóan 2'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 7'szabályokat figyelembe vevő - program viszonylag kis munkával, Jól meghatározott helyeken való módosítással átírható más számitógép tetszőleges (a C nyelvet támogató) operációs rendszere alá. Itt kell 8(azonban rögtön megjegyeznünk azt is, hogy nagyon könnyű C nyelven
8 áttekinthetetlen, nehezen megérthető és módosítható programokat Slké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
9 munkát igényelhet, mint maguknak a nyelvi elemeknek a megtanulása. SiMásképp megfogalmazva: a C nyelv nyújtotta szabadság - mint minden 3 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 ÍSle 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 ífgé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 iCazonban nem korlátozza rendszerszintű programozásra, hanem egyúttal általános célú programfejlesztési eszközzé is kinőtte magát, amiben az l-íemlített nagyfokú szabványosság is komoly szerepet Játszott.
A C nyelvi fordítók szinte kivétel nélkül mind compilenké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, ill. 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 eredet1 forrásszöveggé1.
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