Hvad er en kompilationsfejl?
En kompilationsfejl er en fejl i opbygningen af en maskinkodefil til et computersprog. Mange computersprog samler deres kildekode i maskinkodefiler, før programmer kan bygges eller udføres. Den mest almindelige type kompilationsfejl er en grundlæggende syntaksfejl; en lille fejl kan forårsage mange problemer med koden.
De mest almindelige objektorienterede programmeringssprog, C ++ og Java®, bruger kompilering i en eller anden form. Dette adskiller sig væsentligt fra fortolkede sprog, der bruger den rå kildekode på runtime til at udføre et program. Et sprog behøver ikke at være iboende orienteret for at være kompilerbart; C ++ kan for eksempel struktureres ved hjælp af objektorienteret eller procedureprogrammering.
Den mest almindelige årsag til kompilationsfejl er en syntaksfejl. Syntaksfejl er fejl i form af rå kildekode, som regel forårsaget af en vis krænkelse af computersprogets principper. Disse fejl kan være så enkle som at glemme en semikolon i slutningen af en kodelinie eller så kompleks som at initialisere en matrix forkert. Normalt er det ikke ekstremt vanskeligt at finde og diagnosticere disse fejl; de fleste compilere viser fejlene, når de opstår, og tillader ikke dannelse af maskinkode, før fejlene er rettet. Forskellige sprog bruger forskellige kompilatorer, så det er muligt, at en bestemt type kompilationsfejl kan være til stede på et sprog, men ikke på et andet.
Afhængigt af det anvendte sprog og den kompilator kan en kompilationsfejl vise sig så mange fejl. For eksempel at glemme et semikolon i slutningen af en linje, når et sprog kræver det, kan forårsage parsingfejl, fordi kompilatoren ikke ved, hvornår en bestemt linje skal slutte. Denne analysefejl kan manifestere sig som mange kompilationsfejl, hvilket får det til at virke som om der pludselig er forfærdelige problemer med koden i stedet for en lille skrivefejl. Generelt kan omhyggelig opmærksomhed på at overholde reglerne på et computersprog forhindre disse typer af fejl. På samme måde, hvis der pludselig optræder et pludseligt angreb af kompilationsfejl, kan den erfarne programmerer normalt udlede, at en enkelt lille fejl forårsagede de fleste af dem.
En almindelig misforståelse hos nybegynderprogrammører er, at en kompilationsfejl går ned på en computer, og dette er aldrig tilfældet. Kompilationsfejl er begrænset til kompilatorer, og oprettelse af maskinkode medfører sjældent problemer for et helt computersystem. Intet program er idiotsikkert, inklusive en compiler, men chancerne for at forårsage problemer med en hel computer blot ved at komponere kode eller støde på en kompilationsfejl er ekstremt små. Når alle kompilationsfejl er rettet, er chancerne gode for, at et program kører glat, som det var beregnet til.