Het zuiveren en het Testen
De Fouten van de syntaxis
De syntaxis verwijst naar de grammatica, de structuur en de orde van de elementen in een verklaring. Een syntaxisfout komt voor wanneer wij de wetten, zoals het vergeten om een verklaring met een puntkomma te beëindigen overtreden. Wanneer u het programma compileert, zal de compiler een lijst van om het even welke syntaxisfouten uitvaardigen die het kan ontmoeten.
Een goede compiler zal output de lijst met een beschrijving van de fout, en kan een mogelijke oplossing verstrekken. Het bevestigen van de fouten kan in verdere fouten resulteren die toen recompiled worden getoond. De reden voor dit is dat de vorige fouten de structuur van het programma dat veranderden de verdere fouten tijdens de originele compilatie werden onderdrukt betekent.
Op dezelfde manier kan één enkele fout in verscheidene fouten resulteren. Probeer zettend een puntkomma aan het eind van de belangrijkste functie van een programma dat correct compileert en loopt. Wanneer recompile u het, u een reusachtige lijst van fouten zult krijgen, en toch is het slechts een misplaatste puntkomma.
Evenals syntaxisfouten, kunnen de compilers waarschuwingen ook uitgeven. Een waarschuwing is geen fout, maar kan problemen tijdens de uitvoering van uw programma veroorzaken. Bijvoorbeeld kan de toewijzing van een dubbel-precisie het drijven puntaantal aan een enig-precisie het drijven puntaantal in een verlies van precisie resulteren. Het is geen syntaxisfout, maar kon tot problemen leiden. In dit bepaalde voorbeeld, kon u bedoeling tonen door de variabele aan het aangewezen gegevenstype te gieten.
Denk na het volgende voorbeeld waar x een enig-precisie het drijven puntaantal is, en y een dubbel-precisie het drijven puntaantal zijn. y wordt uitdrukkelijk gegoten aan een vlotter tijdens de taak, die om het even welke compilerwaarschuwingen zou elimineren.
x = (float)y;
De Fouten van de logica
De fouten van de logica komen voor wanneer er een fout in de logica is. Bijvoorbeeld, kon u testen dat een aantal minder dan 4 en groter is dan 8. Dat kon onmogelijk ooit waar zijn, maar als het syntactisch correct is zal het programma met succes compileren. Bespreek het volgende voorbeeld:
if (x < 4 && x > 8)
puts("Will never happen!");
De syntaxis is correct, zodat zal het programma compileren, maar zet verklaring nooit zal gedrukt worden aangezien de waarde van x onmogelijk minder dan vier en tezelfdertijd groter kon zijn dan acht.
De meeste logicafouten worden ontdekt door het aanvankelijke testen van het programma. Wanneer het zich niet gedraagt zoals u dacht, inspecteert u dichter de logische verklaringen en verbetert hen. Dit is slechts waar voor duidelijke logische fouten. Groter het programma, zullen de meer wegen daar door het zijn, wordt moeilijker het om te verifiëren dat het programma zich zoals verwacht gedraagt.
|