2012-09-25 9 views
5

Widziałem w wielu dokumentacjach, że kawałek kodu to przenośny.Co rozumie się, gdy fragment kodu ma być przenośny?

Czy ktoś może mi wytłumaczyć, , co to jest oznacza wywołanie kodu przenośnego?

+0

Zobacz także: http://stackoverflow.com/questions/3925947/what-is-portability-how-is-java-more-portable-than-other-languages –

Odpowiedz

2

Przenośny kod jest łatwy do przeniesienia na inne platformy - albo inne kompilatory, albo inne systemy operacyjne, z minimalnymi zmianami potrzebnymi do ułatwienia migracji.

Najlepszym rozwiązaniem jest zastosowanie wyłącznie standardów (typy, funkcje, definicje zdefiniowane w dostarczanych przez system plikach nagłówkowych, gdzie w innym systemie pliki nagłówkowe mogą zostać zmodyfikowane przez dostawcę kompilatora/systemu operacyjnego, aby były poprawne dla ten system).

Czasami użycie standardów jest niewystarczające, wymagające użycia (ogólnie brzydkiego) # ifdef spryskanego w całym kodzie.

Moje instrukcje zakładają język podobny do C/C++. Wiele innych języków jest bardziej przenośnych.

2

Co oznacza przenośność?

Oznacza to kodowanie programu w taki sposób, aby ten sam kod działał w różnych środowiskach; na przykład różne procesory, różne systemy operacyjne, różne wersje bibliotek itp.

Jeśli twój kod jest przenośny, powinieneś być w stanie go po prostu ponownie skompilować na dowolnym nowym systemie i powinien działać bez problemów.

Dlaczego to jest ważne?

Powód jest tak ważny, ponieważ nieprzenośny kod może powodować wiele problemów w zakresie konserwacji - zarządzanie wieloma wersjami, słaba czytelność/zrozumiałość kodu, aby wymienić tylko kilka.

5

Przenośny kod to kod, który nie jest ściśle powiązany z jedną konkretną platformą lub który jest tak luźno powiązany z interfejsami API specyficznymi dla platformy. Jest "przenośny", ponieważ ilość pracy wymagana do przeniesienia go z jednej platformy na drugą jest niska.

Przenośny kod jest pożądany, gdy zamierzasz napisać kod przeznaczony do użytku przez dużą grupę odbiorców na wielu różnych platformach.

Przenośność jest przede wszystkim problemem w językach kompilowanych, ponieważ języki interpretowane zazwyczaj wymagają interpretera w celu zapewnienia jednolitego interfejsu w czasie wykonywania. Nadal możliwe jest napisanie nadmiernie specyficznego dla platformy kodu w interpretowanym języku, polegającym na takich funkcjach jak backticks lub exec dla wykonywania poleceń w lokalnych środowiskach, zamiast dostępu do tych samych funkcji za pośrednictwem biblioteki, która może mieć różne implementacje specyficzne dla platformy.

Biblioteki często są bardzo zainteresowane przenośnością, ponieważ ich głównym celem jest zapewnienie spójnego interfejsu API na różnych platformach.

Pisanie kodu przenośnego polega na minimalizowaniu liczby miejsc, które kod musi "schodzić" i dotykaniu podstawowego systemu operacyjnego poza standardowymi interfejsami API. Zazwyczaj otoczyłby on taki dostęp, aby w bazie kodów istniało jedno miejsce, które musi być przeniesione z platformy na platformę, podczas gdy większość pozostaje niezmieniona.