Programming Languages

Assignment 2

  1. Consider the following code written in a language with nested subroutines:


procedure main()

a : integer


procedure B(a : integer)

x : integer


procedure A(n : integer)

a := n


procedure R(m : integer)


x = x – 2

if x > 1

R(m + 1)




–– body of B

x := a × a



–– body of main




  1. What does this program print assuming static scope, respectively dynamic scope? Explain your answer.
  2. Show the frames on the stack when procedure A has just been called. For each frame, show the values of the local variables and the static links.


  1. Consider the following pseudocode with nested subroutines:


  1. procedure main()
  2. a : integer := 1
  3. b : integer := 2
  4. c : integer := 3


  1. procedure first()
  2. a : integer := c
  3. c : integer := b


  1. procedure second()
  2. c : integer := 4


  1. –-body of second
  2. print a, b, c


  1. b : integer := 5


  1. –body of first
  2. second()
  3. print a, b, c


  1. –body of main
  2. first()
  3. print a, b, c


What does the program print (or will the compiler identify static semantic errors) if we assume that:


  1. names must be declared before use, and the scope of a name extends from its declaration through the end of the block?
  2. names must be declared before use, but the scope of a name is the entire block in which it is declared?


  1. Consider the following program written in generic pseudocode:

int x = 1;
int a[3] = { 2, 5, 3 };

void foo(int u, int v) {
v = a[x];
v = u * 9;
x = 2;
a[2] = u;
u = u – 2;
print u;
print v;
print x;
int main() {
foo(a[x], a[2]);
print x;
print a[0];
print a[1];
print a[2];


What is the output printed when this program is executed using call by value-result, respectively, call by macro expansion? Explain what happens in each case.

Calculate your order
Pages (275 words)
Standard price: $0.00
Client Reviews
Our Guarantees
100% Confidentiality
Information about customers is confidential and never disclosed to third parties.
Original Writing
We complete all papers from scratch. You can get a plagiarism report.
Timely Delivery
No missed deadlines – 97% of assignments are completed in time.
Money Back
If you're confident that a writer didn't follow your order details, ask for a refund.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
Power up Your Academic Success with the
Team of Professionals. We’ve Got Your Back.
Power up Your Study Success with Experts We’ve Got Your Back.