编译原理—运行环境、局部存储分配、活动记录、全局栈式存储分配、非局部名字的访问、参数传递

news2024/9/22 19:20:31

编译原理—运行环境、局部存储分配、全局栈式存储分配、非局部名字的访问、参数传递#pic_center =65%x55%

  • 1. 运行环境
    • 1.1存储组织与分配
    • 1.2运行时内存划分
  • 2.活动记录
    • 2.1活动记录的内容
    • 2.2活动记录内容的存取
  • 3.静态存储分配
    • 3.1FORTRAN静态存储分配
  • 4. 动态存储分配
    • 4.1 栈式分配下的过程调用与返回
    • 4.2栈式存储分配
  • 5.有参函数的活动记录
    • 5.1scanf的可变参数
    • 5.2悬空引用
  • 6.非局部变量访问
    • 6.1 分程序的实现
  • 7.过程嵌套定义语言中非局部名字访问
    • 7.1使用静态访问链来存取非局部名字
    • 7.2静态链的追踪操作
    • 7.3嵌套的过程定义
  • 8.参数传递
    • 8.1参数传递-传值调用
    • 8.2参数传递-引用调用
    • 8.3C程序参数传递
    • 8.4参数传递 swap

1. 运行环境

在这里插入图片描述

1.1存储组织与分配

在这里插入图片描述

1.2运行时内存划分

在这里插入图片描述

2.活动记录

在这里插入图片描述
在这里插入图片描述

2.1活动记录的内容

在这里插入图片描述

2.2活动记录内容的存取

在这里插入图片描述
在这里插入图片描述

3.静态存储分配

在这里插入图片描述

3.1FORTRAN静态存储分配

在这里插入图片描述

4. 动态存储分配

在这里插入图片描述
在这里插入图片描述

4.1 栈式分配下的过程调用与返回

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2栈式存储分配

在这里插入图片描述
在这里插入图片描述

5.有参函数的活动记录

在这里插入图片描述

5.1scanf的可变参数

在这里插入图片描述

在这里插入图片描述

5.2悬空引用

在这里插入图片描述

6.非局部变量访问

在这里插入图片描述

在这里插入图片描述

6.1 分程序的实现

在这里插入图片描述
在这里插入图片描述

7.过程嵌套定义语言中非局部名字访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1使用静态访问链来存取非局部名字

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2静态链的追踪操作

在这里插入图片描述

7.3嵌套的过程定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.参数传递

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1参数传递-传值调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2参数传递-引用调用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3C程序参数传递

在这里插入图片描述

8.4参数传递 swap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java反射(Reflex)机制

反射概述 Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象&#x…

【linux】linux实操篇之软件包管理

前言 关于这一快软件包管理知识点不多,我们主要认识一下rpm和yum这两个软件包管理工具,主要还是yum的使用! rpm 包的管理 一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有 .rpm 扩展名的文件。…

QQ plot 的解读

QQ plot全称是Quantile-Quantile Plot,分位数-分位数图是通过比较两个概率分布的分位数对这两个概率分布进行比较的概率图方法。 这个图形的形式非常简单,有点类似RNA-seq中评价两个样本相关性的散点图(图1)。这类图形为什么那么…

Java小技能:多级菜单排序并返回树结构菜单列表

文章目录 引言I 生成树形结构菜单列表1.1 获取全部菜单1.2 获取一级菜单,递归获取子节点。1.3 实体1.4 DtoII 常见问题2.1 no instance(s) of type variable(s) R exist so that void conforms to R,2.2 集合filter过滤Integer数值为空问题解决方案引言 需求: 服务商角色配置…

面试官:说说你了解的分布式 ID 生成方案

为什么需要分布式 ID 对于单体系统来说,主键 ID 常用主键自动的方式进行设置。这种 ID 生成方法在单体项目是可行的,但是对于分布式系统,分库分表之后就不适应了。比如订单表数据量太大了,分成了多个库,如果还采用数据…

创业可以做什么项目,六个轻资产创业项目推荐

​2022年已经接近尾声了,你有为下一年做好计划嘛,今年并不是平静的一年,口罩总是反反复复的出现,很多人萌生了创业的想法,那有没有不怕口罩的创业项目呢?虽然创业并不容易,但当你有了正确的方向…

【优化充电】粒子群算法电动汽车充电动态优化策略【含Matlab源码 2163期】

⛄一、粒子群算法电动汽车充电优化 1 电动汽车充电负荷估算 电动汽车的充电负荷主要与电动汽车起始充电时刻和充电时长相关,而起始充电时刻是由电动汽车用户的到家时间决定的,充电时长主要与电动汽车的行驶里程和充电倍率相关。 目前电动汽车还没有大规模运营, 只能通过统计燃…

笔试强训day1

一、选择题 第一题&#xff1a; 题解&#xff1a;y123返回值为123&#xff0c;是非零数&#xff0c;所以y123总是正确&#xff0c;因此循环条件由x<4控制&#xff0c;答案 为C 第二题&#xff1a; %5表示输出总共占据了五列&#xff0c;%.3表示只取字符串左边三个字符并且…

