プリプロセッサとは

一般に、誰かがコンピューティングでプロセッサを指すとき、それらは計算を実行するある種のシリコン チップを意味します。CPU、GPU、APU、NPU、およびその他の多くのロジック チップの P は、「処理」、つまり中央処理装置の略です。それらはそれぞれ、特定の機能に最適化された特定のタイプのプロセッサです。ただし、プリプロセッサは、CPU や GPU などの物理プロセッサとは何の関係もありません。代わりに、特にコンパイルされた言語に関連するプログラミング用語です。

コンパイラとは

コンパイラは、特定のプログラミング言語を機械語にコンパイルするソフトウェアです。使用可能なプログラミング言語を構成する人間が読める命令は、コンピューターで直接実行できないため、すべてのプログラミング言語は機械語に変換する必要があります。コードの実行中にオンザフライで解釈されるように設計されているものもあります。このアプローチは非常に柔軟で、小さな変更を簡単に加えることができます。ただし、他の多くのプログラミング言語は、実行できるようにコンパイルする必要があります。小さなプログラムでは、これには必ずしも時間がかかりません。ただし、大規模なプログラムでは、コンパイルに数分から数時間かかることもあります。

では、なぜコンパイルが必要な言語を使用したいのでしょうか? まあ、リバースエンジニアリングは難しいです。解釈されたプログラミング言語は、多くの場合、コードをそのまま配布するため、簡単に「盗む」ことができます。知的財産を保護したい企業にとって、コンパイルは複雑で信頼性の低いリバース エンジニアリングのステップを挿入して、実際のコードを確認します。コンパイルされたソフトウェアは、実行用に最適化されているため、サイズも小さくなる傾向があります。これは小さなスクリプトでは実際には問題になりませんが、サイズが数百メガバイト、さらにはギガバイトの大きなソフトウェアを扱う場合、これは顕著な影響を与える可能性があります。

では、プリプロセッサは何をするのでしょうか?

プリプロセッサは、コンパイル前にコードに対して実行されるユーティリティです。通常、コンパイラは起動時にプリプロセッサを自動的に呼び出しますが、個別に実行することもできます。プリプロセッサの仕事は、意図したとおりにコードを設定することです。これは主に、検索および置換機能を実行することによって行われます。

たとえば C では、多数の標準ライブラリを使用するのが標準的な方法です。これらのライブラリは、標準機能を提供する一連の関数を定義します。これらのライブラリをインポートするには、「#include」キーワードに続けてライブラリ名を使用します。プリプロセッサは、コード内で「#include」などのステートメントを検索し、それらを置き換えます。「#include」の場合、プリプロセッサは指定されたライブラリの内容全体を挿入します。

これにより、多くの強力な既存のツールを利用しながら、実際に書かれたコードを読みやすく保つことができます。これにより、アプリケーションごとに車輪を再発明したり、ライブラリの一部またはすべてをコード ベースに貼り付けたりする必要がなくなります。

プリプロセッサのもう 1 つの潜在的な用途は、ビルドの意図に応じて特定の機能を削除または追加することです。たとえば、新しいビルドをテストしたい場合、一連のデバッグ手順を含めると非常に便利です。これらはリリース ビルドで必要ないだけでなく、コンパイルされたソフトウェアを実際に大きくします。プリプロセッサは、コンパイラの引数をチェックして、特定の機能を含める必要があるか無視する必要があるかを判断できます。これと同様に、プリプロセッサは通常、コンパイラの前にコメントを削除します。コメントはビルドに含めるべきではないからです。

結論

プリプロセッサは、実際にコンパイルされる前にコードを操作するためにコンパイラによって実行されるツールです。プリプロセッサは個別に呼び出すことができますが、通常はコンパイル プロセスの一部として呼び出されます。プリプロセッサは特定の定義済み文字列を探し、それらを標準コンテンツに置き換えます。コメントの場合、置き換えはありませんが、外部ライブラリを含むステートメントの場合、プリプロセッサはステートメントを実際のライブラリの内容に置き換えます。プリプロセッサは、特定の機能を制御するためにコンパイル時の引数を取ることもできます。これは、多くの場合、テスト ビルドまたはリリース ビルドにデバッグ機能を含めたり除外したりするために使用されます。



Leave a Comment

ハードドライブのクローンを作成する方法

ハードドライブのクローンを作成する方法

データが貴重な資産である現代のデジタル時代では、Windows 上でハード ドライブのクローンを作成することは、多くの人にとって重要なプロセスとなる可能性があります。この包括的なガイド

Windows 10でドライバーWUDFRdのロードに失敗した場合の修正方法

Windows 10でドライバーWUDFRdのロードに失敗した場合の修正方法

コンピュータの起動中に、ドライバ WUDFRd をコンピュータに読み込めなかったことを示すエラー メッセージが表示されましたか?

NVIDIA GeForce Experienceエラーコード0x0003を修正する方法

NVIDIA GeForce Experienceエラーコード0x0003を修正する方法

デスクトップで NVIDIA GeForce experience エラー コード 0x0003 が発生していますか? 「はい」の場合は、ブログを読んで、このエラーをすばやく簡単に修正する方法を見つけてください。

Chromebook の電源が入らないのはなぜですか

Chromebook の電源が入らないのはなぜですか

「Chromebook の電源がオンにならないのはなぜですか?」という質問に対する答えを見つけます。この役立つガイドは Chromebook ユーザー向けです。

Fitbit Versa 4 の文字盤を変更する方法

Fitbit Versa 4 の文字盤を変更する方法

Fitbit Versa 4 の文字盤を無料で変更して、時計の外観を毎日変えることができます。それがいかに早くて簡単かを見てください。

ルンバが止まったり、くっついたり、向きを変えたりする – 修正

ルンバが止まったり、くっついたり、向きを変えたりする – 修正

ルンバ ロボット掃除機が停止し、固着し、回転し続ける問題を修正します。

Steam Deckのグラフィック設定を変更する方法

Steam Deckのグラフィック設定を変更する方法

Steam デッキは、堅牢で多彩なゲーム体験をすぐに提供します。ただし、ゲームを最適化し、可能な限り最高のパフォーマンスを保証するには、

分離ベースのセキュリティとは何ですか?

分離ベースのセキュリティとは何ですか?

サイバーセキュリティの世界でますます重要になっているトピック、つまり分離ベースのセキュリティを詳しく掘り下げる予定でした。このアプローチは、

Chromebook でオート クリッカーを使用する方法

Chromebook でオート クリッカーを使用する方法

今日は、Chromebook で繰り返しクリックするタスクを自動化できるツール、オート クリッカーについて詳しく説明します。このツールは時間を節約し、

SMPSとは何ですか?

SMPSとは何ですか?

コンピューターに SMPS を選択する前に、SMPS とは何か、およびさまざまな効率評価の意味を理解してください。