Tijdens het programmeren kunnen er fouten zijn. Een fout is een onverwachte uitvoer van het programma. Deze fouten kunnen van invloed zijn op de juiste uitvoering van het programma. Daarom is het noodzakelijk om alle fouten te verwijderen. Een fout wordt ook wel een bug genoemd. Het proces om fouten te identificeren en te verhelpen, wordt debugging genoemd. Elke programmeertaal heeft een specifieke syntaxis. De programmeur moet de juiste syntaxis volgen om programma's te schrijven. Wanneer er een syntaxisfout is, staat deze bekend als een syntaxisfout. Er treedt een syntaxisfout op tijdens het compileren. De fout die optreedt tijdens runtime wordt een runtime-fout genoemd. Array out of bound, duiken door nul, toegang krijgen tot geheugen dat niet beschikbaar is, zijn enkele voorbeelden van runtime-fouten. Bij het schrijven van een programma moet een reeks stappen worden gevolgd om het probleem op te lossen. Deze methodiek wordt een algoritme genoemd. Als de logica van het programma verkeerd is, geeft dit onjuiste uitvoer. Dat soort fouten staat bekend als een logische fout. In dit artikel wordt het verschil besproken tussen een syntaxisfout en een logische fout. De belangrijk verschil tussen syntaxisfout en logische fout is dat, de syntaxisfout treedt op vanwege een fout in de syntaxis van een reeks tekens of tokens die is bedoeld om te worden geschreven in een bepaalde programmeertaal, terwijl logische fout een fout is die optreedt als gevolg van de fout in het programmeeralgoritme of de logica.
1. Overzicht en belangrijkste verschil
2. Wat is syntaxisfout
3. Wat is logische fout
4. Overeenkomsten tussen syntaxisfout en logische fout
5. Vergelijking zij aan zij - Syntaxisfout vs. logische fout in tabelvorm
6. Samenvatting
Over het algemeen zijn de programma's geschreven met behulp van geavanceerde programmeertalen. C, Python, Java zijn enkele voorbeelden van programmeertalen op hoog niveau. De broncode is gemakkelijk te lezen en begrijpelijk voor de mens. Deze programma's zijn niet begrijpbaar door de computer. De computer begrijpt alleen machinecode. Daarom wordt het programma op hoog niveau omgezet in machinecode met behulp van een compiler. Elke programmeertaal heeft een eigen set syntaxis om het programma te schrijven. De programmeur moet het programma schrijven volgens de juiste syntaxis. Zo niet, dan zal dit een fout veroorzaken. Dit fouttype staat bekend als een syntaxisfout. Deze fout treedt op op het moment van compilatie.
Het is gemakkelijk om syntaxisfouten te identificeren en te verwijderen, omdat de compiler de locatie en het type fout aangeeft. Wanneer er syntaxisfouten zijn, zal de broncode niet vertaald zijn in de machinecode. Daarom moet de programmeur voor een succesvolle uitvoering de syntaxisfout corrigeren die door de compiler is opgegeven. Enkele veelvoorkomende voorbeelden van syntaxisfouten zijn puntkomma's, ontbrekende accolades, niet-gedeclareerde variabelen of verkeerd gespelde trefwoorden of ID's. Als de programmeur alleen schrijver int x zonder de puntkomma, is het een syntaxisfout. Het verkeerd spellen van de 'int' is een syntaxisfout. Daarom is het noodzakelijk om de syntaxis die relevant is voor de programmeertaal te volgen bij het schrijven van het programma. Het programma compileert niet totdat de syntaxisfout is opgelost. In een geïnterpreteerde taal wordt een syntaxisfout gedetecteerd tijdens de uitvoering van het programma, dus het kan moeilijker zijn om syntaxisfouten te onderscheiden van andere fouten.
Er is een programma geschreven om een probleem op te lossen. Daarom stroomt het een algoritme om het op te lossen. Een algoritme is een stapsgewijze procedure om een bepaald probleem op te lossen. De fouten die optreden als gevolg van een algoritme fout staat bekend als een logische fout. Een programma met logische fout zal er niet voor zorgen dat het programma de uitvoering beëindigt, maar de gegenereerde uitvoer is verkeerd. Wanneer er een syntaxisfout is opgetreden, is het eenvoudig om de fout te detecteren omdat het compileren specificeert over het fouttype en de regel waarop de fout optreedt. Maar het identificeren van een logische fout is moeilijk omdat er geen compilatiebericht is. De uitvoer is verkeerd, zelfs het programma is uitgevoerd. Daarom moet de programmeur elke verklaring lezen en de fout alleen identificeren. Een voorbeeld van een logische fout is het verkeerde gebruik van operatoren. Als de programmer divisie (/) gebruikt in plaats van vermenigvuldiging (*), is dit een logische fout.
Syntaxisfout versus logische fout | |
Een syntaxisfout is een fout in de syntaxis van een reeks tekens of tokens die is bedoeld om te worden geschreven in een bepaalde programmeertaal. | Een logische fout is een fout in een programma dat ervoor zorgt dat het onjuist werkt maar niet abnormaal eindigt. |
voorval | |
Er treedt een syntaxisfout op als gevolg van een fout in de programmasyntaxis. | Een logische fout treedt op vanwege een fout in het algoritme. |
opsporing | |
In gecompileerde talen geeft de compilatie de syntaxisfout aan met de locatie en wat de fout is. | De programmeur moet de fout zelf detecteren. |
Eenvoud | |
Het is gemakkelijker om een syntaxisfout te identificeren. | Het is relatief moeilijk om een logische fout te identificeren. |
Fouten kunnen optreden tijdens het programmeren. Er zijn verschillende soorten fouten. Runtime-fout treedt op tijdens runtime. Enkele voorbeelden van runtime-fouten zijn duiken met nul, toegang tot geheugen dat niet beschikbaar is. Syntaxisfouten treden op als gevolg van syntaxisfouten. De logische fouten treden op vanwege een fout in de logica van het programma. Het verschil tussen een syntaxisfout en een logische fout is dat de syntaxisfout optreedt als gevolg van een fout in de syntaxis van een reeks tekens of tokens die is bedoeld om in een bepaalde programmeertaal te worden geschreven, terwijl een logische fout een fout is die optreedt tot de fout in het programma.
1.PGC Lezingen: programmeerfouten en -typen, syntaxisfout, runtime-fout, logische fout, online leerders, 8 januari 2017. Beschikbaar Hier
2. "Syntaxisfout." Wikipedia, Wikimedia Foundation, 17 februari 2018. Beschikbaar Hier
3. "Logische fout." Wikipedia, Wikimedia Foundation, 27 feb. 2018. Beschikbaar Hier