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

前端之家收集整理的这篇文章主要介绍了Java虚拟机语言是否不可知?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
可以肯定地说,Java虚拟机最初是为 Java编程语言而设计的,但是现在,其他开发人员已经能够编写编译到Java字节码的编程语言,如Scala,Jython和J Ruby.

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

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

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

解决方法

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

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

原文链接:https://www.f2er.com/java/124801.html

猜你在找的Java相关文章