Из любопытства, каковы источники имени 'основной' для точки входа программы?
В Фортране главная программа была главной программой, хотя у нее не было имени. Он отличался от подпрограмм и функций наличием исполняемого оператора (или другого оператора без комментариев) без предшествующего оператора SUBROUTINE или FUNCTION.
Когда более поздние языки решили, что они хотят, чтобы основная процедура начиналась с начальной строки, как и другие процедуры или функции, некоторые из них по-разному приняли слово MAIN или main.
Как заметил кто-то другой, Паскаль сделал это иначе. Скрипты оболочки и Perl напоминают Фортран.
Я почти уверен, что это связано с тем фактом, что это «основная» функция программы. Больше мне ничего неизвестно.
Насколько я понимаю (хотя мне не удалось найти ссылку для подтверждения), некоторые ранние языки имели понятие основной процедуры (первой могла быть Ада), хотя вам не нужно было называть ее main () .
Я думаю, что C был первым языком, который действительно использовал этот токен в качестве имени. C в значительной степени заменил Паскаль, у которого не было именованной процедуры запуска, если я правильно помню.
Отсюда он повлиял на последующие языки, вдохновленные C, такие как C ++, Java и C #.
Это также повлияло на культурные особенности языков, которые не требуют такой функции, как Python.
До C существовала IBM PL / I. В PL / I вы объявили процедуру с опциями. Если вы написали
PROC MUMBLE OPTIONS(MAIN);
, это сообщило компилятору, что процедура MUMBLE
была основной процедурой. PL / I мог перенять это соглашение откуда-то еще, или C мог перенять его у PL / I, или, может быть, это просто витало в воздухе. Но это определенно предшествовало C.
(Если кому-то интересно, почему все буквы верхнего регистра, клавиши IBM того дня не поддерживали строчные буквы. Да, я писал программы на перфокартах. Вероятно, поэтому я немного шаткий по синтаксису; это было давно.)