# Machine-dependent software

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Machine-dependent_software
> Markdown URL: https://mediated.wiki/source/Machine-dependent_software.md
> Source: https://en.wikipedia.org/wiki/Machine-dependent_software
> Source revision: 1307978042
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{more footnotes needed|date=January 2018}}'''Machine-dependent software''' is [software](/source/software) that runs only on a specific [computer](/source/computer). Applications that run on multiple [computer architecture](/source/computer_architecture)s are called machine-independent, or [cross-platform](/source/Cross-platform_software).<ref>Agrawala, & Rauscher (2014)</ref> 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](/source/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.<ref>Rashid, Patnaik, & Bhattacherjee, 2014</ref> Software languages such as [Java](/source/Java_(programming_language)) are designed so that applications can migrate across architectures without [source code](/source/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.<ref>Huang, Li, & Xie, 2015</ref>

Many languages offer a machine independent intermediate code that can be processed by platform-specific interpreters to address incompatibilities.<ref>Yin, et al., 2012</ref> 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](/source/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.<ref>Mathur, Miles, & Du, 2015</ref>

== 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](/source/Virtual_machine)
*[Java (programming language)](/source/Java_(programming_language))
*[Hardware-dependent software](/source/Hardware-dependent_software)

== References ==
{{reflist}}

== External links ==

* Agrawala, A. K., & Rauscher, T. G., 2014, [https://books.google.com/books?id=1Z2jBQAAQBAJ&q=%22Machine-dependent+software%22 Foundations of microprogramming: architecture, software, and applications], ''Academic press''
* Huang, J., Li, Y. F., & Xie, M., 2015, [https://www.sciencedirect.com/science/article/pii/S0950584915001275 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, [https://www.researchgate.net/profile/Jae_Min_Yu/publication/257337906_A_tabu_search_algorithm_for_unrelated_parallel_machine_scheduling_with_sequence-_and_machine-dependent_setups_Minimizing_total_tardiness/links/54eac7450cf2f7aa4d57fce2/A-tabu-search-algorithm-for-unrelated-parallel-machine-scheduling-with-sequence-and-machine-dependent-setups-Minimizing-total-tardiness.pdf 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, [https://www.sciencedirect.com/science/article/pii/S0305054814001427 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 {{arXiv|1508.00671}}''
* Rashid, E. A., Patnaik, S. B., & Bhattacherjee, V. C., 2014, [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.846.4890&rep=rep1&type=pdf 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, [https://www.sciencedirect.com/science/article/pii/S1474667017601356 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.&nbsp;247), ''Elsevier''
* Shepperd, M., Bowes, D., & Hall, T., 2014, [http://eprints.lancs.ac.uk/127414/1/Bias.pdf 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, [https://www.sciencedirect.com/science/article/pii/S0307904X1000363X 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

{{DEFAULTSORT:Machine-Dependent}}
Category:Software architecture

---
Adapted from the Wikipedia article [Machine-dependent software](https://en.wikipedia.org/wiki/Machine-dependent_software) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Machine-dependent_software?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
