Gegeven is het volgende programma in een Java-achtige taal:
class Main {
int b = 1;
void p(int a) {
System.out.println("" + a + " " + b);
}
void q() {
int b = 3;
p(b);
}
{
q();
}
public static void main(String[] args) {
new Main();
}
}
Geef de getallen die door dit programma worden afgedrukt in het geval dat er
statische scoping wordt gebruikt en in het geval dat er dynamische scoping
wordt gebruikt. Motiveer kort uw antwoord.


  • Bij statische scoping wordt afgedrukt: 3 1
    Bij dynamische scoping wordt afgedrukt: 3 3
    Bij statische scoping wordt b door de vertaler gebonden aan de entiteit die bij de
    declaratie van procedure p bekend staat onder de naam b. Dit is de waarde 1.
    Bij dynamische scoping wordt b gebonden aan de entiteit die bij de aanroep van
    procedure p bekend staat onder de naam b. Dit is de waarde 3.

    Rapporteer Plaats commentaar