Machine-independent
From Wikipedia, the free encyclopedia
In Computer science, a machine-independent program is any program that can be run by any computer, without regard to its architecture or operating system.
Any well-written Java or .NET application could be machine-independent because these platforms run on virtual machines on top of the real computer. The real machine-dependent part is the virtual machine, so this is the (usually little compared to the class libraries) chunk of code that needs to be ported.
To be machine-independent, the application also must not use any machine or platform-specific resources available. Examples of platform specific features are .NET P/Invoke and Java Native Interface, both of which allow the direct use of native libraries.
This is an example of a machine-independent C# application: it would open ".\data.xml" in Microsoft Windows and "./data.xml" in Linux (it also prints the resulting path).
using System; using System.IO; namespace Test { class TestApp { public static void Main(string[] args) { string filePath = "." + Path.DirectorySeparatorChar + "data.xml"; Console.WriteLine("The file path is: {0}", filePath); using(Stream fileData = File.Open()) { // Do anything with the file (for example, process it using System.Xml) // and don't worry about closing the stream because the using statesment // will do it for you (although you could use try-catch-finally) } } } }