编译原理:静态存储分配

编译原理:静态存储分配

📌目录

  • ⚖️ 静态存储分配:编译时的地址绑定
    • 🎯 一、静态存储分配概述
      • (一)静态分配的概念
      • (二)静态分配的对象
      • (三)静态分配的时机
    • 📦 二、静态分配的实现
      • (一)符号表与地址分配
      • (二)地址计算
      • (三)链接与重定位
    • 🌐 三、静态分配的应用
      • (一)全局变量
      • (二)静态局部变量
      • (三)常量存储
    • 📊 四、静态分配的局限性
      • (一)不支持递归
      • (二)大小固定
      • (三)内存浪费
    • 📝 五、静态分配与编译器
      • (一)编译器的任务
      • (二)静态分配策略
      • (三)静态分配优化
    • 📝 总结


⚖️ 静态存储分配:编译时的地址绑定

静态存储分配是编译器在编译阶段为程序中的数据对象分配固定存储地址的策略。从全局变量到静态局部变量,从常量到代码段,静态分配为程序提供了确定性的存储布局。理解静态存储分配是理解程序内存布局的基础,也是编译器设计的重要环节。本文将系统介绍静态存储分配的概念、实现机制和应用场景。

🎯 一、静态存储分配概述

(一)静态分配的概念

静态存储分配在编译时确定存储地址。

静态分配定义:

静态分配:

  • 编译时确定地址
  • 程序加载时分配
  • 程序结束时释放
  • 地址在运行期间不变

特点:

  1. 确定性

    • 地址编译时已知
    • 便于优化和检查
  2. 简单性