美文网首页
编译原理——运行环境

编译原理——运行环境

作者: 牛程程 | 来源:发表于2017-10-08 21:30 被阅读0次

•运行时组织。为了实现源语言中的抽象,编译器会根据操作系统和目标机器来创建和管理运行时环境。运行时环境有数据对象的静态数据区域和用于编译时创建的目标代码静态数据对象的静态数据区域。它还有管理目标程序执行时创建和销毁对象的动态堆栈和堆区。
•控制堆栈。表达式调用和返回通常由称为控制堆栈的运行时堆栈来管理。我们可以使用堆栈,因为表达式调用或激活临时嵌套;也就是说,如果p调用q,那么q的这种激活嵌套在p的激活之内。
•堆栈分配。在运行时堆栈上可以分配局部变量的存储,可以允许或要求局部变量在其过程结束时变成不可用的语言。对于这样的语言,每个活动激活在控制堆栈上具有激活记录(或帧),激活树的根位于底部,堆栈上激活记录的整个序列对应于激活树中的路径到控制当前所在的激活。后者的激活在堆栈的顶部有其记录。
•访问堆栈上的非本地数据。对于不允许嵌套过程声明的C语言,变量的位置是全局的,也可以在运行时堆栈顶部的激活记录中找到。对于具有嵌套过程的语言,我们可以通过访问链接访问堆栈上的非本地数据,这些链接是添加到每个激活记录的指针。通过跟踪到适当激活记录的访问链路链来找到所需的非本地数据。显示器是与访问链接一起使用的辅助阵列,为一系列访问链接提供了有效的快捷方式。
•堆管理。堆是用于可以无限期生存的数据的存储部分,或者直到程序显式删除它。内存管理器分配并释放堆内的空间。
垃圾收集在堆内找到不再使用的空间,因此可以重新分配以容纳其他数据项。对于需要的语言,垃圾收集器是内存管理器的重要子系统。

相关文章

  • 编译原理——运行环境

    •运行时组织。为了实现源语言中的抽象,编译器会根据操作系统和目标机器来创建和管理运行时环境。运行时环境有数据对象的...

  • 编译原理

    编译原理 标签(空格分隔): 编译原理 编译和解释 编译 整个程序全部翻译结束之后,程序才能开始运行;编译和运行是...

  • 使用socket写一个tcp客户端

    原理大家都懂环境 ubuntu14.04直接上代码 编译 运行 输入了http请求头部和响应头

  • jenkins构建java

    编译环境运行环境 编译环境 1,编译环境(jenkins服务器上部署) 2,配置jenkins+maven JAV...

  • 大神一篇文,胜读十年书!Flutter 与 React Nati

    本篇将由 环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来 等七个方面,对当前的 React ...

  • 菜鸟必看,史上最全! Flutter 与 React Nativ

    本篇将由 环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来 等七个方面,对当前的 React ...

  • 闲之代码雨cmatrix

    1,编译环境 2,下载源码包 3,编译安装 4,运行

  • java运行原理、静态代理和动态代理区分

    1、java的编译和运行原理: ■ 编译:将源文件 .java 文件,通过编译器(javac 命令) 编译成 字节...

  • 交叉编译

    在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程...

  • JAVA程序运行原理

    JAVA程序运行原理 编写 .java 源文件 编译成 .class 文件 运行分配 JVM 数据区 JVM 运行...

网友评论

      本文标题:编译原理——运行环境

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