免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4515 | 回复: 6
打印 上一主题 下一主题

虚拟机扫盲——关于栈虚拟机和寄存器虚拟机 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-21 17:15 |只看该作者 |倒序浏览
虚拟机是啥?你别跟我扯VMWare,我对系统编程半窍不通。
早期著名的虚拟机,就是那个恶心的JVM,为什么是栈虚拟机呢?实现简单,知道不?虚拟机自身的效率很重要,实现复杂了怎么跑啊?(虽然现在JVM恶心不是一般)为什么不是寄存器虚拟机呢?反正是虚拟机,寄存器也是在内存里虚拟的,有区别么?
寄存器虚拟机有一毛钱优势么?呵呵,映射到硬件上?那是扯淡,根本不是通用方案。
有可能的区别在哪里?三操作码的代码密度不如二操作码,单操作码的代码密度好像是最高的,也就是说栈虚拟机的bitcode体积是最小的,这样减少了运行时加载的代价。寄存器虚拟机有一毛钱优势么?
加载方式不同,这个和虚拟机有一毛钱关系么?一次加载一堆没用的代码,啥虚拟机他也高效不了。
区别在哪里?有些优化算法不能作用于单操作码?我不确定,二操作码的确会损失一些信息,但是我确定的是IR是三操作码的,然后做一个到单操作码的转换,但是这个是“编译时”确定的,具体怎么别问我,我不可能把我们的设计思路告诉你。没啥特殊的算法,原理都是一样的,设计和实现是你自己的事情。

论坛徽章:
0
2 [报告]
发表于 2009-09-21 17:23 |只看该作者
好多一毛钱啊,五毛吗。。。。。。。

论坛徽章:
0
3 [报告]
发表于 2009-09-21 17:24 |只看该作者
原帖由 prolj 于 2009-9-21 17:15 发表
虚拟机是啥?你别跟我扯VMWare,我对系统编程半窍不通。
早期著名的虚拟机,就是那个恶心的JVM,为什么是栈虚拟机呢?实现简单,知道不?虚拟机自身的效率很重要,实现复杂了怎么跑啊?(虽然现在JVM恶心不是一 ...


不懂,学习了.

论坛徽章:
0
4 [报告]
发表于 2009-09-21 17:59 |只看该作者
原帖由 prolj 于 2009-9-21 17:15 发表
虚拟机是啥?你别跟我扯VMWare,我对系统编程半窍不通。
早期著名的虚拟机,就是那个恶心的JVM,为什么是栈虚拟机呢?实现简单,知道不?虚拟机自身的效率很重要,实现复杂了怎么跑啊?(虽然现在JVM恶心不是一 ...


完全不懂这种一毛钱的虚拟机。

论坛徽章:
0
5 [报告]
发表于 2009-09-22 05:02 |只看该作者
很荣幸的在这个版块看到楼主这样的程序语言设计与实现专家所做的科普。

论坛徽章:
0
6 [报告]
发表于 2009-09-22 10:10 |只看该作者
C语言寄存器变量(register)是存在CPU的寄存器当中的,这样比存在内存中速度快很多。
寄存器虚拟机也有堆栈,只是大量使用C语言的寄存器变量。

论坛徽章:
0
7 [报告]
发表于 2009-09-25 23:23 |只看该作者
register关键字还在被哪个编译器支持?早就废除了。不要紧张,踏踏实实学习自己感兴趣的东西,真正有所突破比什么都强,bbs上就是扯扯淡。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP