NIM: 1801382963
Kali ini saya akan menjawab Assignment #5 dari Chapter 5 Programming Language Concepts R Sebesta
Review Questions
6. What is
the l-value of a variable? What is the r-value?
*The
l-value of a variable is the address of that variable. An l-value represents a
storage region's "locator" value.
The r-value of a variable is the data
(value) of that variable. All l-values are r-values but not all r-values are l-values.
7. Define binding and binding time.
* A binding is an association between an attribute and an entity, such as
between a variable and its type or value, or between an operation and a symbol.
Binding time is the time at which a
binding takes place.
8. After language design and
implementation [what are the four times bindings can take place in a program?]
*-compile time (bind a variable to a
type in C or Java)
-link time
-load time
(bind a C or C++ static variable to a memory cell)
-run time
(bind a nonstatic local variable to a memory cell)
9. Define static binding and dynamic binding.
*Static
binding is a binding which occurs before run time and remains unchanged
throughout program execution.
Dynamic
binding is a binding which occurs during execution or can change during
execution of the program.
10. What
are the advantages and disadvantages of implicit declarations?
*Advantages:
-Can make
it easier for the programmer to write code, since he/she doesn’t have to also
write the declarations
-Maintainability
can be easier too, since the information about a variable’s type is not written
down in a part of the program distant from where the variable is used
-Readability
can be better since a reader can probably infer the variable’s name or its
context
Disadvantage:
-Reliability
will probably suffer since the programmer may not always realize the type that
the compiler assigned a variable
Problem Set
6. Consider
the following JavaScript skeletal program:
// The main
program var x;
function
sub1() {
var x;
function sub2() {
. . .
}
}
function
sub3() {
. . .
} Assume that the execution of this program
is in the following unit order:
main calls
sub1
sub1 calls
sub2
sub2 calls
sub3
a. Assuming
static scoping, in the following, which dec- laration of x is the correct one
for a reference to x?
i. sub1: sub1
ii. sub2:
sub1
iii. sub3:
main
b. Repeat
part a, but assume dynamic scoping.
i. sub1:
sub1
ii. sub2:
sub1
iii. sub3:
sub1
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 +
"<br />");
}
function
sub2() {
var x;
x = 10;
sub1();
}
x = 5;
sub2();
*Static
scope: x=5
Dynamic
scope: x=10
8. Consider
the following JavaScript program:
var x, y,
z; function sub1() {
var a, y, z;
function sub2() {
var a, b, z;
. . .
}
. . .
}
function
sub3() {
var a, x, w;
. . .
}
List all
the variables, along with the program units where they are declared, that are
visible in the bodies of sub1, sub2, and sub3, assum- ing static scoping is
used.
*sub1: a(sub1) y(sub1) z(sub1) x(main)
sub2: a(sub2) b(sub2) z(sub2) y(sub1) x(main)
sub3: a(sub3) x(sub3) w(sub3) y(main) z(main)
sub2: a(sub2) b(sub2) z(sub2) y(sub1) x(main)
sub3: a(sub3) x(sub3) w(sub3) y(main) z(main)
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, assum- ing static scoping is
used.
* Variable Where Declared
In
sub1:
a sub1
y sub1
z sub1
x main
In
sub2:
a sub2
x sub2
w sub2
y main
z main
In
sub3:
a sub3
b sub3
z sub3
w sub2
x sub2
y main
10.
Consider the following C program:
void
fun(void) { int a, b, c; /* definition 1
*/
. . .
while (. . .) {
int b, c, d; /*definition 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 vari- able, along
with the number of the definition statement that defines it.
* Point 1:
a:1 b:2 c:2 d:2
Point 2:
a:1 b:2 c:3 d:3 e:3
Point 3:
a:1 b:2 c:2 d:2
Point 4: a:1 b:1 c:1
No comments:
Post a Comment