12

I have seen in many documentations that a piece of code is portable.

Can anyone explain to me exactly what it means to call a piece of code portable?

4

3 に答える 3

12

移植可能なコードとは、1 つの特定のプラットフォームに密結合されていないコード、またはプラットフォーム固有の API にできるだけ疎結合されているコードです。あるプラットフォームから別のプラットフォームに移動するのに必要な作業量が少ないという点で、「移植可能」です。

移植可能なコードは、さまざまなプラットフォームで多数のユーザーが使用することを意図したコードを作成する場合に適しています。

移植性は主にコンパイル済み言語の懸念事項です。インタープリター言語は通常、実行時に統一されたインターフェイスを提供するためにインタープリターに依存しているためです。異なるプラットフォーム固有の実装を持つ可能性のあるライブラリを介して同じ機能にアクセスするのではなく、ローカル環境でコマンドを実行するためのbackticks機能に依存することにより、解釈された言語で過度にプラットフォーム固有のコードを記述することは依然として十分に可能です。exec

ライブラリの主な目的は、プラットフォーム間で一貫した API を提供することであるため、多くの場合、ライブラリは移植性に非常に関心があります。

移植可能なコードを作成するには、コードが「到達」し、標準 API の外部で基盤となるオペレーティング システムに触れる必要がある場所の数を最小限に抑える必要があります。通常、このようなアクセスをカプセル化して、コードベース内にプラットフォームからプラットフォームに移植する必要がある場所が 1 か所あるようにしますが、バルクは変更されません。

于 2012-09-25T12:56:11.723 に答える
3

携帯性 とはどういう意味ですか?

これは、同じコードが異なる環境で機能するようにプログラムをコーディングすることを意味します。たとえば、異なるプロセッサ、異なるオペレーティング システム、異なるバージョンのライブラリなどです。

コードが移植可能であれば、新しいシステムで再コンパイルするだけで問題なく実行できるはずです。

どうしてそれが重要ですか?

それが非常に重要な理由は、移植性のないコードがメンテナンスに関して多くの問題を引き起こす可能性があるためです。

于 2012-09-25T12:53:10.180 に答える
2

Portable code is easy to move to other platforms -- either other compilers or other operating systems, with a minimum of changes needed to facilitate the migration.

Ideally this is achieved by only making use of standards (types, functions, definitions that are defined in system-provided header files, where on another system those header files might be modified by the compiler / OS vendor to be correct for that system).

Sometimes use of standards is insufficient, requiring use of (generally ugly) #ifdef's sprinkled throughout the code.

My statements assume a C/C++ like language. Many other languages are more intrinsically portable.

于 2012-09-25T12:51:42.293 に答える