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