如何实现一款中文代码解释器

本文介绍了作者在业余时间实现的中文代码解释器项目,基于编译原理,将中文代码转化为JS执行。项目名为ccc,功能包括词法分析、语法分析生成抽象语法树,并提供了赋值、表达式、逻辑判断、函数、循环等语法支持。作者通过实践深化了对编译原理的理解,并计划在未来扩展更多功能。
摘要由CSDN通过智能技术生成

前言

上一篇分享过一个简单的轻量级编译器翻译。为了加强自己对编译原理的理解,最近利用业余时间实现了一个中文的代码解释器。本篇介绍一下该编译器的主要内容和实现步骤。 在线演示

因为内容是挂在github上,打开后可能要加载一段时间。如打开较慢,请耐心等待一下.

 

项目内容

  1. 项目地址 https://github.com/gamedilong/ccc, 第一版为了简单且方便有需要的同学学习,无依赖且没有使用任何脚手架。代码也未压缩。可以直接在浏览器调试。
  2. 该项目命名为ccc解释器,主要取中文和编译器的简写。
  3. 主要功能,将中文代码通过词法分析,语法分析两个步骤编译成抽象语法树,然后将抽象语法树 编译成js代码执行。

实现步骤

  1. 实现中文代码解释器 生成ast语法树 (代码基于acorn.js第一个git log调整修改而来);
  2. 实现代码生成器 将ast语法树树编译成代码;
  3. 实现代码编辑器 通过monaco自定义中文高亮规则实现;
  4. 实现抽象语法树,控制台 展示当前抽象语法,及提供打印输出
  5. 整合如上前面的内容

实现功能

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值