一篇入门级的介绍javascript解释器实现的文章
2012-07-09 00:51
417 查看
博客文章地址:http://dmitrysoshnikov.com/courses/essentials-of-interpretation-intro/
作者设计了7个课程,通过用javascript实现一个简单的语言的解释器,来一步步介绍javascript解释器所做的工作,使用的一些算法和数据结构,在此过程中展示了javascript一些语言特性(如闭包)的实现原理。
课程列表如下:
Lesson 1. The simplest arithmetic expressions
(AE) evaluator
最简单的算术表达式解析器
Lesson 2. Parsing. Lexer of AE in math
infix notation
介绍了词法扫描器,即扫描输入的源代码生成token的过程
Lesson 3. Parsing. Parser of AE in
math infix notation
在词法分析生成了token的基础上,实现了基于LL top down递归的二叉语法树构建的语法分析
Lesson 4. Working with environments.
Variables and built-in functions
模拟了javascript中的environment(即俗称的作用域/context对象)和内置(built-in)函数
Lesson 5. Simple user-defined functions
增加了用户自定义函数的解析实现
Lesson 6. Inner functions, lambdas
and closures
引入了lambda表达式的解析实现,在此基础上实现了简单的closure(闭包)特性
Lesson 7. Derived expressions (“Syntactic
sugar”)
增加了if语句和类似switch语句的condition语句的实现
每个课程都通过javascript代码加注释来讲述,简洁明了,容易看懂。
个人感觉lesson 4、5、6比较精华,对理解javascript的语言特性有一定的帮助,每个lesson后面还留有练习,有兴趣可以做一下,答案基本上在下一个lesson的代码里面可以找到。
作者设计了7个课程,通过用javascript实现一个简单的语言的解释器,来一步步介绍javascript解释器所做的工作,使用的一些算法和数据结构,在此过程中展示了javascript一些语言特性(如闭包)的实现原理。
课程列表如下:
Lesson 1. The simplest arithmetic expressions
(AE) evaluator
最简单的算术表达式解析器
Lesson 2. Parsing. Lexer of AE in math
infix notation
介绍了词法扫描器,即扫描输入的源代码生成token的过程
Lesson 3. Parsing. Parser of AE in
math infix notation
在词法分析生成了token的基础上,实现了基于LL top down递归的二叉语法树构建的语法分析
Lesson 4. Working with environments.
Variables and built-in functions
模拟了javascript中的environment(即俗称的作用域/context对象)和内置(built-in)函数
Lesson 5. Simple user-defined functions
增加了用户自定义函数的解析实现
Lesson 6. Inner functions, lambdas
and closures
引入了lambda表达式的解析实现,在此基础上实现了简单的closure(闭包)特性
Lesson 7. Derived expressions (“Syntactic
sugar”)
增加了if语句和类似switch语句的condition语句的实现
每个课程都通过javascript代码加注释来讲述,简洁明了,容易看懂。
个人感觉lesson 4、5、6比较精华,对理解javascript的语言特性有一定的帮助,每个lesson后面还留有练习,有兴趣可以做一下,答案基本上在下一个lesson的代码里面可以找到。
相关文章推荐
- 实现连续地图的一篇介绍文章
- 一篇介绍javascript非常好的文章
- 关于PJSIP介绍的的一篇很好的文章
- 转一篇比较详细介绍FatFs文件系统移植的文章
- 一篇让你javascript提升的文章
- 今天看到一篇很好的文章,介绍了html5常用几种api
- 一篇经典的 介绍netbeans中swing 应用程序框架的文章
- javascript-表格排序(降序/反序)实现介绍(附图)
- 转一篇介绍开发嵌入式经验的文章,写得不错,比较中肯,适合一看。
- 介绍有关“BEA Tuxedo”的一篇文章
- 图像处理中的阴影消除方法-一篇2007年PR上的文章介绍
- 上一篇文章、下一篇文章实现
- 基于JavaScript的公式解释器 - 3 【操作数类型的实现】
- ElasticSearch源码解析(一):转一篇介绍中文分词的文章
- 一篇文章详细介绍CSS的position定位
- JavaScript实现的内存数据库LokiJS介绍和入门实例
- JavaScript实现的内存数据库LokiJS介绍和入门实例
- javascript实现原生ajax的几种方法介绍
- 一致性哈希算法的一种PHP实现代码(上一篇文章)
- 一篇不错的hadoop介绍文章