This is an old revision of this page, as edited by Coren (talk | contribs) at 16:35, 2 January 2004. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 16:35, 2 January 2004 by Coren (talk | contribs)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)This article is actively undergoing a major edit for a little while. To help avoid edit conflicts, please do not edit this page while this message is displayed. This page was last edited at 16:35, 2 January 2004 (UTC) (21 years ago) – this estimate is cached, update. Please remove this template if this page hasn't been edited for a significant time. If you are the editor who added this template, please be sure to remove it or replace it with {{Under construction}} between editing sessions. |
In computer programming, porting is a translation of a piece of software to a particular API, operating system, hardware, or generally any other computing environment than that for which it was originally 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.
Among common obstructs in porting are difference in endian and lack of particular hardware features such as floating-point number operation.
Portability describes the relative ease of porting process, which is one important goal in software engineering. It is dependent on the way a program is written, as well as the programming language used. 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/8/9.x and Mac OS X, BeOS and pretty much any flavour of Unix.
There are many tools and schemes to ease porting, particularly in UNIX community (called package management systems). Among them are GNU autoconf with automake, ports of NetBSD, RPM of Red Hat and Fink of MacOS X.