Les 5 - Fouten

Grammatica's
Fouten
1 / 21
next
Slide 1: Slide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

This lesson contains 21 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 50 min

Items in this lesson

Grammatica's
Fouten

Slide 1 - Slide

Leerdoel
Je kunt het verschil tussen een parser en een compiler uitleggen.
Ook kun je verschillende soorten fouten identificeren, zoals een syntactische, runtime en semantische fout, en kun je deze bij het programmeren herkennen.

Slide 2 - Slide

Inleiding
In een programmeertaal moet elke zin volledig duidelijk zijn. Daarom zijn er ook precieze grammaticaregels voor alle onderdelen van de taal.

Voordat de computer jouw code gaat
uitvoeren, wordt eerst de syntaxis
op fouten gecontroleerd

Hoe werkt dit precies?




Slide 3 - Slide

Parser
  • Code die je geschreven hebt, heet de broncode
  • De parser controleer de syntaxis
  • Fouten die de parser ontdekt, heten syntax errors





Slide 4 - Slide

Compiler en interpreter
Na de parser gaat de compiler of de interpreter aan
het werk.

Een compiler maakt veen bestand met objectcode:
  • Dat is code die een computer kan uitvoeren
  • Het staat in een een uitvoerbaar bestand, een executable

Een interpreter voert de code direct uit:
  • Bijvoorbeeld Javascriptcode wordt door een interpreter
     gelijk uitgevoerd in een browser


Slide 5 - Slide

Soorten bugs
  • De parser vindt vooraf fouten: syntax errors
  • Een interpreter kan fouten vinden tijdens het uitvoeren van de code:
     runtime errors

Op welke regel wordt hieronder een runtime error gevonden?



Slide 6 - Slide

Op welke regel wordt hieronder een runtime error gevonden?
A
1
B
2
C
3
D
4

Slide 7 - Quiz

Runtime errors




  • Je kunt geen strings met elkaar vermenigvuldigen, dus regel 3 is fout
  • Een parser ontdekt deze niet, want regel 3 voldoet aan de   grammaticale regel voor een toekenning
  • Pas tijdens het uitvoeren komt deze fout aan het licht

Slide 8 - Slide

Semantische fout
  • Sommige fouten zijn fouten in de betekenis van de   code: semantische fouten
  • Een parser, compiler of interpreter ontdekt deze fouten helemaal niet

Waarom klopt de gevonden uitkomst (14.7) hier niet?



Slide 9 - Slide

Antwoord semantische fout




In deze code staan geen haakjes om cijfer1 + cijfer2 + cijfer3. Daardoor klopt het resultaat niet. Deze fout wordt niet door de compiler ontdekt. Ook de computer zal geen foutmelding geven tijdens het uitvoeren van de code. Het is een fout van de programmeur, waardoor de betekenis van de code niet overeenkomt met het doel: een semantische fout.

Slide 10 - Slide

Semantiek
Syntaxis gaat over de vorm van taal
Semantiek gaat over de betekenis ervan

Syntactisch fout, maar semantisch duidelijk:
  • Het glas staat opde tafol

Syntactisch goed, maar semantisch onduidelijk (niet te begrijpen):
  • De vierkante cirkel wiegde het kleurloze groen in een woedende slaap

Slide 11 - Slide

Semantische fouten opsporen
Parsers, compilers en interpreters ontdekken geen semantische  fouten
  • Daarom moet een applicatie daarop worden getest
  • Bijvoorbeeld door allerlei soorten invoer te geven, en dan te controleren of het resultaat goed is

Slide 12 - Slide

Vraag – Fouten in de code
Er zijn verschillende soorten fouten gemaakt in deze stukjes code. Geef voor elke code aan wat voor fout er is gemaakt: is er een syntax error, een runtime error of een semantische fout?
Syntax error
Runtime error
Semantische fout

Slide 13 - Drag question

Antwoord fouten opsporen




I
Parser
Interpreter
Fout in betekenis

Slide 14 - Slide

Gaat de volgende uitspraak over syntax errors, runtime errors of semantische fouten?

Deze fout wordt gevonden door de parser.
A
Syntax error
B
Runtime error
C
Semantische fout

Slide 15 - Quiz

Gaat de volgende uitspraak over syntax errors, runtime errors of semantische fouten?

Deze fout zal nooit zorgen voor een foutmelding.
A
Syntax error
B
Runtime error
C
Semantische fout

Slide 16 - Quiz

Gaat de volgende uitspraak over syntax errors, runtime errors of semantische fouten?

De interpreter kan deze fouten tegenkomen.
A
Syntax error
B
Runtime error
C
Semantische fout

Slide 17 - Quiz

Gaat de volgende uitspraak over syntax errors, runtime errors of semantische fouten?

Programma's met deze fout, kun je niet uitvoeren
A
Syntax error
B
Runtime error
C
Semantische fout

Slide 18 - Quiz

Leerdoel
Je kunt het verschil tussen een parser en een compiler uitleggen.
Ook kun je verschillende soorten fouten identificeren, zoals een syntactische, runtime en semantische fout, en kun je deze bij het programmeren herkennen.

Slide 19 - Slide

Voor de volgende les
Fundament

  • Lees B4 - hoofdstuk
     4
     door.
  • Maak hoofdstuk 4.2 
     
    vraag 3

Slide 20 - Slide

PTA R41: Algoritmen, automaten en grammatica's
Uit Fundament - B (Grondslagen)




B1: hoofdstuk 1, 2 en 3.1 t/m 3.3 (3.4 dus niet)
B3: hoofdstuk 1 en 2 (hoofdstuk 3 dus niet)
B4: hoofdstuk 1, 2, 3.1 t/m 3.10 en 4 (3.11 en 3.12 dus niet)

Alle LessonUp-presentaties horen verder ook tot de leerstof (vooral bij B1 wijken deze nog wel eens af van de lesstof in Fundament, bijv. met het Modderdorp).





Slide 21 - Slide