出于好奇,程序入口点名称'main'的起源是什么?
答案 0 :(得分:3)
在C之前,有IBM的PL / I。在PL / I中,您使用选项声明了一个过程。如果你写了
PROC MUMBLE OPTIONS(MAIN);
告诉编译器MUMBLE
过程是主要过程。 PL / I可能已经从其他地方采用了这个惯例,或者C可能已经从PL / I采用了它,或者它可能只是在空中。但它肯定早于C。
(如果有人想知道为什么所有大写字母,当天的IBM关键字不支持小写字符。是的,我在打孔卡上编写程序。这可能就是为什么我对语法有点不稳定;它已经有一段时间了。)
答案 1 :(得分:1)
我很确定它与程序的“主要”功能有关。除此之外的任何事情都不为我所知。
答案 2 :(得分:1)
在Fortran中,主程序是主程序,即使它没有名称。它与子例程和函数的区别在于具有可执行语句(或其他非注释语句)而没有前面的SUBROUTINE或FUNCTION语句。
当后来的语言决定他们希望主例程以其他过程或函数开头时开始,其中一些人以各种方式采用MAIN或main这个词。
正如其他人所指出的那样,帕斯卡的做法不同。 Shell脚本和Perl类似于Fortran。
答案 3 :(得分:0)
我的理解(虽然我找不到确认的参考)是一些早期语言有一个主要程序的概念(第一个可能是Ada),即使你不必将它命名为main() 。
我认为C是实际使用此标记作为名称的第一种语言。如果我没记错的话,C很大程度上取代了没有命名启动程序的Pascal。
从那里它影响了C语言的后续语言,如C ++,Java和C#。
它还影响了文化上没有强制要求这种功能的语言,如Python。