Vad är ett sammanställningsfel?
Ett kompilationsfel är ett fel i att bygga en maskinkodfil för ett datorspråk. Många datorspråk sammanställer sin källkod till maskinkodfiler innan program kan byggas eller köras. Den vanligaste typen av kompilationsfel är ett grundläggande syntaxfel; ett litet misstag kan orsaka många problem med koden.
De vanligaste objektorienterade programmeringsspråken, C ++ och Java®, använder kompilering i någon form. Detta skiljer sig väsentligt från tolkade språk som använder råkällkoden vid körning för att köra ett program. Ett språk behöver inte vara i sig objektorienterat för att vara kompilerbart; C ++ kan till exempel struktureras med hjälp av objektorienterad eller procedurell programmering.
Den vanligaste orsaken till kompileringsfel är ett syntaxfel. Syntaxfel är fel i form av den råa källkoden, vanligtvis orsakad av en viss kränkning av datorspråkets principer. Dessa fel kan vara så enkla som att glömma en semikolon i slutet av en kodrad eller så komplicerad som att initiera en matris felaktigt. Vanligtvis är det inte extremt svårt att hitta och diagnostisera dessa fel; de flesta kompilatorer visar felen när de stöter på och tillåter inte bildning av maskinkod förrän felen är fixade. Olika språk använder emellertid olika kompilatorer, så det är möjligt att en viss typ av sammanställningsfel kan finnas på ett språk, men inte på ett annat.
Beroende på vilket språk och kompilator som används kan ett kompileringsfel dyka upp så många fel. Att till exempel glömma ett semikolon i slutet av en rad, när ett språk kräver det, kan orsaka parsingfel eftersom kompilatorn inte vet när en viss rad ska vara slut. Detta parsingfel kan manifestera sig som många kompileringsfel, vilket gör att det verkar som om det plötsligt är fruktansvärda problem med koden i stället för en liten skrivfel. I allmänhet kan noggrann uppmärksamhet på att följa reglerna för ett datorspråk förhindra dessa typer av fel. På samma sätt, om ett plötsligt angrepp av sammanställningsfel uppstår, kan den erfarna programmeraren vanligtvis dra slutsatsen att ett enda litet misstag orsakade de flesta av dem.
En vanlig missuppfattning av nybörjeprogrammerare är att ett sammanställningsfel kraschar en dator, och detta är aldrig fallet. Kompilationsfel är begränsade till kompilatorer, och skapandet av maskinkod orsakar sällan problem för ett helt datorsystem. Inget program är idiotsäkert, inklusive en kompilator, men chanserna att orsaka problem med en hel dator bara genom att sammanställa kod eller stöta på ett kompilationsfel är extremt små. När alla sammanställningsfel är fixade är chansen god att ett program kommer att fungera smidigt, som det var tänkt att göra.