是"子程序"和"例程"同样的概念?

时间:2017-08-24 21:36:02

标签: programming-languages computer-science subroutine routines

我已经看过"子程序"和"例程"用于编程语言书籍。它们是相同的概念吗?什么" sub - "意思?

我想你可能在计算机科学书籍中看到很多例子,除了以下Programming Language Pragmatics, by Scott:

之外的例子。
  

在3.2.2节中,我们讨论了 subroutin e上的空间分配   调用堆栈(图3.1)。所谓的例程都是新的   堆栈框架或激活记录,位于堆栈顶部。这个框架   可能包含参数和/或返回值,簿记信息   (包括返回地址和保存的寄存器),局部变量,   和/或临时的。当子程序返回时,会弹出其框架   从堆栈。

感谢。

2 个答案:

答案 0 :(得分:1)

我的理解是子程序或例程只是程序运行的自包含代码块或指令的名称。例如,在Ruby中,我们调用子例程方法,就像在JavaScript中一样,它们被称为函数。

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

Wikipedia对调用堆栈中发生的事情及子程序的名称有很好的高级解释。

答案 1 :(得分:1)

这两个术语指的是同一件事:子程序是在程序内部调用的程序。把它想象成一个主程序(一个例程),里面有函数调用,每个函数调用都是一个子例程。但是函数和例程之间几乎没有区别,您可以阅读更多here