Text is sequential. We try to factor away parts not depended upon, and to make the actual dependencies explicit. This amounts to replacing the flat sequential flow with a tree, and succeeds if this tree proves to be a DAG (directed acyclic graph). This process is called levelization (Lakos terminology).
We want next to express this structural information textually. Such information (e.g. static typing) can be interpreted by a syntax-aware tool, the runs of which can be audited in order to record a tree of dependencies between configuration items. Although configuration management is generic and syntax neutral, some syntaxes provide thus a better fit.
The tool may be a compiler, then auditing the make process can produce a structured tree. What if the tool is the dynamic loader or a Java virtual machine?
This structure of the dependencies turns into a partial but objective (explicit) meaning. So far generic commonalities are promoted into classification nodes: one offers syntactic support for sameness semantics.
Meaning is bound to use, it is external (not a property). Dependencies are born at use time: audit them.