An abstraction represents something while leaving out detail. Feelings and thoughts become language; language can become mathematics, binary, and eventually computer instructions. Each step makes communication or computation more manageable, but also loses information and creates another possible failure point. section 2.1
The same idea appears across human communication and programming:
- Language abstracts feelings and thoughts rather than capturing everything experienced. section 2.1
- Mathematics abstracts language around logic and provability, while binary reduces representation to on and off. section 2.1
- Programming moves from binary through assembly and C to object-oriented languages such as Python and Java; these are layers from binary, not necessarily compilation paths. section 2.1
- Semiotics connects abstraction with signs, signifiers, interpretation, and the construction of meaning, while exposing challenges in language-model mimicry. section 2.1.2
Figure 2.1 We compare cognitive layers of abstraction to programming layers of abstraction down to the logical binary abstraction. Python doesn’t come from C, nor does it compile into C. Python is, however, another layer of abstraction distant from binary. Language follows a similar path. Each layer of abstraction creates a potential point of failure. There are also several layers of abstraction to creating a model, and each is important in seeing the full path from our feelings to a working model.
Use the layered comparison to trace a path from feelings to language, programming representations, and a working model, while locating possible failure points. section 2.1
Abstraction is not inherently better or worse than a lower-level representation. Its value depends on what must be communicated or computed, and its omissions must remain visible when tracing a model’s behavior. section 2.1 section 2.1.2














