コンピューティングでは、エントリポイントとは何ですか?
コンピュータでは、エントリポイントは、コードが始まるプログラム、モジュール、または関数内のポイントです。 具体的には、開始するメモリアドレス。 プログラムでは、コードの最初のモジュール、または実行されるコードの最初の行です。 BASICやCOBOLなどの線形のプログラムでは、エントリポイントは文字通りコードの最初の行です。 次に、何らかのジャンプまたは呼び出しが実行されるまで、コードが順番に続きます。 Cプログラミング言語のすべてのバリアントなどのモジュール式プログラミングでは、エントリポイントは開始モジュールです。 Cでは、これは「Main()」関数です。
古いプログラムとオペレーティングシステムでは、実行されていた機能またはシステムに応じて、プログラムに複数のエントリポイントを設定できます。 Windows®やUnixなど、最新のオペレーティングシステムでは、プログラムは単一のエントリポイントをサポートする言語で記述されています。 現代のコンピューティングの初期においても、BASICなどの言語は、プログラムへの単一のエントリポイントを持ちながら、プログラムが1つのモジュールから別のモジュールのエントリポイントに無差別に「ジャンプ」する「ロングジャンプ」をサポートする場合があります。 これは、「スパゲッティコード」と呼ばれるものであり、保守や修正が困難でした。
エントリポイントは、プログラムのエントリポイントを参照することさえできませんが、ダイナミックリンクライブラリ(DLL)のエントリポイントになる場合があります。ダイナミックリンクライブラリは、他のプログラム間で共有されるミニプログラムの一種です。 キーボード入力を制御するDLLはその一例です。 プログラム、モジュール、または関数のタイプに関係なく、エントリポイントは、そのコードの一部で処理が行われる単一のポイントです。 言語を理解したり、プログラムを変更およびサポートするための鍵は、特定のプログラムまたはオペレーティングシステムでエントリポイントがどのように識別されるかを理解することにあります。
エントリポイントの概念は、コンピュータープログラミングが初期の完全に線形な方法を残したときに実装されました。 当時、コンピュータープログラムはコードの最初の行から始まり、一度に1行ずつプロセスの最後まで進みました。 すぐに、ループ、条件分岐、再帰などのプログラミング構造が機能的に効率的なプログラムを作成しましたが、処理はコード内の至る所で跳ね返りました。 これらのプログラムの性質は、処理が実際に開始されるポイントの前にコードの行またはセクションが多数存在する可能性があることを意味します。 このため、エントリポイントが作成および識別されました。
Cでは、これがmain()関数になりました。 この関数がコード内のどこに存在したかに関係なく、そこから処理が開始されました。 他の言語では、エントリポイントは場所によってではなく、場所によって識別されます。 プログラムの先頭には、変数宣言とサブルーチンのセクションが含まれる場合があります。 これらの領域または関数に続くコードの最初の行は、デフォルトでエントリポイントになります。