可搬性とは? わかりやすく解説

移植性

(可搬性 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/12 15:43 UTC 版)

移植性(いしょくせい)、ポータビリティ: portability)とは他の環境への移行のしやすさの性質のこと。

概要

ソフトウェアにおいては、他のプラットフォームに合わせてプログラムソースコードを書き換えるときに、修正が少なくて済む場合を「移植性が高い」と表現する。通例、ソースコードを静的コンパイルあるいはアセンブルして実行プログラム(マシンコード)を事前生成する方式のソフトウェアは、コンパイル時に指定したCPUアーキテクチャやOSなどに応じて、特定の環境でのみ動作する。一般に、移植の際の手間やコストを減らすために、できる限りこの移植性が高いプログラムを書くことが望まれる。

ただし、マーケティング手法によっては移植性の低いプログラミングモデルを用いた方がビジネスとしては成功するケースも存在する。Microsoft Windowsシリーズが現在[いつ?]デファクトスタンダードの地位を維持できている理由は、 他のプラットフォームとの移植性が低く、移行が非常に困難であることによって、極めて強固なベンダーロックインが発生しているからである[要出典]

一般的に低級言語 (アセンブラなど) で作成されたプログラムは移植性が低く、高級言語で書かれたプログラムは移植性が高いと言われる[1]。プロセッサ固有の命令を直接記述しなければならない低級言語よりも、命令の生成をコンパイラに任せることのできる高級言語のほうが、ハードウェアを抽象化しやすく、ソフトウェアのロジックに集中できるからである。

C++言語に関しては、規格への準拠度がコンパイラごとに大きく異なることなどを理由に、テンプレートや例外といった比較的後発の機能の使用を制限するコーディング規約を定めることでポータビリティを確保しているプロジェクト例もある[2]

Java.NET Frameworkなど、仮想機械上で動作するプログラムは、仮想機械がプラットフォームの差異を埋めるため、移植性が非常に高い。しかし、仮想機械ごとに実装が違ったり、インストールされているフォントが異なったりと、移植性に関する問題が完全に解決したわけではない。また、移植性を高めるためにプログラムを高度に抽象化しすぎると、プログラマーがプロセッサ固有の命令や機能を使用した最適化を施しにくくなり、性能面に問題を抱えるというジレンマもある。C#のunsafe[3]や、P/InvokeもしくはJNIによるプラットフォーム固有機能あるいはネイティブコードの使用、System.Numerics.VectorsによるSIMD命令の活用[4] [5]など、安全性・移植性と性能のトレードオフを提供する動きもある。

エンディアンの違いが移植性の問題点となるケースもある。

脚注

  1. ^ ピクニック企画, 堤大介, ed. (1 March 1990). "移植". 『電脳辞典 1990's パソコン用語のABC』. ピクニック企画. p. 10. ISBN 4-938659-00-X
  2. ^ C++ Portability Guide | MDN
  3. ^ unsafe の限界
  4. ^ Using System.Numerics.Vector for Graphics Programming | .NET Blog
  5. ^ System.Numerics.Vectors

関連項目


可搬性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/20 10:04 UTC 版)

インタプリタ」の記事における「可搬性」の解説

AOTコンパイラ方式では事前に生成され機械語実行ファイルユーザー配布される機械語プロセッサアーキテクチャ依存するため、このバイナリ特定のプロセッサでしか動作しない(可搬性が低い)。 一方インタプリタ形式ではソースコードインタプリタ配布されるインタプリタ機械語実行ファイルであるため環境依存するが、ソースコードには環境依存しない言語採用できるその場環境合わせたインタプリタ事前配布しておけば、アーキテクチャ依存しないプログラム配布が可能である(可搬性が高い)。またインタプリタ代わりにJITコンパイラ用いて同様の利点得られる同一動作保証インタプリタ実装依存しており(JITであればコンパイラ)、互換性バグの例として表計算マクロWebページHTML)が挙げられる

※この「可搬性」の解説は、「インタプリタ」の解説の一部です。
「可搬性」を含む「インタプリタ」の記事については、「インタプリタ」の概要を参照ください。

ウィキペディア小見出し辞書の「可搬性」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「可搬性」の関連用語

可搬性のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



可搬性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの移植性 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのインタプリタ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS