您的位置:首页 > Web前端 > JavaScript

一篇入门级的介绍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的代码里面可以找到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: