Происхождение названия «основной» для точки входа в программу? - PullRequest
5 голосов
/ 21 апреля 2010

Из любопытства, каково происхождение названия 'main' для точки входа в программу?

Ответы [ 4 ]

3 голосов
/ 22 апреля 2010

До C был PL / I IBM. В PL / I вы объявили процедуру с опциями. Если вы написали

PROC MUMBLE OPTIONS(MAIN);

, который сказал компилятору, что MUMBLE процедура была основной процедурой. PL / I, возможно, принял эту конвенцию из другого места, или C, возможно, принял ее от PL / I, или, может быть, это было просто в воздухе. Но это определенно предшествует C.

(Если кому-то интересно, почему все заглавные буквы, то клавишные комбинации IBM того времени не поддерживали строчные символы. Да, я писал программы на перфокартах. Наверное, поэтому я немного расстроен синтаксисом; было некоторое время.)

1 голос
/ 22 апреля 2010

В Фортране основная программа была основной, хотя у нее не было имени. Он отличался от подпрограмм и функций наличием исполняемого оператора (или другого некомментирующего оператора) без предшествующего оператора SUBROUTINE или FUNCTION.

Когда более поздние языки решили, что они хотят, чтобы основная подпрограмма начиналась с начальной строки, как другие процедуры или функции, некоторые из них приняли слово MAIN или main по-разному.

Как заметил кто-то другой, Паскаль сделал это по-другому. Скрипты оболочки и Perl напоминают фортран.

1 голос
/ 21 апреля 2010

Я почти уверен, что это связано с тем, что это «основная» функция программы. Что-то большее, чем это, мне неизвестно.

0 голосов
/ 21 апреля 2010

Насколько я понимаю (хотя я не смог найти ссылку для подтверждения), некоторые ранние языки имели понятие основной процедуры (первой могла быть Ада), даже если вам не нужно было называть ее основной () ,

Я думаю, что C был первым языком, который фактически использовал этот токен в качестве имени. C во многом заменил Pascal, у которого не было именованной процедуры запуска, если я правильно помню.

Оттуда это повлияло на последующие языки, вдохновленные C, такие как C ++, Java и C #.

Это также повлияло на культурные языки, которые не требуют такой функции, такие как Python.

...