Typically it is best to think programs and apps as the same thing with different names, just like cyclones, hurricanes and typhoons which technically these three storms are the same thing. So an app and program are just the same thing with different names.
In common usage though you will never call a something running on iOS or Android a program, or something on Windows, Mac OS or Linux an app. These terms seem to reflect on the environment they run on. And they install differently. A program usually requires an installer and will install various files needed on the computer for it to work. An app on the other hand will usually be (or at least feel like) one file downloaded. It will have one icon. And deleting it will be just to tap on “the cross”. A program will include and require an uninstaller in order to get rid of the various files installed all over your hard disk. Programs in general are pretty messy looking things.
One must also think of what usually becomes an app. For the most part we never install anything to do, for instance, Gmail on a computer. Add-ons to browsers may be the in-between case for some functionality, but we still use online email services through a browser. Whereas on an iPhone your email will be an app. In other words some things which are usually done on a browser on a computer will be done by an app in mobile devices.