Courseist 230cmpsc 360- rewrite the set of productions


PROJECT ON GRAMMARS

 

Course: IST 230/CMPSC 360

 

Deadline: see the calendar in Canvas for the deadline

 

Objective: To acquire a comprehensive understanding of the application of grammars and formal language theory to computing languages.

 

Given: Consider the following set of productions:

 

P01:

FN

FN-HEAD   FN-BODY

P02:

FN-HEAD

TYPE   id   (  PARAM-LIST   )

P03:

TYPE

char

P04:

TYPE

int

P05:

TYPE

real

P06:

PARAM-LIST

TYPE   id

P07:

PARAM-LIST

PARAM-LIST   ,   TYPE   id

P08:

FN-BODY

{   VAR-DECL   STMT   return   (   EXPRESN   )   ;   }

P09:

VAR-DECL

ë

P10:

VAR-DECL

TYPE   ID-LIST   ;

P11:

VAR-DECL

VAR-DECL   TYPE   ID-LIST   ;

P12:

ID-LIST

id

P13:

ID-LIST

ID-LIST   ,  id

P14:

STMT

ë

P15:

STMT

SIMPLE-STMT

P16:

STMT

SELECT-STMT

P17:

STMT

REPEAT-STMT

P18:

STMT

SEQUENCE-STMT

P19:

SIMPLE-STMT

ASSIGN-STMT

P20:

SIMPLE-STMT

FN-CALL-STMT

P21:

ASSIGN-STMT

var   =   EXPRESN   ;

P22:

EXPRESN

ARITH-EXP

P23:

EXPRESN

BOOL-EXP

P24:

ARITH-EXP

TERM

P25:

ARITH-EXP

ARITH-EXP   ADD-OP   TERM

P26:

ADD-OP

+

P27:

ADD-OP

-

P28:

TERM

FAC

P29:

TERM

TERM   MUL-OP   FAC

P30:

MUL-OP

*

P31:

MUL-OP

/

P32:

FAC

(   ARITH-EXP   )

P33:

FAC

OPD

P34:

OPD

var

P35:

OPD

const

P36:

BOOL-EXP

RELN-EXP

P37:

BOOL-EXP

LOGIC-EXP

P38:

RELN-EXP

OPD   RELN-OPR   OPD

P39:

RELN-OPR

==

P40:

RELN-OPR

!=

P41:

RELN-OPR

P42:

RELN-OPR

<=

P43:

RELN-OPR

P44:

RELN-OPR

>=

P45:

LOGIC-EXP

OPD   LOGIC-OPR   OPD

P46:

LOGIC-EXP

LOGIC-OPR   OPD

P47:

LOGIC-OPR

and

P48:

LOGIC-OPR

or

P49:

LOGIC-OPR

not

P50:

FN-CALL-STMT

id   (  ARG-LIST   )   ;

P51:

ARG-LIST

ë

P52:

ARG-LIST

id

P53:

ARG-LIST

ARG-LIST   ,   id

P54:

SELECT-STMT

if   CONDITION   STMT   else   STMT

P55:

CONDITION

(   BOOL-EXP   )

P56:

REPEAT-STMT

DO-STMT

P57:

REPEAT-STMT

WHILE-STMT

P58:

DO-STMT

do   {   STMT   }   while   CONDITION   ;

P59:

WHILE-STMT

while   CONDITION   do   {   STMT   }   ;

P60:

SEQUENCE-STMT

STMT   STMT

Instructions:

 

1. Rewrite the set of productions above in Extended Backus-Naur Form (EBNF).

 

2.  Using a Push Down Automaton (PDA), determine if the following function is valid code according to the given set of productions.

 

int Max ( int x, int y )
{
int z ;

 

if ( x >y )
z = x ;
else
z = y ;

 

return ( z ) ;
}

 

3.  Validate your answer in (2) by illustrating it with a derivation tree

 

Deliverable: Submit a paper Times New Roman font, 12 pt., double-space lines). The project must contain an introduction which includes the purpose of the project.

 

1)

 

BNF:

 

1. ::=
2. ::= ( )
3. ::= "char" | "int" | "real"
4. ::= , |
5. ::={ return ( ) ; }
6. ::= "" | | < ID-LIST>
7. ::= | |
8. ::= "" | | | | SEQUENCE - STMT
9. ::= |
10. ::= "var" =
11. ::= |
12. ::== | | |
13. ::= "+" | "-"
14. ::= |
15. ::= "*" | "/"
16. ::= ( ) |
17. ::= "var" | "const"
18. ::== |
19. ::=
20. ::= "==" | "!=" | "<" | "<=" | ">" | ">="
21. ::= | | | |
22. ::= "and" | "or" | "not"
23. ::= "id" ( ) ;
24. ::= "" | "id" | "id"
25. ::= if else
26. ::= <(BOOL-EXP)>
27. ::= |
28. ::= do { } while ;
29. ::= while do { }
30. ::=

 

EBNF:

 

1. ::=
2. ::= ( * )
3. ::= "char" | "int" | "real"
4. ::= , + | +
5. ::= { * return ( ) ; }
6. ::= "" | * | * < ID-LIST>*
7. ::= "id" | * , "id"
8. ::= "" | | | |
9. ::= |
10. ::= "var" = ;
11. ::= |
12. ::== * | * *
13. ::= "+" | "-"
14. ::= | *
15. ::= "*" | "/"
16. ::= ( * ) |
17. ::= "var" | "const"
18. ::== |
19. ::=
20. ::= "==" | "!=" | "<" | "<=" | ">" | ">="
21. ::= |
22. ::= "and" | "or" | "not"
23. ::= "id" ( * ) ;
24. ::= "" | "id" | * "id"
25. ::= if else
26. ::= <(BOOL-EXP)>
27. ::= |
28. ::= do { } while ;
29. ::= while do { }
30. ::=

Request for Solution File

Ask an Expert for Answer!!
Programming Languages: Courseist 230cmpsc 360- rewrite the set of productions
Reference No:- TGS01711772

Expected delivery within 24 Hours