
程序的构造
文章平均质量分 96
szengtal
这个作者很懒,什么都没留下…
展开
-
ECMA-262-5 词法环境:ECMA实现(四)--- 标识符解析及其他
标识符解析标识符解析是指在执行阶段决定一个出现在上下文中,使用词法环境的标识符的绑定关系的过程。 换句话说,这一个作用域链查找过程。在上面说过,这类似于原型链的查找,而在这里是通过词法环境的outter属性。翻译 2017-12-05 23:24:53 · 772 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(一)--- 简介
本文翻译自Dmitry Soshnikov的关于ECMAScript 系列的文章。其中涉及理论较多,如果想要更好的明白里面所讲的,要对ECMAScript 中相关概念本身有一点的基础,对于之前从未了解过得,推荐先到Dmitry Soshnikov文章中看完ES3系列的介绍,里面也有中文版本。此外,由于理论较多,难免会存在语言的上的生涩或者纰漏以及不规范之处,希望指正。这个系列分成了八个小篇章,可能翻译 2017-12-05 23:10:00 · 2909 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(三)--- 执行上下文
执行上下文的结构 这部分主要讨论在ES5中执行上文(同执行环境)的结构,它与ES3中的有一些不同,先看看它的组成组件:ExecutionContextES5 = { ThisBinding: <this value>, VariableEnvironment: { ... }, LexicalEnvironment: { ... },} 在执行上下文中...翻译 2017-12-05 23:22:21 · 1181 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(二)--- 环境记录项
环境记录类型 ES5中有两种类型的环境记录项,分别是声明式环境记录项和对象式环境记录项。声明式环境记录项 声明式环境记录项是用来处理变量声明,函数声明以及形参与值的绑定,这些都出现在函数作用域中(这与ES3中的激活记录一致)或者catch从句中。 例如:// all: "a", "b" and "c"// bindings are bindings of// a declarative翻译 2017-12-05 23:15:45 · 1448 阅读 · 0 评论 -
几个简单的对数增长阶算法
数学算法对数增长阶实现最近在看scip,不得不说,这本书的确是经典之作,每天抽出时间看一会上面所讲的东西,对我这样编程算法基础薄弱的人,也是受益匪浅。所以想把上面的一些好的算法用自己熟悉的javascript重新写一遍,加深记忆。最大公约数两个整数a和b的最大公约数(GCD)定义为能除尽这两个数的那个最大的整数。在SCIP中提到了一种基于欧几里得算法的对数增加阶的实现。该算法的思想是:如果r是a除以原创 2017-03-10 06:25:50 · 3200 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(四)--- 环境
这一章我们将介绍词法作用域的技术实现。同时,在进一步介绍涉及到的一些高度抽象的实体和讲解词法作用域的时候,本文将开始使用环境的概念而不是作用域。”环境”是在ES5时期被引入规范中,与它一起的还包括全局环境和函数的局部环境等。翻译 2017-12-05 18:07:56 · 1289 阅读 · 2 评论 -
ECMA-262-5 词法环境:通用理论(三)--- 标识符绑定
标识符绑定命名绑定 在高度抽象的语言,我们不再需要通过操作底层的地址来访问内存中的某个数据,而是通过更方便的,以标识符(变量名)的形式来获取想要的数据。 命名绑定就是将一个标识符和一个对象绑定在一起。 一个标识符不仅可以被绑定,也可以被取消绑定。当标识符绑定到一个对象上,那么这个标识符引用了这个对象,通过它就可以去访问以及修改那个对象。 有两个与绑定相关的重要概念,分别是重绑定以及改变翻译 2017-12-05 17:19:37 · 864 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(二)--- 动态作用域
与静态作用域不同,动态作用域下,变量与值的绑定不能在词法分析阶段确定。一般来说,动态作用域中变量与值并不是通过词法环境中绑定的,而是通过一个全局的动态栈来管理的。每当遇到一个变量声明,就会把这个变量名放入这个栈中,当这个变量的生命周期结束时,又会把这个变量从栈中移除。 这意味着,在一个简单的函数中就可以存在无限多的关于同一个变量的解释,这都取决于函数的调用环境。翻译 2017-12-05 17:11:25 · 661 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(一)--- 作用域
ECMA-262-5 词法环境:通用理论译者按:本文翻译自Dmitry Soshnikov的关于ECMAScript 系列的文章。其中涉及理论较多,如果想要更好的明白里面所讲的,要对ECMAScript 中相关概念本身有一点的基础,对于之前从未了解过得,推荐先到Dmitry Soshnikov文章中看完ES3系列的介绍,里面也有中文版本。此外,由于理论较多,难免会存在语言的上的生涩或者纰漏,希望指正翻译 2017-12-05 17:03:26 · 1699 阅读 · 1 评论 -
V8中的多态内联缓存PIC
Google的V8作为最优秀的浏览器引擎,在它的内部实现上采用了很多的奇淫巧计,而如果你要想去深入了解下V8的构造,的确需要去了解很多它所包含的思想。其中之一就是大名鼎鼎的polymorphic inline cache(PIC),即多态内联缓存。多态内联缓存的用途之一就是V8通过隐藏类技术加PIC来加速Javascript对象属性的访问。目前很多关于V8的文章中都会提到隐藏类或者属性的快速...原创 2017-06-04 20:25:00 · 3111 阅读 · 0 评论