5

出于好奇,程序入口点的名称“main”的由来是什么?

4

4 回答 4

4

在 C 之前,有 IBM 的 PL/I。在 PL/I 中,您声明了一个带有选项的过程。如果你写

PROC MUMBLE OPTIONS(MAIN);

这告诉编译器该MUMBLE过程是主要过程。PL/I 可能从其他地方采用了这个约定,或者 C 可能从 PL/I 中采用了它,或者它可能只是在空中。但它肯定早于 C.

(如果有人想知道为什么所有大写字母,当时的 IBM 按键不支持小写字符。是的,我在穿孔卡片上编写程序。这可能是我在语法上有点不稳定的原因;它一直是尽管。)

于 2010-04-22T04:08:18.133 回答
1

我很确定这与它是程序的“主要”功能有关。除此之外的任何事情对我来说都是未知的。

于 2010-04-21T17:47:57.863 回答
1

在 Fortran 中,主程序是主程序,即使它没有名称。它与子例程和函数的区别在于它的可执行语句(或其他非注释性语句)没有前面的 SUBROUTINE 或 FUNCTION 语句。

当后来的语言决定他们希望主例程像其他过程或函数一样以起始行开头时,其中一些以各种方式采用了 MAIN 或 main 一词。

正如其他人指出的那样,帕斯卡的做法不同。Shell 脚本和 Perl 类似于 Fortran。

于 2010-04-22T04:17:39.393 回答
0

我的理解(虽然我找不到确认的参考资料)是一些早期的语言有一个主过程的概念(第一个可能是 Ada),即使你不必将它命名为 main()。

我认为 C 是第一种实际使用这个标记作为名称的语言。如果我没记错的话,C 在很大程度上取代了没有命名启动过程的 Pascal。

从那里开始,它影响了后来受 C 启发的语言,如 C++、Java 和 C#。

它还影响了不需要这种功能的文化语言,比如 Python。

于 2010-04-21T17:41:49.240 回答