"Alfred M. Szmidt" ams@gnu.org
Program ::= binary data that can be executed by a computer.
Source code ::= Something that can be converted to binary data that can be executed by a computer (either in one, or several steps)
Software ::= Any of these two.
Data ::= Manuals, music, ...
That is what I have used for many years anyway.
Well, that looks to me like programs for some analogue computers would not be programs and some hardware would be software and many other fun consequences. I'm sure it'd not be too long before other absurdities could be revealed.