首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
KevinOfNeu
掘友等级
资深 Android 开发工程师
|
饿了么
自顶向下, 深入浅出
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
184
文章 178
沸点 6
赞
184
返回
|
搜索文章
赞
文章( 178 )
沸点( 6 )
[Rust翻译]为什么 Discord 要从 Go 转到 Rust?
Rust正在成为各种领域中的一流语言。在Discord,我们已经看到Rust在客户端和服务器端的成功。例如,我们在客户端将其用于Go Live的视频编码管道,在服务器端将其用于Elixir NIFs。
阿里重磅开源中后台UI解决方案Fusion
2018 年 12 月 16 号,Fusion 在 OSC 深圳源创会年终盛典上正式开源了, 这个在阿里内部跑了三年的产品,终于正式对外了! 可能一些业界的同学已经在某些渠道听说过阿里的 Fusion Design 比如这篇 16 年就传得很火的《阿里最新神器-fusion d…
手拉手教你实现一门编程语言 Enkel, 系列 13
递增或者递减必须在运行时推断,因为范围的值可能是方法调用的返回值。 for while 循环或者容器迭代器都很相似,本节不做描述。 Antlr 根据语法规则会生成 ForStatementContext 对象,我们用它生成对编译器更加友好的类。可以解决迭代器变量未生明的问题。 …
手拉手教你实现一门编程语言 Enkel, 系列 14
目前为止 Enkel 仅支持了整数类型和字符串类型。是时候支持其他的原始类型了。这也是为创建面向对象特性做准备。 字节码生成的时候,我们多写一点 case 语句可以实现,但是很丑陋。因此我用 TypeSpecificOpcodes 枚举存储了所有类型对应的字节码指令:
手拉手教你实现一门编程语言 Enkel, 系列 15
Enkel 的构造器声明和调用的语法和 Java 保持一致。 Java 中构造器的声明是一个没有返回值的函数。Enkel 中也是一样。 方法调用要求名字,返回值,以及参数和持有者的信息。构造器的调用仅仅需要类名和参数。 构造器需要类型吗? 不需要。因为返回值类型都是固定的,就是…
手拉手教你实现一门编程语言 Enkel, 系列 16
面向对象语言中最大的优点是啥?我个人认为是多态, 如何实现多态,使用继承呗,可以在静态语义下使用继承么?肯定不行呀。 在我认为,静态语义违反了面向对象的思想,不应该出现在面向对象中,为了避免使用多态,你可以用单例呀。 因此,为何有 static 情况下,Java 还声称自己是面…
手拉手教你实现一门编程语言 Enkel, 系列 17
所有基于 JVM 的编程语言最终被编译到字节码,然后被虚拟机加载解释执行,这意味着虚拟机并不知道是什么语言生成了字节码。只要类在 classpath 上。 这为 Enkel 调用 Java 库以及其他框架提供了具体可能性。 编译时 在生成字节码之前验证。如果验证失败,会终止编译…
手拉手教你实现一门编程语言 Enkel, 系列 18
语法规则和 Java 非常类似,但是更加简单,没有复杂的修饰符(比如 static, volatile, transient)。 字段用来赋值,但是这么久以来我们一直没有实现赋值语句来给声明的变量赋值,我这么做是因为有以下考量。 我希望变量是不可变的,赋值意味着改变状态,这会导…
手拉手教你实现一门编程语言 Enkel, 系列 19
对于 Java 初学者来说,对象比较或许是最让人头疼的事情了。 这里有个隐式的的类型装箱,Integer.valueOf(15) 会返回缓存的缓存的 Integer 对象,因为引用一样,所以 areEqual 是 true。 上面代码执行完后,Java 菜逼理所当然的想,我可以…
手拉手教你实现一门编程语言 Enkel, 系列 20
在之前的 19 篇博客中,我把实现编程语言的每一步都详细的记录下来了。如果不拿这门语言,练练手,做个东西玩,那就没什么意思了,对不? 我准备实现一个扑克牌的洗牌模拟器。思路是提供一定数量的玩家,指定每个玩家的扑克牌的数量。作为输出,每个玩家都能获得一定数量的随机扑克牌。 没有黑…
下一页
个人成就
文章被点赞
78
文章被阅读
18,778
掘力值
353
关注了
17
关注者
18
收藏集
1
关注标签
24
加入于
2016-09-21