科驴助手

块结构

block structure 程序分成对应于标识符和存储器的范围的代码节(即块)的一种层次组织。 块结构的概念源于ALGOL-60的一种独特的特性,且在大多数新的过程性语言中采用,包括PL/ 1, ALGOL-68 , Ada,且有某些限制的在Pascal和C中采用,尽管块结构一直不是FORTRAN,APL,COBOL或BASIC的一部分,它最近已被加入或提出作为对这些语言的增强。 一个块可以是下面任一种: ·一个子例程、过程或函数,它们自身可以是下面某一种情况: 外部的与程序的其余部分分开编译的。 内部的在另一块中嵌套(C不支持在另一个函数体内定义的函数)。 ·一个复合语句,即由一对定界符括住的一系列语句。这种类型的块也用于控制流,例 在定界在一个if-then-else结构的每个分支中执行的代码中。 在每个块中,程序员可以声明数据项(标识符)。那些数据项对该块中的代码是可知的,重设在任何外部块中相同名字的任何项目。但是,该块外面的代码不知道或不能够访问那些数据项。这个局部变量作用域的功能帮助程序避免许多种类的错误。 缺省地,局部数据的存储是在块入口分配的,并在出口释放。这不仅在保留在任何一次占用的存储量方面有用,而且在允许程序分配要求的精确尺度的数组和串方面也是很有用的。(但是,C和Pascal要求常量维数说明)。块结构和动态存储分配之间的这种关系是能够容易地写递归函数的一个关键元素。

数学与计算机科学 · 相关知识