“子程序”和“例程”是同一个概念吗?

Tim*_*Tim 5 computer-science programming-languages routines subroutine

我在编程语言书籍中看到过“子例程”和“例程”。它们是同一个概念吗?“子”是什么意思?

我想除了Scott 所著的《编程语言语用学》中的以下示例之外,您可能在计算机科学书籍中见过很多示例:

在第 3.2.2 节中,我们讨论了子程序调用堆栈上的空间分配(图 3.1)。每个例程在调用时都会在堆栈顶部获得一个新的堆栈帧或激活记录。该帧可以包含参数和/或返回值、簿记信息(包括返回地址和保存的寄存器)、局部变量和/或临时变量。当子例程返回时,其帧从堆栈中弹出。

谢谢。

小智 4

据我了解,子例程或例程只是程序运行的独立代码块或指令的名称。例如,在 Ruby 中,我们将子例程称为方法,而在 JavaScript 中,它们称为函数。

在您提供的编程语言语用示例的上下文中,子例程似乎是要执行的操作的调用堆栈,并且堆栈的每个项目都是启动其自己的独立堆栈的例程。执行完所有处理后,例程退出并且子例程向下移动到下一个例程。

维基百科对调用堆栈中发生的事情以及子例程如何得名有一个很好的高级解释。