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.[1] 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.[2] 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.[3]
Many languages offer a machine independent intermediate code that can be processed by platform-specific interpreters to address incompatibilities.[4] 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.[5]
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
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 arXiv:1508.00671
- 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