FORTRAN和C语言符号表及存储类详解
1星 需积分: 36 133 浏览量
更新于2024-12-21
收藏 115KB PDF 举报
在第九章的编译原理课后习题中,主要探讨了符号表在编程语言设计中的重要性,特别是名字作用域的管理。题目详细地列举了不同编程语言(如FORTRAN和C语言)中标识符的作用域规则:
1. FORTRAN语言中,名字作用域分为四种:
- BLOCKDATA块中的标识符作用域扩展到整个程序。
- COMMON块中的标识符作用域限于声明该块的例程。
- 例程内定义的标识符作用域仅限于该例程。
- 使用SAVE关键字定义的标识符为内部静态量,退出例程后其值仍保留。
2. C语言中的变量存储类包括extern、externstatic、auto、localstatic和register,它们各自有不同的作用域:
- extern:全局作用域,跨文件可见。
- externstatic:仅在当前源文件范围内有效。
- auto:局部作用域,仅在定义它的例程内有效。
- localstatic:同auto,但例程退出时值保留。
- register:像auto一样,可能被寄存器存储,但不保证。
此外,还讨论了符号表在编译过程中的作用,如检查标识符重复定义和引用的有效性,以及在处理分程序结构时,通过重名动态下推链的目的。重名动态下推链的主要目标是解决程序中可能出现的同名变量问题,它的工作原理是通过动态链接机制,当遇到同名标识符时,将其信息添加到链表中,确保在编译过程中正确处理这些重名,并在运行时进行相应的查找和管理。
理解这些概念对于深入学习编译原理和实际编程实践至关重要,可以帮助开发者正确处理代码的命名空间和内存管理,避免潜在的错误。通过解答这些问题,学生可以更全面地掌握编译器如何构建符号表,以及如何确保程序的正确性和效率。
11790 浏览量
351 浏览量
104 浏览量
169 浏览量
127 浏览量
1448 浏览量
475 浏览量
BBSMMG
- 粉丝: 1
- 资源: 13
最新资源
- python编码规范
- 企业真实的项目文档(需求分析及详细设计)
- 2008年4月计算机等级二级C语言练习题及答案
- AbrastractExecutorService
- PCB 工艺设计规范
- SQL数据要求说明书
- KillTest 310-065 Demo
- 网上图书网站设计和论文
- 2009思科路由协议挑战100问.pdf
- 数据结构算法与应用-C__语言描述2
- 数据结构算法与应用-C__语言描述
- 无线传感器网络路由协议研究综述(硕士研究生论文)
- WISECMS模板标签说明
- Learning+jquery中文版 第一章
- JSP+structs网上书店cookie实现
- Hardware-Dependent Software Principles and Practice