"Philosophy is the discipline whose adherents kick up a load of dust, then complain they can't see". Murray Gell-Mann. Mind you, I do have a degree in Philosophy from a faculty very firmly in the analytic school. Logic, metaphysics and ontology have been helpful in thinking about software problems. For instance, you can think of Russell's On Denoting ("the king of France is bald") as being about null pointers, or dan…
Do you mind please explaining rigid designators from Kripke and how they apply to pointers? That sounds like a neat insight! :D
A rigid designator designates the same object in all possible worlds. Translation to software terms: a safe pointer/reference refers to the same object in all possible process lifetimes. Consider Python: everything is an object, including integers. If you look into the C implementation of CPython you'll see that the runtime creates certain commonly used object up front, rather than on demand as is the case for most objects. IIRC integers 0 to 10 are created upfront. So if we exec 'i = 0' in Python and don't change i then i refers to the same object every time we execute. It's a rigid designator!