Answered step by step
Verified Expert Solution
Question
1 Approved Answer
(a) [4 pts] Consider the following AST in the linear S-expression form: (* (+ a b) (- (* c d) e)) Give two syntactically different
(a) [4 pts] Consider the following AST in the linear S-expression form: (* (+ a b) (- (* c d) e)) Give two syntactically different Python arithmetic expressions that correspond to this AST. (Hint: Syntactically different means the expressions have distinct parse trees.) (b) [6 pts] Consider the following expression from some language X: a + b +c* d + e*f*g i. Assume the common arithmetic properties, i.e. * has precedence over + and left associativity among operations of the same precedence level. Show an AST in the linear S-expression form. ii. Now, assume that the arithmetic properties are flipped, i.e. + has precedence over * and right associativity among operations of the same precedence level. Show an AST in the linear S-expression form. (a) [4 pts] Consider the following AST in the linear S-expression form: (* (+ a b) (- (* c d) e)) Give two syntactically different Python arithmetic expressions that correspond to this AST. (Hint: Syntactically different means the expressions have distinct parse trees.) (b) [6 pts] Consider the following expression from some language X: a + b +c* d + e*f*g i. Assume the common arithmetic properties, i.e. * has precedence over + and left associativity among operations of the same precedence level. Show an AST in the linear S-expression form. ii. Now, assume that the arithmetic properties are flipped, i.e. + has precedence over * and right associativity among operations of the same precedence level. Show an AST in the linear S-expression form
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started