码迷,mamicode.com
首页 > 编程语言 > 详细

【进行中,随时弃坑】简易JVM的C++实现

时间:2020-01-21 19:44:37      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:工程文件   article   detail   链接   发布   java   自己   分割   ssl   

源码地址:https://pan.baidu.com/s/1Jj1H5uL3RLDzZARxFD0Bfw

提取码:68x7

2019.07.04更新

 

一、想法:

暑假闲着也是闲着,不如做一些有趣的事情,所以我决定做一个简易的java虚拟机。其实真的是心血来潮,因为几天前我在找关于java虚拟机学习资料的时候无意间发现了一本书——《自己动手写java虚拟机》。哇,手写jvm,这也太酷了吧(划重点)!于是我决定开坑也写一个jvm。当然要求不高,能打出Hello World,进行简单的累加运算,我就很开心了。当然啦我图样图森破,姿势水平不够,随时可能弃坑。

这篇博文就当做我的开发日志总目录吧。截止发布这篇文章前,还在进行.class文件字节码的解析工作。这还是肝了4天的成果,看来路漫漫啊。不管了,反正又不是什么课设作业。每天学习之余抽点时间码一下,等到下个暑假到来之前,应该能开发完的,吧。

 

二、参考资料:

1、《自己动手写java虚拟机》

2、《深入理解java虚拟机》

3、其他一些博主的博客

 

三、开发说明

1、开发语言——C++

《自己动手写java虚拟机》的作者用的是Go语言开发,讲了一些理由。我觉得他说得很有道理,然后选择了C++。主要是因为强迫症在作怪,觉得别人的jvm用C/C++写(当然C/C++效率高也是一个原因),我也要用。当然Go也是要掌握一点的,不然根本看不懂书,写不下去。

选择了C++,有一些Go语言提供的包是没有的,要自己想办法解决,无疑增加了不少难度

 

2、开发编译器——VC++6.0

由于电脑太渣,VS哪个版本都带不动,所以采用了VC++6.0来开发。由于不知道怎么分子文件夹,cpp文件和h文件都只能胡乱丢在工程文件夹下,每次去找dsp文件打开工程时就很蛋疼。这也表明了不能像《自己动手写java虚拟机》里面一样建一堆go文件。吐槽一下,在辣么多go文件里面看代码让我很崩溃。我觉得有些go文件应该合并在一起才对,而且我在后面开发中也确实这么做了。

 

3、开发方法——看书,看博客,参照Go语言版本的虚拟机

《自己动手写java虚拟机》的作者提供了go语言版本的虚拟机,这给我提供了一个参考:通过在一些代码里增加输出语句,可以直观了解工作过程。当然长者的人生经验也是很重要的,要多看书和博客,提高姿势水平。

 

---------------------------------------------------------分割线----------------------------------------------------------

开发日志:

 

一、classLoader.cpp开发(2019.06.27):

https://blog.csdn.net/qq_40636117/article/details/94394949

说明:这个文件用于加载搜索类文件(.class)并读取其中的字节码内容

 

二、classDecode.cpp开发(2019.06.30):

说明:根据.class格式,解析其中的字节码内容

1、https://blog.csdn.net/qq_40636117/article/details/94415960(解析基本信息及常量池)

2、https://blog.csdn.net/qq_40636117/article/details/94654292(解析属性池)

3、https://blog.csdn.net/qq_40636117/article/details/95618443(解析方法,字段表属性)
————————————————
版权声明:本文为CSDN博主「扬·索顿费斯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40636117/article/details/94383044

【进行中,随时弃坑】简易JVM的C++实现

标签:工程文件   article   detail   链接   发布   java   自己   分割   ssl   

原文地址:https://www.cnblogs.com/it-deepinmind/p/12222650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!