There is another partial ordering of software abstractions that may be somewhat related to construction layering.
I have in mind here abstractions that are layered, or at least ordered as to function. An animal’s visual cortex comes in several layers and is largely devoted to ascertaining instances of some nearly constant set of patterns. Viewed as information systems these tend to be mainly linear, each sending signals to the two on either side in the ordering. I think that there is the following general scheme among such signals: Signals from the layer nearer the raw sense organ suggest that some particular pattern has been detected, in some context of similar reports. A signal may sometimes be sent in the opposite direction with the meaning “that is very unlikely”. The beneficial effect of this signal is that the system searches further among the class of patterns in which it specializes. When I read about the workings of the eye or the language comprehension systems, such a scheme seems needed and provided. Successful artificial systems have such features as well. This idea is expanded here.
Compilers of computer languages are usually simpler and divided into perhaps three recognition layers. The language is designed so that each level can finish its task and not deal with negative feedback from higher layers.
I think that it is good to design artificial languages that have this simplifying property. The biological systems have, except for language, evolved where the raw sensory data is an unintended signal from another species and that other species has probably evolved to make the patterns hard to discern. For two species X and Y, there is a biological arms race between X evolving so that Y cannot see X and Y evolving so that it can see X.