找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1003|回复: 1

[LISP程序]:求教:LISP语言中关于资源分配与回收的问题

[复制链接]
发表于 2008-2-7 15:30:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
求教:LISP语言中关于资源分配与回收的问题
问题的提出:
    由于LISP是一种基于表处理的符号函数式语言,在遇到列表中的第一个元素时,会将其识别为操作符,故LISP对标识符的定义比较宽松,因此,在LISP中可以对表示函数名的符号原子(甚至可以是+ - * /)进行再赋值操作,此时这些符号所指向的内容将发生改变,由原来的指向函数代码的入口地址变成了其他地址。

      一般情况下,在LISP中,对已分配给子程序的空间,将不会再分配给其他变量,程序是如何对内存进行分配的?是将代码段与数据段分开的吗?

    当指向子程序入口地址的符号原子改变了所指方向,且子程序的入口地址也和再被其他变量所使用时,原来的子程序代码所占用的空间,LISP是否会自动回收?若不能,我们将如何释放这段空间?

    我们可在LISP程序的内部,再嵌套定义其它的子程序,这些子程序的空间是如何分配的,与在程序外部定义的子程序在存储空间的分配上有何不同吗?这种类型的子程序所占用的空间,会在被嵌套的程序运行结束时自动回收吗?


恳请各位大虾予以解答为感!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10506个

财富等级: 富甲天下

发表于 2008-2-8 21:49:18 | 显示全部楼层
函数MEM可以返回LISP的内存分配统计报表;
函数GC可以回收节点空间(每节点占10~12字节)。
LISP只对函数内部变量自动回收节点空间,对任何已赋值的符号可以直接赋nil清空。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 04:12 , Processed in 0.392644 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表