Question & Answer: The BNF rules in each of the following 6 cases describe a construct that consists of a list of elements……

The BNF rules in each of the following 6 cases describe a construct that consists of a list of elements.

(a) Describe the list.

(b) How many elements does it have?

(c) Does anything appear between or after the elements?

a. <name list> -> <name> | <name> ,< name list>

b. <field list> -> <field> ; | <field> ;< field list>

c. <statement list> -> <empty> |< statement> ; <statement list>

d. <term> -> <term> * <factor> |< factor>

e. <variables> -> <empty> | var <var decls>

<var decls> -> <name list> : <type> ; |< name list> : <type> ; <var dels>

f. <constants> -> <empty> | <const decls>

<const decls> -> const <name> = <constant> ;

| <const decls> <name> = <const> ;

The nonterminal for the empty string is: <empty> ->

Expert Answer

 

At first we can use “::==” in place of “–>” to mean “is defined as” and in BNF

a) non terminals are written in angle brackets. e.g. < >.

b) terminals are usually written in quotes. e.g. ” “.

now to answer your first Question.

a. <name list> -> <name> | <name> ,< name list> to describe the list in BNF,it will be

<name list> ::== {<name>”;”}<name>

for the second list ,to describe the list in BNF,

b. <field list> -> <field> ; | <field> ;< field list> it will look like

<field list> ::=={<field>”;”}<field>

for the third list ,to describe the list in BNF

c. <statement list> -> <empty> |< statement> ; <statement list> it will look like

<statement list> ::==[<statement>”;”]<statement>

b) How many elements does it have?

ans for 1. It has 2 elemnts.

ans for 2. it has 1 element.

Still stressed from student homework?
Get quality assistance from academic writers!