operating system, programming
The ease with which a piece of software (or file format
) can be "ported", i.e. made to run on a new platform
and/or compile with a new compiler
The most important factor is the language in which the software is written and the most portable language is almost certainly C
(though see Vaxocentrism
for counterexamples). This is true in the sense that C compilers are available for most systems and are often the first compiler provided for a new system. This has led several compiler writers to compile other languages to C code in order to benefit from its portability (as well as the quality of compilers available for it).
The least portable type of language is obviously assembly code
since it is specific to one particular (family of) processor
(s). It may be possible to translate mechanically from one assembly code (or even machine code
) into another but this is not really portability. At the other end of the scale would come interpreted
or semi-compiled languages such as LISP
which rely on the availability of a portable interpreter
or virtual machine
written in a lower level language (often C for the reasons outlined above).
The act or result of porting a program is called a "port". E.g. "I've nearly finished the Pentium
port of my big bang simulation."
Portability is also an attribute of file formats and depends on their adherence to standards
(e.g. ISO 8859
) or the availability of the relevant "viewing" software for different platforms