Smalltalk implementors talk of object pointers, which makes sense, but where did the acronym OOP come from? DanIngalls recently explained ...
From the beginning, (i.e., 1972 on) we found ourselves using the phrase "object pointer" in the early Smalltalk work. No problem.
Then around 1974 Ted Kaehler and I invented a virtual memory made expressly for objects, called OOZE (Object Oriented Zoned Environment). We found we were having to talk about "OOZE object pointers" a lot, to specify the semantics of an object pointer whose referent might or might not be in memory. This, being pentasyllabic, finally pushed us over the acronym cliff to coin "OOP".
We got so used to "OOP" as an object pointer, that we kept using it after we dropped OOZE in ST-78 and -80. When we released ST-80 to our collaborating companies, they picked up the word, and eventually asked us what it really meant. We described the above, and explained that, after OOZE, we supposed, it could mean "Ordinary Object Pointer".
That's the truth.