                               CCCCCCC
                              CC     CC
                             CC 
                             CC
                             CC
                             CC
                              CC     CC
                               CCCCCCC



                            C FR NYBRJARE


                           EN ALLMN VERSIKT
                         
   

C r Amigans modersml. Det r bde snabbt och flexibelt och alla systemru-
tiner r ltt tkomliga frn dina egna C-program. Ofta kan man till och med 
klara sig utan assembler, s snabbt kan C bli i hnderna p en driven pro-
grammerare. 

Det finns en bra bok om C p svenska, Programmering i C av Waite, Prata och
Martin, frlag: Pagina. Efter att ha lst och begrundat den s kan man skriva
sm program som fungerar p Amiga ocks, fast det ser ut p skrmen som p 
vilken trist hemmadator som helst. Nr man sen ser p kllkoden till ett 
"riktigt" Amigaprogram s kommer chocken: det enda man knner igen r de 
krulliga parenteserna, i vrigt bestr det mest av en massa oknda kommandon
och obegripliga deklarationer. Hr ligger en del av styrkan i C: sprket i 
sig bestr bara av ngra f reserverade ord, i vrigt kan det byggas ut i all
ondlighet med egna funktioner och datastrukturer. Amigan har en rik flora av
funktionsbibliotek, och bygger mycket p att data r sammansatta till struk-
turer.


                           EN KORT HISTORIK


Som alla programsprk s har C en mycket kort historia. Dennis Ritchie och 
Ken Thompson skapade det 1972 nr det visade sig att det inte fanns ngot
programsprk som var bra nog fr att skriva operativsystemet UNIX. Ursprunget
var BCPL, som ju har anvnts delvis i Amigasystemet till mngas frtvivlan. 
Ur BCPL skapade Thompson B, som Ritchie anvnde som anfader till C. Deras bok
The C Programming Language betraktas fortfarande som bibel och officiell de-
finition av sprket. Den r ingen nybrjarbok, utan fordrar att man r lite
slngd i systemprogrammering. 

Trots att C togs fram som ett systemverktyg i frsta hand, s blev det ocks
ett mycket universellt anvndbart sprk fr alla sorters programmering. En 
viktig tanke med C var just att det skulle vara ett kraftfullt verktyg, och
man tog inga pedagogiska hnsyn. Basic skulle ju vara s likt engelska som 
mjligt fr att underltta fr nybrjare, och samtidigt blev det lngsamt och
knligt fr maskinen. Pascal togs ocks fram som ett lromedel i frsta hand,
ven om det till slut kom att bli ett anvndbart sprk.

Den stora framgngen med UNIX p minidatorsidan gjorde att C spred sig ven
till mikrodatorerna, och idag r en mycket stor del av den serisa program-
varan fr dessa skriven i C. Dess lmplighet fr systemprogrammering har 
gjort att ocks andra sprk har blivit beroende av C fr sin existens. Mnga
kompilatorer och interpreterare r skrivna i C, s om du anvnder Basic, For-
tran, LISP, Pascal eller Logo s r chansen stor att du sitter med ett C-
program framfr dig.


                       VARFR R C S BRA?

   
C r vl strukturerat. Dess uppbyggnad r i sig ett modulsystem, och det in-
bjuder till att gra program i den andan.

C r effektivt och ger kompakta och snabba program. ven om det r ett sprk
p relativt hg niv, med den komfort det medfr, s innehller det element
av maskinnra programmering, som bitmanipulering.

C r portabelt. Det finns en stor krna i C som r gemenssam fr nstan alla
system. Oftast kan ett program anvndas p en annan dator direkt. Om det be-
hvs ngra ndringar s grs de nstan alltid i en fristende fil som kom-
pilatorn sedan inkluderar i huvudprogrammet. Det r allts bara att kompilera
om kllkoden och kra antingen programmet r skrivet fr en tta bitars mikro
eller fr en Cray. Kostnaden fr att flytta C-program mellan olika system r
bara en brkdel jmfrt med andra sprk. Har du frskt verstta ett Basic-
program frn ABC-80 till IBM s frstr du vad jag menar.

C innehller bara ett ftal reserverade kommandon, men det finns ett omfat-
tande bibliotek av standardfunktioner. S lnge man hller sig till dessa s
kommer programmet att uppfylla alla krav p flyttbarhet. Dock blir du inte
ikldd ngon sorts tvngstrja som C-programmerare, utan det gr ocks att
utvidga sprket, bde med flyttbara och maskinspecifika funktioner. Amiga har
stora bibliotek med funktioner som gr det mjligt att utnyttja dess olika
system p ett enkelt och effektivt stt. Visserligen offrar man d flyttbar-
heten, men vem behver ngon annan maskin egentligen?



                          ATT ANVNDA C I PRAKTIKEN


C r ett kompilerat sprk, till skillnad frn Basic och TurboPascal som r
interpreterande. Den stora skillnaden bestr i att ett interpreterande sprk
arbetar direkt med den kllkod som du skriver och verstter den till ngot 
som maskinen begriper frst i samband med krningen. Det r vldigt bra nr
man frsker utveckla program, fr det r alltid genast krklart. I lngden 
blir det ineffektivt. Tnk p en slinga i Basic som ska genomlpas ett stort 
antal gnger. Varje gng ska dess instruktioner rad fr rad versttas. Gissa
varfr Basic r lngsamt. Ett kompilerat sprk mste versttas innan det kan
kras. Det tar en del tid och kan bli rent enerverande fr programmeraren om 
det r svrt att hitta den dr frargliga buggen. Men nr det vl r gjort s
kr programmet utan handbromsen dragen.

Gngen i programmering i C r s hr:

Skriv programmet, kllkoden, med ngon form av editor. Se upp med en del ord-
behandlare som stoppar in styrkoder i textfilen. Det gr bara inte. Ofta 
finns det dock alternativ i ordbehandlingsprogrammen som gr att de skapar en
ren ASCIIkod. I vrigt krvs det bara tv saker: Kllkoden mste vara all-
deles korrekt, bde sprkligt och programfunktionsmssigt, och filnamnet
mste vara godtagbart. Det frra r svrt, det senare ngot lttare. Det 
rcker med att namnet r ett giltigt filnamn som avslutas med .c

Kompilera kllkoden. Latticekompilatorn anvnder tv steg och skapar frst en
mellanfil, som anvnds som infil till andra steget. Aztec C har bara ett steg
och r lite snabbare i vndningarna. Slutresultatet av kompileringen blir i
bda fallen en objektfil med maskinkod fast den r inte krklar n.

Lnka ihop objektfilen med lnkaren. Denna stter ihop ett krklart program
av en eller flera objektfiler som du sjlv har gjort, en startkod som finns
med till kompilatorn, och funktioner ur ett eller flera bibliotek.

S r det d klart att kra. Om det blev en liten besvikelse s r det bara
att se glad ut och brja om igen och ndra i kllkoden. 

I en del system s finns det en genvg. I UNIX heter den cc och r ett kom-
mando som klarar hela proceduren, utom att skriva kllkoden frsts. Det r 
dock bara ett frkortat skrivstt, funktionen hos kompilatorn och lnkaren r
densamma. Man matar cc med argument frn en srskild fil, och det hela r 
mycket bekvmt fr man behver inte skriva hela uppsatser varje gng. Sr-
skilt lnkaren vill ha startkommandon som kan ta flera rader. Till Amiga 
finns det flera sdana hjlpprogram, eller skal, bde i Public Domain och som
tillbehr till de olika kompilatorerna.
