You are on page 1of 4

Computer Science 9608

P3 Sec 3.4.3) Translation software with Majid Tahir

9608/31/M/J/15
Q1.

(a) The following assignment statements are invalid. Give the reason in each case.

(i) a = b + c
Reason
Missing a semi-colon ";"
..............................................................................................................................
.......................................................................................................................................[1]
(ii) a = b – 2;
Reason
2 is not a variable
..............................................................................................................................
.......................................................................................................................................[1]
(iii) a = dd * cce;
Reason
..............................................................................................................................
.......................................................................................................................................[1]

11
Computer Science 9608
P3 Sec 3.4.3) Translation software with Majid Tahir

(b) Write the Backus-Naur Form (BNF) for the syntax diagrams shown on the opposite
page.
<assignmentstatement> ::=
<variable> = <variable><operator><variable>
............................................................................................................................................
<variable> ::=
<letter>|<letter><letter>|<letter><letter><letter>
............................................................................................................................................
<letter> ::=
a|b|c|d
............................................................................................................................................
<operator> ::=
+|-|*|
........................................................................................................................................[6]

(c) Rewrite the BNF rule for a variable so that it can be any number of letters.
<variable> ::= <letter>|<letter><variable>
........................................................................................................................................[2]

(d) Programmers working for a software development company use both interpreters
and compilers.

(i) The programmers prefer to debug their programs using an interpreter.

Give one possible reason why.


Debugging is easier
...........................................................................................................................................

.......................................................................................................................................[1]

(ii) The company sells compiled versions of its programs.

Give a reason why this helps to protect the security of the source code.

Compilers form an executable file of the program, so the source code does not need to be
...........................................................................................................................................
shared for the program to be run
.......................................................................................................................................[1]

08/31/M/J/18
Q5. The following syntax diagrams show the syntax of:
an assignment statement
a variable
a signed integer
a letter
a digit
an operator

12
Computer Science 9608
P3 Sec 3.4.3) Translation software with Majid Tahir

(a) The following assignment statements are invalid. Give the reason in each case.

(i) xy = xy ^ c4

Reason c4 isc is
notnot a recognized
a recognized letter integer
signed
..............................................................................................................................
.......................................................................................................................................[1]

13
Computer Science 9608
P3 Sec 3.4.3) Translation software with Majid Tahir

(ii) zy = zy \ 10

Reason
1010 is not
is not a recognized
a recognized digit integer
signed
..............................................................................................................................
.......................................................................................................................................[1]

(iii) yy := xz ^ − 6

Reason
Invalid assignment operator
..............................................................................................................................
.......................................................................................................................................[1]

(b) Complete the Backus-Naur Form (BNF) for the syntax diagrams on the opposite
page.

<assignment statement> ::=

<variable> = <variable><operator><signed integer>


............................................................................................................................................

<variable> ::=

<letter><letter>
............................................................................................................................................

<signed integer> ::=

+<digit>|-<digit>
............................................................................................................................................

<operator> ::=
^|\
........................................................................................................................................[4]

(c) Rewrite the BNF rule for a variable so that it can be any number of letters.

<variable> ::=

<letter>|<letter><variable>
........................................................................................................................................[2]

14

You might also like