4 ms·
Most abstractions are a little leaky, and we usually need to consider the 'how' when specifying the 'what'. For example, adding numbers in C can be accomplishe
by gills 18y ago
Most abstractions are a little leaky, and we usually need to consider the 'how' when specifying the 'what'. For example, adding numbers in C can be accomplished with the abstraction '+', but the programmer must consider whether the operation will overflow the register on the underlying machine. Some even-higher-level languages plug that leak by providing a numerical hierarchy that will not overflow due to constraints imposed by the underlying hardware.
So I would say "higher-level languages" provide less-leaky abstractions. One can specify 'what' without specifying 'how', and one can make assumptions about the way exceptional cases are handled. The ideal language would provide leak-free abstractions but still allow the programmer to dive into any level.
There is probably a lot more to say than that.