English to program is the same kind of abstraction as going from assembly to program to C to program to high level scripting to "4G languages" and so on, and hiding all kinds of details behind a much terser layer. It's just that it's a qualitative jump at it.
Here's a ChatGPT provided answer asked to "define abstraction in programming, like when going from assembly to C to scripting, etc":
"Abstraction in programming is the process of building layers where each layer hides the details of the layer below".
In math/computers abstraction has a technical meaning that requires deterministic behavior for the abstraction to work. It isn't a proper abstraction if it doesn't always do the same thing underneath.
Abstraction as a layering idea without regard to how it works is like the pop-pych version in that it is "right" but misses nuance.
English to program is the same kind of abstraction as going from assembly to program to C to program to high level scripting to "4G languages" and so on, and hiding all kinds of details behind a much terser layer. It's just that it's a qualitative jump at it.
Here's a ChatGPT provided answer asked to "define abstraction in programming, like when going from assembly to C to scripting, etc":
"Abstraction in programming is the process of building layers where each layer hides the details of the layer below".