Serious question, not a troll -- I've always felt like I'm missing some key point here.
Or getting the result of an expression into another expression, like
(a+b)*c
You have to write that as x = a+b
y = x*c
In C# people regularly play the human compiler when defining getters&setters (or maybe their IDE does it, but you still have the noise code on your screen). Or when mentioning types everywhere when the compiler could infer it (although it's better now with the var keyword).$300: $(A) $(B) ADD $(C) MUL
And the result would be at the top of the stack.
Not all assembly languages are created equal. ;-)
In the end, I wrote an incomplete Forth compiler for it, but I don't know where the floppies I wrote them to ended up.
C to C++: virtual methods, scope-delimited allocation, dynamic typing.
Of course, if a function definition is a pattern, does that mean that Lisp (chock-full of function definitions) is a lower-level language than Prolog (which doesn't need functions at all and therefore abstracts away that whole idea)?
There's a reason there's no way to express loops and varibles in HTML, for example. That's the principle (or rule) of least power at work:
http://www.w3.org/2001/tag/doc/leastPower.html
Also see: