Assume the following JavaScript program was interpreted using static-scoping
rules. What value of x is displayed in function sub1
? Under dynamic-scoping rules, what value of x is displayed in
function sub1
?
var x; function sub1() { document.write("x = x" + x + "<br />"); } function sub2() { var x; x = 10; sub1()1; } x = 5; sub2();
Consider the following Python program:
x = 1; y = 3; z = 5; def sub1(): a = 7; y = 9; z = 11; ... def sub2(): global x; a = 13; x = 15; w = 17; ... def sub3(): nonlocal a; a = 19; b = 21; z = 23; ... ...
List all the variables, along with the program units where they are declared,
that are visible in the bodies of sub1
,
sub2
and sub3
assuming static scoping is used.
Consider the following C program:
void fun (void) { int a, b, c; /* definition 1 */ ... while (...) { int b, c, d; /* declaration 2 */ .... ← 1 while (...) { int c, d, e; /* definition 3 */ ... ← 2 } ... ← 3 } ... ← 4 }
For each of the four marked points in this function, list each visible variable, along with the number of the definition statement that defines it.