· Text 791 · w8 · inlagg
För att kunna använda mer än ett språk i ett och samma program måste
man gå vägen över ett för de olika språken gemensamt objektfilsformat,
som en länkare länkar ihop till en färdig körbar fil. Enda alternativet
vore väl en kompilator som själv klarar flera olika språk, och vem har
väl hört talas om en sådan?
Man är alltså tvungen attha objektkodsfiler, och om man nu ändå har
dem, vore det väl bra märkligt om man inte skulle spara tid på att
ha kvar en gammal objektfil i stället för att kompiler om källkoden
till enny objektfil, när man gör en ändring någon annan stanns i
programmet. Om man bara räknar antalet filöppningar, så innebär ju
en omkompilering att man måste öppna objektfilen en gång mer när den
skapas på nytt, och även i princip en gång när den tas bort efteråt
igen!
När man väl är klar med sitt projekt tar man väl antagligen bort de
flesta objektfilerna, för då behövs de inte längre på ett tag. Däremot
lägger man sådana rutiner som används ideligen i många olika program
i objektkodsbibliotek, där länkaren automatiskt hittar dem när man
nämner dem i något program, vilket är mycket praktiskt, ofta är det
inte specielt långa systemrutiner som knappast "slösar" med diskutrymme.
Dessutom har man ofta inte källkoden till dessa rutiner, åtminstone
inte på maskiner utan källkodslicens till t ex operativsystemet. Dess-
utom är de till största delen skrivna i assembler, medan programmen
som använder dem t ex är skrivna i C, Fortran eller Pascal, osv, alltså
ett typiskt flerspråksproblem.
Om man nu har körbara filer av en typ som kan länkas om direkt, så
är de i praktiken objektkodsfiler, och innehåller överflödig infor-
mation (överflöig för körningen), som tar upp extra diskutrymme, så
diskbesparingen blir inte så fantastiskt stor sommn skulle kunna tro!
(Det kan också vara så att länknings/relokeringsfasen är inbyggd i
operativsystemets rutin för programinläsning, men det måste ju
slöa ner systemet en del.)
Så jag kan inte se att objektkodsfiler skulle vara överflödiga!