CSC 272-Software II : Principles of Programming Languages

Dr. R. M. Siegfried

Assignment #5 - p. 237-239/ Problem set 7, 9 and 10

Due Friday, March 30, 2018

Problem Set 7

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();

Problem Set 9

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.

Problem Set 10

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.

[Back to the Assignment List]