Question: Consider a simple imperitive programming language. The syntax of this programming langauge is similar to C. The expression and statement syntax is shown as follows:



Consider a simple imperitive programming language. The syntax of this programming langauge is similar to C. The expression and statement syntax is shown as follows: The language has simple arithmetic operations, equal comparison, and logical operations including "\&\&" (and), "||" (or), and "!" (not). Like other imperitive programming languages, it has assignment statements and if statements. Multiple statements will be separated by ";" and be executed sequentially. This langauge has only integer values. Similar to C, it uses zero to represent false and non-zero to represent true for boolean conditions and operations. To formally define the semantics of the programming language, we use the notation we introduced in the class. Specifically, a program in the langauge operates with an execution environment E=vn, defined as a list of entries saperated by comas. Each entry binds a variable to an integer. We use notation Een to denote that under the enviroment E, an expression e in the language will evaluate to the integer value n. We use notation EsE to denote under the environment E, the execution of the statement s will produce a new environment E. We can write down the operational semantics for variable reference, integer constant, addition, substraction, multiplication, variable assignment, and sequential execution as the following inference rules: EnnnZEvnE(v)=nEe1+e2n1+n2Ee1n1Ee1e2n1n2Ee2n2Ee1e2n1n2Ee1n1Ee2n2Ev=eEEen1E=vn1,EEs1;s2EEs1EEs2E The following rule defines the operational semantics of if statement in the case of the condition being false (i.e., zero): Eif(e)s1elses2EEenEs2En=0 Write down the inference rule to define the semantics of if statement in the case of the condition being true
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
