前文 https://www.v2ex.com/t/652219
一个解释器的小玩具,经过我一个多月业余时间的开发,现在终于支持大部分 JS 的核心功能了,除了对象。
现在已经图灵完备,基本上可以算的上一个阉割版 js 了
举个例子:解释执行一个快排函数:)
function quickSort(list,len) {
let a = 0;
let b = len-1;
let c = list[a];
while (a < b){
while (list[b]>c && a < b){
b = b-1;
}
if(list[b] < c){
list[a] = list[b];
list[b] = c;
b = b-1;
c = list[b];
}
while (list[a] < c && a < b){
a = a + 1;
}
if(list[a] > c){
list[b] = list[a];
list[a] = c;
a = a + 1;
c = list[a];
}
}
return list;
}
let arr = [9,3,2,1,5,-2,6];
quickSort(arr,7);
log(arr,666);
https://github.com/zuluoaaa/makeJs
最终跑通的那一刻,感觉整个人都嗨翻了
1
lzuntalented 2020-04-28 17:38:01 +08:00
手动点赞
|
2
MonoLogueChi 2020-04-28 18:00:17 +08:00 via Android
想起了以前有人在微信小程序里搞热更
|
3
opengps 2020-04-28 18:01:55 +08:00
听名字就觉得秀
|
4
i0error 2020-04-28 18:03:25 +08:00
|
5
zdnyp 2020-04-28 18:08:12 +08:00
这...有啥用么,是跟在线执行 js 一类吗?
|
6
xuarongla0000 2020-04-28 18:13:03 +08:00
没懂,这个有什么用
|
7
zuiluo OP @xuarongla0000 有意思+成就感+学习新姿势
|
10
i0error 2020-04-28 18:21:07 +08:00
嗯 我这两天刚好注意了下小程序热更,是想回复二楼的,并非 ky
|
11
alphatoad 2020-04-28 18:22:18 +08:00 via iPhone
我最近也在做类似的东西,哈哈
Parser 和 interpreter 挺难写的 |
12
xiaojie668329 2020-04-28 18:36:21 +08:00 via iPhone
加油,要是通过 test262 的测试就牛逼了。
|
13
mayx 2020-04-28 18:37:36 +08:00 via Android
要不直接搞个 jslinux 上装个 v8 ?
|
14
jtwor 2020-04-28 19:05:15 +08:00
已 star 勾起了对解释器的好奇 看了一下好像还没写处理对象 有没有用不重要 程序跑通的成就感自己才知道 :)
|
16
mxT52CRuqR6o5 2020-04-28 21:56:01 +08:00 via Android
@xuarongla0000 脸书的 prepack 项目
|
17
m0cha 2020-04-28 22:04:29 +08:00 via iPhone
star 勾起,进入我的吃灰收藏,下一个
|
18
yianing 2020-04-28 23:33:15 +08:00
语法分析用的递归下降,我都已经忘了 LL, LR 那些东西了
|
19
yingzir 2020-04-28 23:49:51 +08:00
很不错, 可以把这个解释器写个教程,或者总结,应该会对自己,对其他人都非常有好处
|
21
zhw2590582 2020-04-29 10:07:28 +08:00
所以可以用在小程序热更新吗
|
22
zuiluo OP @zhw2590582 能运行 JS 的环境都能运行这个解释器,至于能不能热更新,就没了解过了。楼上有人有对应的帖子介绍,你可以看看
|
23
damingxing 2020-04-30 14:38:07 +08:00
大佬厉害啊
|
24
charten 2020-05-01 23:17:24 +08:00
php 解释器我觉得市场更大一点(滑稽
|
25
PALELESS 2020-05-02 11:23:38 +08:00
一直想写个解释器练练手,star 了
|
26
rodjl 2020-05-02 12:46:06 +08:00 via iPhone
看过 engine262 的源码,看的头大
|
27
LifStge 2020-05-02 13:44:58 +08:00
禁止套娃
|
28
chizuo 2020-05-02 20:24:13 +08:00
|
29
1847bell 2020-05-14 16:28:48 +08:00
没点开看,就凭这个标题我都觉得你很秀
|