不是很理解楼主你说的名词:静/动态作用域法。
你是要问static关键字吗
你是要问static关键字吗
解决方案 »
- 既是通讯系统 要求一个主机 和多个客户端 谁能给我写一个框架啊
- 关于多线程的问题
- 关于数据库存储过程的理解!
- swt项目导出为jar后运行问题,急~~~
- 【请教】如何限制日期类的内容?
- 如何判断一个线程是在sleep(),还是在工作?
- eclipse+lomboz+tomcat遇到的问题,显示不能解析导入javabean
- 请问:“package javax.servlet does not exist”是怎么回事?
- apache commons logging 缺省使用jdk14logger, 设置jdk14logger的loglevel的问题
- 就构建个人互动小网站,问各路高手几个问题:
- java包的编译和运行
- 正则表达式:除了某个字符之外的字符,怎么写?
从实现的角度,所谓静态还是动态作用域,它们对“自由变量”的定位是不一样的。
动态作用域中查找自由变量,是顺着函数调用活动纪录形成的堆栈反向查找(当然这只是一种实现方式,还有别的实现方式),所谓的“动态链”。
静态作用域中查找自由变量,是在函数定义时的环境中查找。为了搞定静态作用域,可以把函数实现为一个闭包(即包含代码和定义时的环境的一个二元组),这样查找自由变量就方便多了。
从写解释器的方面看,实现静态作用域更麻烦,所以很多解释语言象lisp、perl初期都用动态作用域,现在还有一些lisp方言如newlisp、picolisp也是动态作用域。