Machine-dependent software
Machine-dependent software is software that runs only on a specific computer. Applications that run on multiple computer architectures are called machine-independent, or cross-platform. Many organisations opt for such software because they believe that machine-dependent software is an asset and will attract more buyers. Organizations that want application software to work on heterogeneous computers may port that software to the other machines. Deploying machine-dependent applications on such architectures, such applications require porting. This procedure includes composing, or re-composing, the application's code to suit the target platform.

Porting 
Porting is the process of converting an application from one architecture to another. Software languages such as Java are designed so that applications can migrate across architectures without source code modifications. The term is applied when programming/equipment is changed to make it usable in a different architecture. 

Code that does not operate properly on a specific system must be ported to another system.

Porting effort depends upon a few variables, including the degree to which the first environment (the source stage) varies from the new environment (the objective stage) and the experience of the creators in knowing platform-specific programming dialects.

Many languages offer a machine independent intermediate code that can be processed by platform-specific interpreters to address incompatibilities. The transitional representation characterises a virtual machine that can execute all modules written in the intermediate dialect. The intermediate code guidelines are interpreted into distinct machine code arrangements by a code generator to make executable code. The intermediate code may also be executed directly without static conversion into platform-specific code.

Approaches 

 Port the translator. This can be coded in portable code.
 Adapt the source code to the new machine.
 Execute the adjusted source utilizing the translator with the code generator source as data. This will produce the machine code for the code generator.

See also
Virtual machine
Java (programming language)
Hardware-dependent software

References

External links 

 Agrawala, A. K., & Rauscher, T. G., 2014, Foundations of microprogramming: architecture, software, and applications, Academic press
 Huang, J., Li, Y. F., & Xie, M., 2015, An empirical analysis of data preprocessing for machine learning-based software cost estimation, Information and Software Technology, 67, 108-127
 Lee, J. H., Yu, J. M., & Lee, D. H., 2013, A tabu search algorithm for unrelated parallel machine scheduling with sequence-and machine-dependent setups: minimizing total tardiness, The International Journal of Advanced Manufacturing Technology, 69(9-12), 2081-2089
 Lin, S. W., & Ying, K. C., 2014, ABC-based manufacturing scheduling for unrelated parallel machines with machine-dependent and job sequence-dependent setup times, Computers & Operations Research, 51, 172-181
 Mathur, R., Miles, S., & Du, M., 2015, Adaptive Automation: Leveraging Machine Learning to Support Uninterrupted Automated Testing of Software Applications, arXiv preprint 
 Rashid, E. A., Patnaik, S. B., & Bhattacherjee, V. C., 2014, Machine learning and software quality prediction: as an expert system, International Journal of Information Engineering and Electronic Business (IJIEEB), 6(2), 9
 Röhrich, T., & Welfonder, E., 2014, Machine Independent Software Wiring and Programming of Distributed Digital Control Systems, In Digital Computer Applications to Process Control: Proceedings of the 7th IFAC/IFIP/IMACS Conference, Vienna, Austria, 17–20 September 1985 (p. 247), Elsevier
 Shepperd, M., Bowes, D., & Hall, T., 2014, Researcher bias: The use of machine learning in software defect prediction, Software Engineering, IEEE Transactions on, 40(6), 603-616
 Wang, J. B., Sun, L. H., & Sun, L. Y., 2011, Single-machine total completion time scheduling with a time-dependent deterioration, Applied Mathematical Modelling, 35(3), 1506-1511
 Yin, Y., Liu, M., Hao, J., & Zhou, M., 2012, Sin

Software architecture