プリプロセッサとは

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

コンパイラとは

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

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

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

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

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

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

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

結論

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



Leave a Comment

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proが充電できない場合、別の電源を使用し、イヤフォンを清掃してください。充電中はケースを開いたままにしてください。

3Dプリントの基本:必見のメンテナンスチェックリスト

3Dプリントの基本:必見のメンテナンスチェックリスト

設備を良好な状態に保つことは必須です。ここでは、3Dプリンターを最良の状態に保つための役立つヒントをご紹介します。

キヤノン Pixma MG5220: インクなしでスキャンする方法

キヤノン Pixma MG5220: インクなしでスキャンする方法

インクが切れた場合にキヤノン Pixma MG5220でスキャンを有効にする方法。

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する可能性のある理由と、この問題を回避してデバイスを冷却するためのヒントやコツを見つけましょう。

GeForce Now エラーコード 0xC272008F 修正方法

GeForce Now エラーコード 0xC272008F 修正方法

ゲームを楽しむ準備が整い、『Star Wars Outlaws』をGeForce Nowでプレイしようとすると、エラーコード0xC272008Fが発生。Ubisoftゲームを再び遊ぶための唯一の解決策を見つけましょう。

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンターを維持することは、最高の結果を得るために非常に重要です。念頭に置くべき重要なヒントをご紹介します。

プリンターのIPアドレスを見つける方法

プリンターのIPアドレスを見つける方法

プリンターの使用しているIPアドレスがわからなくて困っていますか?その情報を見つける方法をお教えします。

Samsungの電話でAirPodsを使用する方法

Samsungの電話でAirPodsを使用する方法

Samsungの電話用にAirPodsを購入するかどうか迷っているなら、このガイドが役立ちます。もっとも明白な質問は、両者が互換性があるかどうかです。

修正:ChromebookがBluetoothデバイスに接続しない

修正:ChromebookがBluetoothデバイスに接続しない

BluetoothデバイスをChromebookとペアリングできない場合は、Bluetoothオプションを無効にして、ラップトップを再起動します。

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNは、ネットワークの使用状況を監視している人からユーザーを保護するための優れた解決策です。