CSE 461: Programming Languages ConceptsHomework 2:Solution
(8 points) Consider the C program given below. You will be asked to determine which variables are visible in a number of different situations. In each case, identify each variable by its name and the line number of its declaration.int h, i; void B(int w) { int j, k; i = 2*w; w = w+1; ... } void A (int x, int y) { float i, j; B(h); i = 3; ... } void main() { int a, b; h = 5; a = 3; b = 2; A(a, b); B(h); ... } C uses static scoping. Say which identifiers (including variablesand function names) are visible in the bodies of each of the functions: main, A, B. 1
If C used dynamic scoping and the calling sequence is main callsB. Say which identifiers would be visible in B. If C used dynamic scoping and the calling sequence is main callsA. Say which identifiers would be visible in A. If C used dynamic scoping and the calling sequence is main callsA; A calls B. Say which identifiers would be visible in B. (3 points) Find some online material to learn C++’s namespace mechanism. Explain briefly how it works and its benefits. (3 points) During the execution of a Java program, can a variable be visible but not allocated? Can a variable be allocated but not visible? Explain your answers.