PortingIn computer programming, porting is a translation of a piece of software to a particular API, operating system, or generally any other computing environment than that for which it was written.
To port software is to edit it so that it can be compiled or otherwise run on that platform. This process may be extremely easy, requiring few (if any) tweaks to the code, or it may involve a lengthy and extensive rewrite.
Portability is ease of porting process, which is one important goal in software engineering. The data compression programs Zip and Unzip are often held to be amongst the most portable and most ported, due to being a simple front end to a mathematical algorithm. Another more complicated but highly portable program is VIM, or Vi IMproved: available in MS-DOS, Win16, Win32 (in graphical and text-only modes), MacOS 7.0 and OS X, BeOS and pretty much any flavour of Unix.
There are many tools, schemes to ease porting, particularly in UNIX community (called package management system. Among them are GNU autoconf with automake, ports of NetBSD, RPM of Red Hat and Fink of MacOS X.