Wat is een compilatiefout?
Een compilatiefout is een fout bij het maken van een machinecodebestand voor een computertaal. Veel computertalen compileren hun broncode in machinecodebestanden voordat programma's kunnen worden gebouwd of uitgevoerd. Het meest voorkomende type compilatiefout is een standaardsyntaxisfout; een kleine fout kan veel problemen met de code veroorzaken.
De meest voorkomende objectgeoriënteerde programmeertalen, C ++ en Java®, gebruiken compilatie in een of andere vorm. Dit verschilt aanzienlijk van de geïnterpreteerde talen, die de onbewerkte broncode tijdens runtime gebruiken om een programma uit te voeren. Een taal hoeft niet inherent objectgericht te zijn om compileerbaar te zijn; C ++ kan bijvoorbeeld worden gestructureerd met behulp van objectgeoriënteerde of procedurele programmering.
De meest voorkomende oorzaak van compilatiefouten is een syntaxisfout. Syntaxisfouten zijn fouten in de vorm van de onbewerkte broncode, meestal veroorzaakt door een schending van de principes van de computertaal. Deze fouten kunnen zo eenvoudig zijn als het vergeten van een puntkomma aan het einde van een coderegel, of zo complex als het onjuist initialiseren van een array. Meestal is het niet extreem moeilijk om deze fouten te vinden en te diagnosticeren; de meeste compilers tonen de fouten wanneer ze worden aangetroffen en staan de vorming van machinecode niet toe totdat de fouten zijn opgelost. Verschillende talen gebruiken echter verschillende compilers, dus het is mogelijk dat een bepaald type compilatiefout aanwezig is in de ene taal, maar niet in een andere.
Afhankelijk van de gebruikte taal en compiler, kan één compilatiefout evenveel fouten vertonen. Als u bijvoorbeeld een puntkomma aan het einde van een regel vergeet, wanneer een taal dit vereist, kan dit leiden tot parseerfouten omdat de compiler niet weet wanneer een bepaalde regel moet eindigen. Deze parseerfout kan zich manifesteren als zoveel compilatiefouten, waardoor het lijkt alsof er plotseling gruwelijke problemen zijn met de code in plaats van een kleine typfout. Over het algemeen kan zorgvuldige aandacht voor het naleven van de regels van een computertaal dit soort fouten voorkomen. Evenzo, als een plotselinge aanval van compilatiefouten verschijnt, kan de ervaren programmeur meestal concluderen dat een enkele kleine fout de meeste van hen heeft veroorzaakt.
Een veel voorkomende misvatting van beginnende programmeurs is dat een compilatiefout een computer kan laten crashen, en dit is nooit het geval. Compilatiefouten zijn beperkt tot compilers en het maken van machinecode veroorzaakt zelden problemen voor een heel computersysteem. Geen enkel programma is waterdicht, inclusief een compiler, maar de kans om problemen te veroorzaken met een hele computer door alleen maar compilatie van code of een compilatiefout is erg klein. Zodra alle compilatiefouten zijn opgelost, is de kans groot dat een programma soepel zal lopen, zoals het was bedoeld.