生存期:静态分配 无递归的语言,局部变量可以静态分配 在 Fortran90之前, Fortran的许多实现里,所有对象都静态分配,程 序运行中没有堆栈和堆区 · Fortran不允许子程序的递归调用,子程序里的局部变量只需要 份 ·程序里所有的变量访问都编译为直接的地址访问 程序运行前完成所有对象的创建,运行中不做任何对象分配和释放 工作这些情况使 Fortran程序具有很高的效率 Fortran不支持下列程序设计技术 递归 变长度数组或字符串 动态存储分配和动态数据结构(如链表),等等 Fortran90加入了递归和动态存储分配,语言的实现模型必须改变
生存期:静态分配 无递归的语言,局部变量可以静态分配 在Fortran 90 之前,Fortran 的许多实现里,所有对象都静态分配,程 序运行中没有堆栈和堆区 • Fortran 不允许子程序的递归调用,子程序里的局部变量只需要一 份 • 程序里所有的变量访问都编译为直接的地址访问 • 程序运行前完成所有对象的创建,运行中不做任何对象分配和释放 工作这些情况使Fortran 程序具有很高的效率 Fortran 不支持下列程序设计技术: • 递归 • 变长度数组或字符串 • 动态存储分配和动态数据结构(如链表),等等 Fortran 90 加入了递归和动态存储分配,语言的实现模型必须改变
静态分配 T Temporaries T Local variables variables Miscellaneous Miscellaneous Miscellaneous bookkeeping bookkeeping Return address Return address Return address Arguments Argumen A nts and retums and returns and returns Subroutine 1 Subroutine 2 Subroutine 3
静态分配