Machine-dependent software is
software
Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work.
...
that runs only on a specific
computer. Applications that run on multiple
computer architectures
In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the ...
are called machine-independent, or
cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
. 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
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
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.
[Mathur, Miles, & Du, 2015]
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
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
*
Java (programming language)
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anyw ...
*
Hardware-dependent software
Hardware-dependent software (HDS or HdS), the part of an operating system that varies across microprocessor boards and is comprised notably of device drivers and of boot code which performs hardware initialization. HDS does not comprise code which ...
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
{{DEFAULTSORT:Machine-Dependent
Software architecture