Software Atoms
This is WIP.
I am “thinking aloud” about the primitive elements of software.
I expect that the contents of this note will change with feedback and further thought.
I do, though, believe in “showing my work”. Showing intermediate results, no matter how rough.
Although this article is fresh, these ideas have been percolating for several decades, influenced by my experiences in running a small software consultancy.
Brief overview, follows…
Atoms
- Case on Type
- Case on State
- Case on Data Pattern
Iteration
Molecules
- nested
- spaghetti
Energy
- Control Flow
- Synchronous Transfer of Control Flow
- Asynchronous Transfer of Control Flow
Composition (Molecules)
Data
- Datum (singular)
- Bag (plural, unordered)
- Proc (unit of execution, aka lambda w/o parameters and w/o retaddr)
Control Flow Composition
- sync
-
async
- nested
- spaghetti