The 'abstractions' discussed are not abstract concepts - we are talking about software abstractions. These depend on language features (think of high order functions/first class functions; think lazy evaluation). In extreme cases they depend on special syntax or notations (think APL or think of list comprehensions).
Thus, it is quite problematic to think of language neutral abstractions. Indeed, this is related to the lowest common denominator problem with cross-language-runtimes.
Building a language neutral theory of software abstraction may be possible, but it is far from a simple problem (my Ada-Europe'2001 paper gives some pointers). I believe that if such a (general) theory were to be built it is going to be so abstract programmers will have to map it to restricted and language based models. The theoretical frameowork will be good for, you guessed it: theoretical work.
Keywords to look for (if you want to think about abstraction, in a concrete way): category theory, algebras/co-algebras. type systems, interfaces, sepcifications, reflection etc.
|