首页 理论教育 编译原理与实践:过程活动

编译原理与实践:过程活动

时间:2023-11-17 理论教育 版权反馈
【摘要】:一个过程的活动是指该过程的一次执行。从执行该过程体的第一步操作到最后一步操作之间的操作序列,包括执行该过程时调用其他过程所花费的时间,称为该过程的一个活动的生存期。如果一个过程在没有退出当前的活动时,又开始了它的新的活动,则称该过程是递归的。如果过程递归,在某一时刻可能有它的几个活动同时活跃着。一个声明在程序里能起作用的范围称为该声明的作用域。

编译原理与实践:过程活动

为了简化讨论,在一般情况下不再区分某个子程序是过程、函数还是方法,而是将其统称为过程(Procedure)。定义一个过程时,最简单的形式是将一个标识符和一段语句关联起来,其中,标识符是过程名,语句则是过程体。当过程名出现在可执行语句里的时候,称该过程在这一点被调用。过程调用将导致过程体被执行。出现在过程定义中的标识符具有特殊的意义,称为该过程的形式参数(简称形参);而出现在过程调用中的标识符和常数则被称为实际参数(简称实参)。表达式可以作为实参传递给被调用的过程,以替换过程体中的形参。

一个过程的活动是指该过程的一次执行。从执行该过程体的第一步操作到最后一步操作之间的操作序列,包括执行该过程时调用其他过程所花费的时间,称为该过程的一个活动的生存期。假设a和b都是过程的活动,那么,它们的生存期要么是不重叠的,要么是嵌套的。也就是说,如果控制在退出a之前进入b,那么,必须在退出a之前退出b。

如果一个过程在没有退出当前的活动时,又开始了它的新的活动,则称该过程是递归的。递归过程并不一定需要直接调用它本身,就拿递归过程P来说,P可以先调用过程Q,而Q经过若干调用再来调用P。如果过程递归,在某一时刻可能有它的几个活动同时活跃着。(www.xing528.com)

语言中名字的声明是规定名字含义的语法结构,可以显式声明,也可以隐式声明。例如,Pascal语言中的变量声明“int i;”就是一种显式声明方式;而对于FORTRAN语言来讲,在无其他说明的情况下,认为以i开始的变量名均代表整型变量,这就是一种隐式声明方式。

一个声明在程序里能起作用的范围称为该声明的作用域。如果声明的作用域是在一个过程里,那么在这个过程里出现的声明中的名字都是局部于该过程的;除此之外的名字就是非局部的。因此,在一个程序的不同部分,相同的名字可能并不相关。当一个名字在程序正文中出现的时候,语言的作用域规则决定了该名字的归属。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