Zakaj naj se učimo jezik C
Programski jezik C je razvil Dennis Ritchie iz družbe Bell Laboratories in sicer za uporabo na računalnikih PDP-11 z operacijskim sistemom UNIX. Čeprav je bil najprej razvit za delo pod operacijskim sistemom Unix, pa se je kmalu pojavilo veliko zanimanje za verzijo, katero bi lahko poganjali pod MS-DOS-om na računalnikih tipa PC. C je namreč izvrsten jezik za to okolje zaradi jasnosti izrazov, kompaktnosti kode in zaradi širokega obmocja uporabnosti . Tudi zato, ker je prevajalnik za ta jezik relativno lahko napisati, je ta jezik ponavadi prvi višji programski jezik na novih vrstah računalnikov, kot so mikro- in miniračunalniki, večje delovne postaje in podobno.
Vseeno pa C ni najboljši jezik za začetnika, saj po svoji naravi
ni najbolj jasen programski jezik. Omogoča pa programerju širok razpon
operacij od visoke do zelo nizke stopnje in se v tem smislu že približuje
zbirnemu programskemu jeziku. Pravzaprav skoraj ni videti meja C-jeve prilagodljivosti.
Nek izkušen C-jevski programer je nekoč izjavil: " V C-ju lahko sprogramiramo
karkoli.", in tudi moje lastne izkušnje s tem jezikom podpirajo to trditev.
Skupaj z veliko programersko svobodo pa si programer naloži tudi veliko
odgovornost, saj lahko v tem jeziku hitro napišemo program, ki uniči samega
sebe zaradi majhnih napak, ki bi jih dober Pascalski prevajalnik
označil kot napako. Kot boste tudi sami pozneje videli, si v C-ju največkrat
prepuščen samemu sebi.
PREDVIDEVAM, DA NE VESTE NIČESAR O C
Da bi uspešno predelali in zaklju ili ta tečaj, ne boste potrebovali nikakršnega predznanja iz programskega jezika C. Začel bom z najbolj osnovnimi koncepti C-ja in vas popeljal do najvišjih nivojev C-jevskega programiranja, vključno s ponavadi strašljivimi koncepti kazalcev, struktur in dinamične alokacije pomnilnika. Da bi popolnoma razumeli te koncepte, boste potrebovali kar nekaj časa in dela, saj so te stvari precej težke za razumevanje, vendar pa so v programiranju to zelo uporabna orodja. Zaenkrat dovolj o tem, saj boste več o teh konceptih spoznali tekom tega tečaja, tako da vam o njih še ni treba prevec razmišljati.
Programiranje v C-ju ima veliko prednost na področjih, kjer bi morda želeli uporabiti zbirni jezik, vendar bi raje imeli program, ki bi bil tako lahek za pisanje kot za vzdrževanje. Bilo je rečeno, da bo imel tak program v C-ju 20-30% daljši izvajalni čas, saj noben od višjih programskih jezikov ni tako kompakten ali hiter, kot je zbirni jezik. Vendar pa je lahko prihranek časa za samo programiranje ogromen, kar naredi C najbolj primeren jezik za mnogo programskih nalog. Ker pa 90% večine programov uporablja 10 ali manj procentov svoje kode, imamo tudi možnost napisati program v C-ju, nato pa prepisati del kode v zbirni jezik in se tako približati hitrosti izvajanja programa, kakor bi bil le-ta cel napisan v zbirnem jeziku.
Čeprav je C na dobrem glasu, kadar programe prenašamo z enega računalnika na drugega, so med prevajalniki vseeno razlike, kar boste opazili tudi sami, ko boste uporabljali kak drug prevajalnik kot ponavadi. Večina teh razlik postane očitna, kadar uporabljate nestandardne razširitve kot so klici DOS-ovega BIOS-a pod MS-DOS-om, pa vendar lahko tudi te razlike zmanjšamo na minimum s pazljivim izbiranjem programskih konstruktov.
Skozi celoten tecaj bom poskušal o pozarjati na konstrukte, ki so mogoči v vsakem prevajalniku za C, ker so del ANSI-C standarda, uradnega standarda za C-jevsko programiranje.
KAJ JE ANSI-C STANDARD?
Ko se je pokazalo, da C postaja zelo popularen jezik na mnogo različnih računalnikih, se je sestala skupina entuzijastov, da bi predlagala standarden skupek pravil za uporabo programskega jezika C. Skupina, sestavljena iz ljudi iz vseh vej računalniške industrije, je po mnogih sestankih končno napisala sprejemljiv standard za ta jezik. Ta je bil sprejet tako s strani American National Standards Institute-a (ANSI), kot s strani International Standards Organization-a (ISO). Standard se ne vsiljuje nobeni skupini ali uporabniku, ker pa je tako široko priznan, bi bilo napisati prevajalnik, ki ne podpira tega standarda, enako kot storiti ekonomski samomor.
VERJETNO BOSTE POTREBOVALI NEKAJ POMOČI
Moderni prevajalniki za C so zelo zmogljivi , vendar pa se vam zaradi velike mnogostranskosti C-jevskega prevajalnika lahko zgodi, da boste potrebovali nekaj vaje, da ga boste znali učinkovito uporabljati. Če ste v programiranju popoln začetnik, se vam bodo namestitvena navodila zdela nekoliko zmedena. V tem primeru poskusite poiskati pomoč pri katerem od vaših kolegov, ki vam bo pomagal namestiti prevajalnik.
Ta tečaj ne more predelati vseh vidikov programiranja v C-ju, saj je snov enostavno prevec obsežna, vendar vam bo razložil vse, kar potrebujete za večino vašega programiranja v C-ju in vam bo predstavil praktično ves jezik C. Izvedeli boste večino stvari o vseh programskih konstruktih C-ja , izpuščene pa bodo metode programiranja, saj se je le-teh možno nauciti le z izkušnjami. In še bolj pomembno, naučili se boste slovar C-ja, tako, da se boste lahko naučili zahtevnejših tehnik programiranja s pomočjo programskega jezika C. Marljiv pristop z vaše strani, da bi čimbolje predelali materiale v tem tečaju, vam bo dal dobro osnovno znanje o programskem jeziku C. Tako boste lahko z razumevanjem prebirali znanstvene članke ali druge učbenike o C-ju in tako razširili svoje znanje o tem modernem in zelo popularnem programskem jeziku.
KAKO UPORABLJATI TA TEČAJ
Tečaj je napisan tako, da naj bi študent sedel pred računalnikom in si vsak primer programa ogledal na zaslonu ter prebral tekst, ki se nanaša na ta program. Ko bi si študent program ogledal, naj bi ga prevedel, pognal in opazoval rezultate zagona s svojim prevajalnikom. To omogoča študentu nabiranje izkušenj s svojim prevajalnikom, medtem ko se uči programskega jezika C. Prav tako je priporočljivo, da si študent programe ogleda po zapisanem vrstnem redu in reši naloge na koncu vsakega poglavja ter tako dobi izkušnje s pisanjem programov v C-ju.
TEČAJ JE PRIMARNO NAMENJEN MS-DOSU
Ta tečaj je napisan primarno za uporabo na IBM-PC kompatibilnih računalnikih, vendar ga lahko uporabljamo z vsakim prevajalnikom, ki podpira ANSI standard, saj je napisan tako, da se večinoma sklada s tem standardom. Računalnik pravzaprav sploh ni nujno potreben za predelavo tega tečaja, saj so rezultati izvedbe programov dani kot komentarji na koncu vsakega programa.
PRIPOROČENI VIRI ZA NADALJNJE UČENJE
"The C Programming Language - Second Edition", Brian W. Kernigan & Dennis M. Ritchie, Prentice Hall, 1988
To je najbolj priporočljiv tekst in je obvezno branje za vsakega resnega C-jevskega programerja. Čeprav je bila prva izdaja zelo težko branje, je druga precej lažja za branje in je zelo uporabna kot orodje za učenje.
Katerikoli ANSI-C učbenik.
Vsak študent bi moral doma imeti knjigo, v kateri je napisana definicija ANSI-C standarda. Če je še nimate, pojdite v katero od knjigarn in si jo poiščite.