Paper on Grammars

profilegina123

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. (30 points)   Rewrite the set of productions above in Extended Backus-Naur Form (EBNF).



  1. (35 points)   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 ) ; 
    }

 

  1. (35 points)   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.  

 

 

 

 

I attached the answers to 1 and 2 just look to make sure correct and write a paper. 

  • 10 years ago
  • 40
Answer(0)