Przenośność oprogramowania
Przenośność oprogramowania – możliwość przenoszenia napisanego programu komputerowego na inną platformę sprzętową lub do innego systemu operacyjnego.
W zależności od rodzaju języka i sposobu interpretacji gotowego programu (język kompilowany, język/kod pośredni, język interpretowany) przeniesienie oprogramowania może wymagać różnego rodzaju interwencji. Najłatwiejsze powinno być przeniesienie programu interpretowanego (może wymagać jedynie zainstalowania bibliotek lub odpowiedniego środowiska programistycznego) oraz programu skompilowanego do tzw. kodu pośredniego. W przypadku programu skompilowanego wymagana jest albo uruchomienie odpowiedniego emulatora, który dla tego programu będzie imitował jego oryginalne środowisko pracy, albo co najmniej rekompilacji. W zależności od tego na ile działanie konkretnego programu zależy od specyficznego otoczenia sprzętowego lub programowego, będzie zależało jak głęboka interwencja w jego działanie będzie wymagania.
Aby uzyskać przenośność oprogramowania obecnie pisze się programy jak najbardziej abstrahujące od konkretnej warstwy sprzętowej lub konkretnego systemu operacyjnego, korzystając w zamian z odpowiednich bibliotek. Może to zmniejszać szybkość działania (pomija się wówczas bardzo specyficzne zalety konkretnych platform) ale daje uniwersalność.