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.