好奇心から、プログラムエントリポイントの「main」という名前の由来は何ですか?
4 に答える
C の前には、IBM の PL/I がありました。PL/I では、オプションを指定してプロシージャーを宣言しました。あなたが書いた場合
PROC MUMBLE OPTIONS(MAIN);
MUMBLE
これは、プロシージャーがメイン・プロシージャーであることをコンパイラーに伝えました。PL/I がこの慣習を他の場所から採用したか、C が PL/I から採用したか、あるいは単に空中にあっただけかもしれません。しかし、それは間違いなくCよりも前です。
(なぜすべて大文字なのか、当時の IBM のキーパンチは小文字をサポートしていなかったのか疑問に思っている人がいるかもしれません。はい、私はパンチ カードでプログラムを書きました。それがおそらく、構文について少し不安定な理由です。その間。)
私はそれがプログラムの「メイン」機能であるという事実と関係があると確信しています。それ以上のものは私にはわかりません。
Fortran では、メイン プログラムは、名前がなくてもメイン プログラムでした。これは、先行する SUBROUTINE または FUNCTION ステートメントのない実行可能ステートメント (またはその他の非コメント ステートメント) を持つことによって、サブルーチンおよび関数と区別されました。
後の言語が、メイン ルーチンを他のプロシージャや関数のように開始行から開始することを決定したとき、一部の言語では MAIN または main という単語をさまざまな方法で採用しました。
他の誰かが指摘したように、パスカルは別の方法でそれを行いました。シェル スクリプトと Perl は Fortran に似ています。
私の理解では(確認するための参照は見つかりませんでしたが)、初期の言語の中には、main()という名前を付ける必要がなかったとしても、メインプロシージャ(最初はAdaであった可能性があります)の概念を持っていたものがあります。
このトークンを実際に名前として使用したのはCが最初の言語だったと思います。私が正しく覚えていれば、Cは名前付きの開始プロシージャを持たないPascalを大幅に置き換えました。
そこから、C ++、Java、C#などのCに触発された後続の言語に影響を与えました。
また、Pythonのようにそのような機能を義務付けていない文化的な言語にも影響を与えました。