 Traditionally in modern computing, application software has been distributed to end-users as binary file, especially executable files.Executables only support the operating system and computer architecture that they were built for—which means that making a single cross-platform executable would be something of a massive task, and is generally replaced by offering a selection of executables for the platforms supported.For software that is distributed as a binary executable, such as software written in C or C++, the programmer must "build the software" for each different operating system and computer architecture, i.e.