Question: Concrete Syntax: expr :: = x | n | expr + expr | expr - expr | expr && expr | expr | | expr

Concrete Syntax:
expr ::= x | n | expr + expr | expr - expr | expr && expr | expr || expr
| expr == expr | expr > expr | expr < expr | expr >= expr | expr <= expr
stmt ::= x = expr | print(expr)| if expr: stmt+ else: stmt+
LIf ::= stmt*
Abstract Syntax:
op ::= "add" | "sub" | "not" |"or"| "and" |"eq"|"gt"| "gte" |"lt"| "lte"
Expr ::= Var(x)| Constant(n)| Prim(op, List[Expr])
Stmt ::= Assign(x, Expr)| Print(Expr)| If(Expr, Stmts, Stmts)
Stmts ::= List[Stmt]
LIf ::= Program(Stmts)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!