加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java虚拟机语言是否不可知?

发布时间:2020-12-14 16:36:41 所属栏目:Java 来源:网络整理
导读:可以肯定地说,Java虚拟机最初是为 Java编程语言而设计的,但是现在,其他开发人员已经能够编写编译到Java字节码的编程语言,如Scala,Jython和J Ruby. Java字节码中仍然存在“面向对象”引用,如接口,方法,字段.例如invokespecial是对“对象”方法的调用. 它不是
可以肯定地说,Java虚拟机最初是为 Java编程语言而设计的,但是现在,其他开发人员已经能够编写编译到Java字节码的编程语言,如Scala,Jython和J Ruby.

Java字节码中仍然存在“面向对象”引用,如接口,方法,字段.例如invokespecial是对“对象”方法的调用.

它不是纯粹的语言不可知指令集的纯堆栈虚拟机.例如,纯FORTH实现只会有堆栈操作.

问题是,JVM语言是否不可知?

解决方法

从某种意义上说,JVM和Java字节码是完整的,任何其他图灵完整的语言都可以被转换和编译为java字节码并在JVM上运行.这可能是非常低效的,但不是不可能的.对于“不可知论”的最严格的定义,没有这样的事情.在硬件级别,所有处理器都有一组定义的二进制指令,因此在任何时候,任何语言都必须被转换为与应该执行的硬件兼容的程序集.

编辑:JVM没有在真空中开发,它是与JAVA编程语言一起开发的,因此Java语言严重影响了Java字节码和JVM的设计.所以在这个意义上,你可以说JVM是用Java设计的.但是,在架构中,JVM有意识地从Java语言去除耦合(通过中间字节码格式),因此设计中有可能考虑可能的替代语言的元素.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读