一篇入门级的介绍javascript解释器实现的文章

博客文章地址: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的代码里面可以找到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值