[Solved]: Small-step semantics: for-loops

Problem Detail: I’m trying to construct the small-step semantic rules involving the for-loops, but I can’t find anything about it in the literature (only about while-loops). I was wondering if anyone could help me out with this? This is a first attempt, where $s$ represents a statement and $e$ an expression: $quad displaystylesigma, text{for } s_1 , e_1 , e_2 , s_2 , rightarrow , sigma, text{if } e_1 text{ then (} s_2 ; , e_2; , text{for } s_1 , e_1 , e_2 , s_2 text{ ) else } skip$ Where $sigma$ is a local value store, $s_1$ is for example $i = 0$, $e_1$ could equal $i < 4$ and $e_2$ $i=i+1$.

Asked By : ABC

Answered By : FrankW

Your attempt does not work. Note that $s_1$ is never executed. (And if you prepend the right-hand side with “$s_1;$”, it will be executed multiple times.) What you can do is to translate the for loop into an equivalent while loop: $$sigma,text{for } s_1, e_1, e_2, s_2 text{ endfor} to sigma, s_1; text{while } e_1 text{ do } s_2; e_2 text{ endwhile}.$$
Best Answer from StackOverflow

Question Source : http://cs.stackexchange.com/questions/23981 3.2K people like this

 Download Related Notes/Documents

Leave a Reply