Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

4. Consider the following augmented grammar. S' -> S S -> V = E ; -> E ; V -> * E -> i E

4. Consider the following augmented grammar.

S' -> S

S -> V = E ;

-> E ;

V -> * E

-> i

E -> V

a) Construct the DFA of sets of LR( 1) items for this grammar.

b) Construct the canonical LR( 1) parsing table.

c) Trace the actions of the parser on the input

'* i = i ;'.

5. a) Consider the following EBNF grammar for an IF statement

IfStat -> IF Expr THEN Stats [ ELSE Stats] END

Describe the control flow semantics with a diagram.

b) Below, the grammar has been rewritten in a form suitable for an

attributed translation scheme.

IfStat -> IfHead IfTail

IfHead -> IF Expr THEN Stats

IfTail -> ELSE Stats END

-> END

Augment the grammar with action symbols and attributes to handle

the required branch semantics. Give procedural specifications

of all action routines used in the attributed translation grammar.

c) Develop an attributed translation scheme for a REPEAT statement

described by the following grammar.

RepStat -> REPEAT Stats UNTIL Expr

6. Consider the following attribute grammar (partially in implicit

assignment form).

G -> A!0^r

A!x^z -> B!y^z A!x^y

-> c C!x^y { z = 10*y + 3}

B!x^w -> a B!v^z b C!x^y { v = 10*y +2; w = 10*z + 1}

-> b { w = 10*x + 2}

C!x^y -> c { y = 10*x + 3}

a) Draw the parse tree for the input 'abbcbcc'.

b) Draw the dependency graph induced by the implicit assignments and

attribute evaluation rules.

c) Decorate the parse tree with attribute values.

d) Show how the introduction of attributed action symbols realizing

the remaining attribute rules results in an attribute grammar

completely in implicit assignment form

7. Consider the following program in a block-structured language.

The simplest symbol-table organization in such a situation is the

stack symbol table described in class.

program M;

var

a, b, c: integer;

procedure P1( m, n: integer);

var

a, b: integer;

begin (* P1 *)

...

end P1;

procedure P2( n: integer);

procedure P3( p, q: integer);

var

z: integer;

v: boolean;

begin (* P3 *)

...

end P3;

begin (* P2 *)

...

P1( 2*n, 5+n)

...

end P2;

begin (* M *)

...

P2( a+b);

...

end M.

Assume that 'read', 'write', and 'abs', are the only predefined names.

a) Show the contents of the symbol table and the scope table/ display

prior to completing the compilation of procedure P1.

b) Show the contents of the symbol table and display prior to

completing the compilation of procedure P3.

8. Consider the following program skeleton in a statically scoped

language.

program M;

procedure P;

procedure Q;

begin (* Q *)

if ... then

Q

else

P

end;

end Q;

begin (* P *)

if ... then

Q

end;

end P;

begin (* M *)

P

end M.

Consider the following call sequence.

M -> P -> Q -> Q -> Q -> P

a) Draw a snapshot of the runtime stack of activation records

just prior to returning from the second call to P.

b) Show the dynamic chain.

c) Describe how static links are calculated.

d) Show the static chain.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

List the types of risks inherent to investing in bonds.

Answered: 1 week ago