首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
KevinOfNeu
掘友等级
资深 Android 开发工程师
|
饿了么
自顶向下, 深入浅出
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
182
文章 176
沸点 6
赞
182
返回
|
搜索文章
最新
热门
手拉手教你实现一门编程语言 Enkel, 系列 1
正如我之前博客中提到的,我正在参加一个 “让自己知道” 的比赛。这个比赛的目的是做一个项目,并且用博客记录项目的开发过程。于是我想到了开发一个自己的基于 JVM 的语言和编译器(我没有理由不这么做)。 这个语言的名字我称之为 Enkel, 在瑞士语中表示简单的意思。
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 12
本文系 Creating JVM language 翻译的第 12 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 在 Java 中(多数语言中也是如此)方法调用的参数匹配是通过索引值,如果方法调用的参数比较少并且参数的类型…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 11
本文系 Creating JVM language 翻译的第 11 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github Java 中没有默认参数是我感觉最不爽的一点。有些人建议我使用 Builder 模式,但是我觉得这样会产生大…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 10
本文系 Creating JVM language 翻译的第 10 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 实现条件语句需要对语法规则作如下两处改动: 添加新规则 ifStatement 添加 conditional…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 9
本文系 Creating JVM language 翻译的第 9 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 我们新建一个规则 “returnStatement”。 那为什么不叫 “returnExpression” 呢…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 8
本文系 Creating JVM language 翻译的第 8 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 基本的算数操作包括: + - * / 本节需要改动的语法规则仅是 “expression”。 表达式通俗来讲就…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 7
本文系 Creating JVM language 翻译的第 7 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 到目前为止,我们可以在 Enkel 中声明类和变量,但是他们都处于同一个全局作用域中。下一步,我们需要支持方法…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 6
本文系 Creating JVM language 翻译的第 6 篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 之前的章节中,我都使用了 listener 来实现 Enkel 的解析器。Antlr 提供了另一种方式– Vi…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 5
本文系 Creating JVM language 翻译的第五篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 Github 上一节中,我们定义了 Enkel 语言的特性。本节中我们来实现 “类”。 原来的解析规则: 变更后的规则: 一个文…
手把手教你实现一门运行在 JVM 上的语言 Enkel, 系列 4
本文系 Creating JVM language 翻译的第四篇。 原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。 上一节中,我们已经实现了 Enkel 语言的原型实现。本章我们需要定义好 Enkel 的语言特性。 众所周知,Java 中有很多…
下一页
个人成就
文章被点赞
116
文章被阅读
22,511
掘力值
412
关注了
17
关注者
18
收藏集
1
关注标签
24
加入于
2016-09-21