最近开了个新坑, 目的是实现一个简单的 JVM. 零零散散的提交了 100 个 commits , 最终的目标是 自举.
目前进度大概在 60% 基本的 classfile 解析,字节码执行, 方法调用, 类加载, 多态 已实现.
有感兴趣的道友吗? 同去同去.
最近开了个新坑, 目的是实现一个简单的 JVM. 零零散散的提交了 100 个 commits , 最终的目标是 自举.
目前进度大概在 60% 基本的 classfile 解析,字节码执行, 方法调用, 类加载, 多态 已实现.
有感兴趣的道友吗? 同去同去.
1
leiuu Nov 20, 2019 爱莫能助,赞楼主。
|
2
backfrw Nov 20, 2019
正在看有关 jvm 的书,但是能力不足,楼主加油
|
4
DT37 Nov 20, 2019
虽然能力不足但是我觉得是一件有意义的事儿,我试试
|
5
qiyuey Nov 20, 2019 加油
|
6
BBCCBB Nov 20, 2019
楼主去研究 graal,给它贡献吧. 他也是 java 写的.
|
7
Laumm Nov 20, 2019
用 java 自举 JVM , 编译出来是 java 字节码还是可执行二进制文件啊?
|
8
cjh1095358798 Nov 20, 2019
厉害,而我自己 class 都没搞清楚
|
9
tabris17 Nov 20, 2019 稍等,我把 OpenJDK 的源代码推上来
|
10
Mohanson Nov 20, 2019 加油, 也贴下我的 Game Boy 虚拟机项目: https://github.com/mohanson/gameboy
去年到今年零零散散写了 4 个虚拟机 /仿真器: Webassembly, EVM, i8080 仿真以及 Game Boy 仿真... |
12
redford42 Nov 20, 2019 一脸迷茫的摸摸头
|
15
guxingke OP @cjh1095358798 来吧, 自己写个 classfile 解析就弄清楚了
|
16
Cat73 Nov 20, 2019
我曾经也想过,然后再一想 JVM 可能需要实现的东西,emmm 就放弃了。。。
|
17
hqweay Nov 20, 2019 能力不够,先关注了。
|
19
octobersnow Nov 20, 2019 via iPhone
有兴趣,怎么联系?
|
20
guxingke OP @octobersnow
欢迎 vx: ``` echo "Z3V4aW5na2VfCg==" | base64 -d ``` mail: ``` echo "YWRtaW5AZ3V4aW5na2UuY29tCg==" | base64 -d ``` gitHub issue 什么的也欢迎 gitter 也会响应 |
21
find Nov 20, 2019 via iPhone 我之前用 go 学者写过呢
|
24
jimotudou Nov 20, 2019
-D
|
27
lx91714 Nov 20, 2019 via Android 厉害了
|
28
th00000 Nov 20, 2019 楼主可以参考 GraalVm 是实现了自举的 JVM,
可以将多种语言混编, 并不局限于 JAVA, 同时不依赖 JAVA 运行环境, 编译的最终结果是字节码文件。 |
29
chenggiant Nov 20, 2019 via iPhone 大佬,Java8 里面的 lambda 语法打算怎么支持?
|
30
lidlesseye11 Nov 20, 2019 厉害了
大佬有相关的博客什么的吗?拜读下 |
32
guxingke OP @chenggiant 有点复杂 还没实现, 暂时的思路的是 用 asm 生成类, 然后加载调用.
|
33
guxingke OP @lidlesseye11 没啥东西,就不贴了 🤣
|
34
gabon Nov 20, 2019 via Android
我之前也简单实现过,其实很简单的
|
36
zy5a59 PRO 蹭蹭楼主热度,贴一个之前用 python 写的 https://github.com/5A59/Zvm
|
37
Owenjia Nov 20, 2019 @myqoo
话说之前教小朋友(初中)学 C 语言就是这么搞的,做的 chip8,web 界面、工具链什么的给他弄好,然后填 C 代码浏览器看结果就行。 |
38
guxingke OP 
用来支持 Interface 的第一个提交 https://github.com/guxingke/mini-jvm/commit/7eb742aacc9cf2beebed881ece26c0b389698963 |
39
woodrat Nov 20, 2019
蹭蹭楼主热度,贴一个之前用 python +LLVM 写的 C 编译器 https://github.com/Mithrilwoodrat/naivecompiler
|
40
pursuer Nov 21, 2019 JVM 的第三方实现里 avian 算比较完善了,只是类库不全,而且原作者停止维护了,倒是希望有人会继续接替开发维护工作
|
41
vjnjc Nov 21, 2019
居然有点感兴趣
|