美文网首页
手拉手教你实现一门编程语言 Enkel, 系列 4

手拉手教你实现一门编程语言 Enkel, 系列 4

作者: KevinOfNeu | 来源:发表于2018-09-08 01:30 被阅读0次

    本文系 Creating JVM language 翻译的第四篇。
    原文中的代码和原文有不一致的地方均在新的代码仓库中更正过,建议参考新的代码仓库。

    上一节中,我们已经实现了 Enkel 语言的原型实现。本章我们需要定义好 Enkel 的语言特性。

    众所周知,Java 中有很多冗余的部分。Java 尽可能的避免让你犯错,因此我们有时候需要写大量的重复性代码。

    我们的目标是让 Enkel 尽可能的简单。简单带来的缺点显而易见,但是对于实现语言原型,是个不错的选择。

    下面我们定义了 Enkel 语言的和新特性。

    | 特点 | 示例 |
    | --- | --- | --- |
    | 一个文件代表一个类,无需使用 class 关键字来声明类名,只需要在 import后提供类型 | Car {}|
    |继承|Car : Vehicle {}|
    |可选的自动生成 getters,setters,builder,equals,hashcode|Car(getters,setters,hashequals,builder) : Vehicle {}|
    |类型推断| var x = 5|
    |默认参数|fun createPoint(Int x=0, Int y = 0)|
    |可选参数命名,这在函数调用指明参数的时候非常有用| createPoint(5,0) createPoint(x->5,y->0) createPoint(y->0,x->5) |
    |函数也是对象(函数是一等公民)|const f = (Int x=0, Int y=0) => x*y|
    |没有静态方法|static void x()|
    | 默认用 == 替代 equals|object1 == object2|

    相关文章

      网友评论

          本文标题:手拉手教你实现一门编程语言 Enkel, 系列 4

          本文链接:https://www.haomeiwen.com/subject/qcfkgftx.html