美文网首页
编译器笔记41-运行存储分配-调用序列和返回序列

编译器笔记41-运行存储分配-调用序列和返回序列

作者: 衣忌破 | 来源:发表于2020-03-09 23:14 被阅读0次

    调用序列和返回序列

    过程调用和过程返回都需要执行一些代码来管理活动记录栈,保存或恢复机器状态等。

    • 调用序列
      实现过程调用的代码段。为一个活动记录在栈中分配空间,并在此记录的字段中填写信息。
    • 返回序列
      恢复机器状态,使得调用过程能够在调用结束之后继续执行。
    • 一个调用代码序列中的代码通常被分割到调用过程(调用者)和被调用过程(被调用者)中。返回序列也是如此。

    调用序列

    调用序列.png

    返回序列

    返回序列.png

    调用者和被调用者之间的任务划分

    调用者和被调用者之间的任务划分.png

    变长数据的存储分配

    • 在现代程序设计语言中,在编译时刻不能确定大小的对象将被分配在堆区。但是,如果它们是过程的局部对象,也可以将它们分配在运行时刻栈中。尽量将对象放置在栈区的原因:可以避免对它们的空间进行垃圾回收,也就减少了相应的

    • 只有一个数据对象局部于某个过程 ,且当此过程结束时它变得不可访问,才可以使用栈为这个对象分配空间。

    访问动态分配的数组

    访问动态分配的数组.png

    相关文章

      网友评论

          本文标题:编译器笔记41-运行存储分配-调用序列和返回序列

          本文链接:https://www.haomeiwen.com/subject/iuzmdhtx.html