Sorry, I should have been more clear. I&#x27;m suggesting that you call a piece of syntax syntactic sugar when it&#x27;s actually <i>implemented</i> in terms of the syntax of the rest of the language. So it&#x27;s possible that, e.g. while() is sugar in one C++ implementation and for() is sugar in another.<p>That&#x27;s just a question of terminology, though. There&#x27;s a paper by Felleisen[1] that makes what <i>you&#x27;re</i> talking about precise. What you do is you ask weather an extended language can express a piece of syntax with respect to the base language. Your statement then becomes:<p>Let C* be C++, but without while() or for(). Then,
(i) C* + for() can express while() with respect to C<i>.
(ii) C</i> + while() can express for() with respect to C*.<p>And all of this is made completely formal, and it&#x27;s used to talk about the expressive power of programming languages.<p>[1] <a href="http:&#x2F;&#x2F;citeseerx.ist.psu.edu&#x2F;viewdoc&#x2F;download?doi=10.1.1.51.4656&amp;rep=rep1&amp;type=pdf" rel="nofollow">http:&#x2F;&#x2F;citeseerx.ist.psu.edu&#x2F;viewdoc&#x2F;download?doi=10.1.1.51....</a>