傻白入门芯片设计,wafer/die/chip/cell(一)

1.wafer&#xff1a; 晶圆&#xff0c;指一整个圆形的晶圆硅片。如果问及CPU的原料是什么&#xff0c;大家都会轻而易举的给出答案—是硅。这是不假&#xff0c;但硅又来自哪里呢&#xff1f;其实就是那些最不起眼的沙子。不过不是随便抓一把沙子就可以做原料的&#xff0c;一定…

HTTP 协议

1 HTTP 协议的介绍 HTTP&#xff08;Hyper Transfer Protocol&#xff09;&#xff1a;超文本传输协议HTTP 协议是基于 TCP/IP 协议的超文本&#xff1a;比普通文本更加强大传输协议&#xff1a;客户端和服务器的通信规则&#xff08;握手规则&#xff09; 注意&#xff1a; J…

【计算机毕业设计】21.二手拍卖系统maven源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 引言 近年来&#xff0c;电子商务发展的愈趋成熟使得人们的消费方式以及消费观念发生巨大改变&#xff0c;网上竞拍的拍卖模式随之发展起来。大学拍卖网旨在为湘大学生提供一个线上拍卖的交易平台。平台展示的商品大…

STM32CubeMX时钟树(72MHZ主频配置)

目录 一些基础概念 时钟树配置图 第一步 第二步 这里我只是配置常用的72MHZ主频&#xff0c;很多时候新手都在时钟树这里被劝退了。其实不知道没关系&#xff0c;我用STM32这么久了&#xff0c;也只知道大概。我们绝大多数时候不需要配置这个时钟&#xff0c;记住72MHZ主频…

LeetCode-795-区间子数组个数

1、双指针 根据题意&#xff0c;我们可以将数组中的数分为这三类&#xff1a;1、小于leftleftleft的数&#xff1b;2、大于等于leftleftleft且小于等于rightrightright的数&#xff1b;3、大于rightrightright的数。因此若我们使用双指针来维护区间[last2,last1][last2,last1]…

Nacos与Eureka中的高性能读写并发架构设计

Nacos、Eureka都是微服务领域内熟知、常用的注册中心组件。只不过呢&#xff0c;Nacos还多了个功能身份就是配置中心。从目前流行与随着Spring Cloud Alibaba发展来看&#xff0c;Nacos使用得更加多&#xff0c;也是趋势所在。 注册中心原理 注册中心原理其实很简单&#xff…

【18】Java常见的面试题汇总(Spring/Spring MVC)

目录 1. 为什么要使用 spring&#xff1f; 2. 解释一下什么是 aop&#xff1f; 3. 解释一下什么是 ioc&#xff1f; 4. spring 有哪些主要模块&#xff1f; 5. spring 常用的注入方式有哪些&#xff1f; 6. spring 中的 bean 是线程安全的吗&#xff1f; 7. spring 支持…

【Java八股文总结】之外卖平台项目整理

文章目录一、项目介绍1.1 项目整体介绍1.2 主要模块介绍二、项目开发2.1 后台管理系统开发2.1.1 员工管理employee1、员工后台登录2、员工退出3、过滤器4、新增员工5、员工信息分页查询↑&#xff08;参加上面&#xff09;6、修改员工信息7、根据id查询员工信息&#xff0c;回显…

后台开发的学习日记

后台开发的学习日记 Java后台开发的日记&#xff1a;Push一下自己每天都要学习后台 后台开发学习日志-Day1后台开发的学习日记Day1: 路线及资料的汇总一、应该选择什么语言&#xff1f;二、学习路线的规划及资料的汇总整理Day1: 路线及资料的汇总 第一天主要是路线的准备及资料…

Pytorch学习笔记(二)官方60min入门教程之自动微分

目录 一.相关包及函数介绍 二.雅各比向量积 三.练习代码 一.相关包及函数介绍 autograd 包是 PyTorch 中所有神经网络的核心。首先让我们简要地介绍它&#xff0c;然后我们将会去训练我们的第一个神经网络。该 autograd 软件包为 Tensors 上的所有操作提供自动微分。它是一…

显卡天梯图2022年11月新版 显卡性能排行榜天梯图

1 RTX 3090Ti 2 RTX 3090 3 RX 6900 XT水冷版 我用的显卡就是活动时8折抢购的太划算了 http://www.adiannao.cn/dq 4 RTX 3080 Ti 5 RX 6900 XT 6 Titan RTX 7 RTX 3080 8 RX 6800 XT 9 RX 6800 10 RTX 3070 Ti

C++数据结构X篇_01_数据结构的基本概念

从本篇开始学习数据结构相关概念。 数据结构的基本概念1 数据结构的相关概念1.1 为什么要学习数据结构1.2 数据结构中的基本概念2 算法2.1 算法的概念2.2 算法和数据结构的区别2.3 算法特性2.4 算法效率的度量2.4.1 事后统计法2.4.2 事前分析估算2.4.3 大O表示法2.4.3.1采用大O…