Programmeerimisel võib esineda vigu. Viga on programmi ootamatu väljund. Need vead võivad mõjutada programmi korrektset täitmist. Seetõttu on vaja kõik vead eemaldada. Vea nimetatakse ka veaks. Vigade tuvastamise ja parandamise protsessi nimetatakse silumiseks. Igal programmeerimiskeelel on kindel süntaks. Programmeerija peaks programmide kirjutamiseks järgima õiget süntaksit. Kui esineb süntaksiviga, nimetatakse seda süntaksivigaks. Süntaksiviga ilmub kompileerimise ajal. Kättesaadavat tõrget nimetatakse käitusveaks. Massiivi piiratud, nulliga sukeldumisel ja mälu jaoks, mis pole saadaval, on mõned näited käitusvigade kohta. Programmi kirjutamisel on probleemi lahendamiseks järgitav samm jada. Seda metoodikat nimetatakse algoritmiks. Kui programmi loogika on vale, annab see vale väljundi. Sellist viga nimetatakse loogiliseks veaks. Selles artiklis käsitletakse süntaksivea ja loogilise vea erinevust. võtme erinevus süntaksivea ja loogilise vea vahel on see, süntaksiviga ilmneb tähemärkide või tähiste jada süntaksis esineva tõrke tõttu, mis on mõeldud kirjutama konkreetses programmeerimiskeeles, samas kui loogiline tõrge on tõrge, mis tekib programmi algoritmi või loogika rikke tõttu.
1. Ülevaade ja peamised erinevused
2. Mis on süntaksi viga
3. Mis on loogiline viga
4. Süntaksivea ja loogilise vea sarnasused
5. Kõrvuti võrdlus - süntaksiviga vs loogiline viga tabelina
6. Kokkuvõte
Üldiselt kirjutatakse programmid kõrgetasemeliste programmeerimiskeelte abil. C, Python ja Java on mõned näited kõrgetasemelistest programmeerimiskeeltest. Lähtekood on inimestele hõlpsasti loetav ja arusaadav. Need programmid pole arvutile arusaadavad. Arvuti saab aru ainult masinkoodist. Seetõttu teisendatakse kõrgetasemeline programm kompilaatori abil masinkoodiks. Igal programmeerimiskeelel on oma süntaksikomplekt programmi kirjutamiseks. Programmeerija peaks programmi kirjutama vastavalt õigele süntaksile. Kui ei, siis põhjustab see tõrke. Seda tõrketüüpi nimetatakse süntaksivigaks. See viga ilmneb kompileerimise ajal.
Süntaksivigu on lihtne tuvastada ja eemaldada, kuna kompilaator kuvab vea asukoha ja tüübi. Süntaksivigade korral pole lähtekood masinkoodiks tõlgitud. Seetõttu peaks programmeerija edukaks täitmiseks parandama kompilaatori määratud süntaksiviga. Mõned süntaksivigade levinumad näited on puudu semikoolonid, puuduvad lokkis traksid, deklareerimata muutujad või valesti kirjutatud märksõnad või identifikaatorid. Kui programmeerija kirjutab ainult int sem ilma semikoolonita, on see süntaksiviga. Int-kirja õigekiri on süntaksiviga. Seetõttu on programmi kirjutamisel vaja järgida programmeerimiskeelele vastavat süntaksi. Programm ei koosta enne, kui süntaksiviga on parandatud. Tõlgendatud keeles tuvastatakse süntaksiviga programmi täitmise ajal, seega võib süntaksivigu teistest vigadest eristada olla raskem..
Probleemi lahendamiseks kirjutatakse programm. Seetõttu voolab selle lahendamiseks algoritmi. Algoritm on samm-sammuline protseduur antud probleemi lahendamiseks. Algoritmi tõrke tõttu tekkinud vigu nimetatakse loogiliseks veaks. Loogilise tõrkega programm ei põhjusta programmi täitmist, kuid genereeritud väljund on vale. Süntaksivea ilmnemisel on seda tõrget lihtne tuvastada, kuna kompileerimisel täpsustatakse tõrke tüüp ja rida, kus viga ilmneb. Kuid loogilise vea tuvastamine on keeruline, kuna kompilaatori teadet pole. Väljund on vale, isegi programm on käivitatud. Seetõttu peaks programmeerija lugema iga väite ja vea ise tuvastama. Loogilise vea üheks näiteks on operaatorite vale kasutamine. Kui programmeerija kasutas korrutamise (*) asemel jagamise (/) operaatorit, siis on see loogiline viga.
Süntaksiviga vs loogiline viga | |
Süntaksiviga on märkide või märkide jada süntaksis esinev tõrge, mis on mõeldud kirjutama konkreetses programmeerimiskeeles. | Loogiline tõrge on tõrge programmis, mille tõttu see töötab valesti, kuid ei peatu ebanormaalselt. |
Esinemine | |
Süntaksiviga ilmneb programmi süntaksis esineva tõrke tõttu. | Loogiline tõrge ilmneb algoritmi tõrke tõttu. |
Märkamine | |
Kompileeritud keeltes näitab kompileeritav süntaksiviga koos asukohaga ja milline see viga on. | Programmeerija peab vea ise tuvastama. |
Lihtsus | |
Süntaksivigu on lihtsam tuvastada. | Loogilise vea tuvastamine on suhteliselt keeruline. |
Programmeerimisel võib esineda vigu. Vigu on erinevat tüüpi. Käivitusviga ilmneb käitusel. Mõned näited käitusvigade kohta on sukeldumine nulliga, pääsedes juurde mälule, mis pole saadaval. Süntaksivead tekivad süntaksivigade tõttu. Loogilised vead tekivad programmi loogika rikke tõttu. Süntaksivea ja loogilise vea erinevus seisneb selles, et süntaksiviga ilmneb teatud programmeerimiskeeles kirjutada kavatsetava tähemärkide või tähiste jada süntaksis esineva vea tõttu, samas kui loogiline tõrge on viga, mis tekib tänu programmi tõrkele.
1.PGC loengud: programmeerimisvead ja -tüübid, süntaksiviga, käitusviga, loogiline tõrge, veebis õppijad, 8. jaan 2017. Saadaval siin
2. “Süntaksi viga.” Wikipedia, Wikimedia Foundation, 17. veebruar 2018. Saadaval siin
3. “Loogikaviga”. Wikipedia, Wikimedia Foundation, 27. veebruar 2018. Saadaval siin