
This post is rather off topic. If you don't want to get bogged down in philosophical arguments, you might want to skip this one and come back to my next reply, which I promise will be more on top. On Fri, Mar 04, 2022 at 04:39:12AM +1100, Chris Angelico wrote:
They also do a better job of expressing *concrete* concepts, like addition.
I believe this is a BF program to read two single digit numbers, add them, and print the result:
,>,[<+>-]<------------------------------------------------.
This is a BF program that expresses an abstract concept of addition.
No, it expresses the concept of addition of a concrete data type, integer, not just in the abstract but specifically of one digit decimal integers. Not numbers in general, or operator overloading, or addition of matrices, vectors. It is not the abstract commutative, associative binary operator represented by `+` in abstract algebra. It is the concrete integer addition. https://en.wikipedia.org/wiki/Algebraic_structure Anyway, let's not get too bogged down over semantic disagreements about what is "concrete" and "abstract", since to some degree these are both *relative* terms. Addition of integers is concrete compared to addition in the abstract, and abstract compared to addition in the sense of adding two apples to three apples and getting five apples.
On what basis do you consider addition to be a concrete concept?
Baby chickens of only a few days old, with no training, are instinctively capable of simple addition and subtraction. That's pretty far from the level of abstraction we find in abstract algebra, or in Monads (for example). https://www.quantamagazine.org/animals-can-count-and-use-zero-how-far-does-t... https://wiki.haskell.org/All_About_Monads
Is Python's idea of addition a single machine instruction?
Yes, it is the BINARY_ADD machine instruction in the Python virtual machine.
dis.dis('x+y') 1 0 LOAD_NAME 0 (x) 2 LOAD_NAME 1 (y) 4 BINARY_ADD 6 RETURN_VALUE
Maybe some day, someone will create a physical Python Machine, like people created physical Lisp Machines and Forth Machines.
What, in your view, makes one thing abstract and another thing concrete?
I think that this discussion is already getting too far off-topic, so I'm going to decline to answer beyond what I have already said above. I will respond to the rest of your post shortly. -- Steve