>>31
Yes, there's many kinds of processors, but your average Joe Programmer doesn't design them, much less really understand how they work; to him, the processor
is just a convenience, a black box that has known and reliable behavior. Perhaps a better term is "separation of concerns": only a relatively few number of people need to have a deep understanding of a particular layer of abstraction, and then others come along and build upon that work. Eventually, people start noticing that there's a lot of overlap between the works built upon the current "top" layer, and these functionalities become generalized into a new abstraction for future works to use.