A computer program is a list of instructions that tell a computer what to do.
A computer program in computer readable form is called machine code. Machine code is binary, a bunch of ‘0’s and ‘1’s.
A computer program in human readable form is called source code. Source code is written in a Programming Language. A computer program cannot be run by simply giving the computer the source code. It won’t understand it. Source code needs to be converted into machine code. A Compiler takes source code and spits out machine code.
The best way to describe what an application is by looking at the attributes and behavior of a program. A program isn’t usually something you see or even know exist. There are lots of programs running in the background of your PC or Mobile. Most of these programs have no element that you interact with. These programs simply go about their business in the background. Doing whatever task they have been written to do.
An application is one or more programs along with a human interface. A human interface is device or element that take input directly from a human. When we talk about application human interfaces we’re usually referring to the screens of the application. As soon a program has an element that a user can interact with it is an application.
Software is a generic term for a program or application.