通用机器代码语言?

use*_*360 3 assembly computer-science machine-code computer-architecture

我一直在考虑机器代码如何特定于架构以及Javascript如何在(几乎)每个浏览器中工作.我一直在研究一个必须做一些严肃计算的项目,它是基于Javascript的,需要一分钟才能完成计算.它让我渴望C的速度.但是项目使用Javascript的全部原因是为了简单和便携.

这给了我一个想法,如果有一种类似于Javascript的语言,就像在每个架构上一样可移植并作为可执行文件运行,该怎么办?大多数人会指向Java,但我正在考虑一些开销较少且由操作系统处理的东西.不是字节代码,而是本机机器代码.

做了一些研究和思考,以实现这项任务的不可能性.您如何制作一个像普通C编写的应用程序一样小的可执行文件,该应用程序适用于在每个体系结构上工作的特定体系结构,速度与在C中为该体系结构本地编译的速度相同?

这是我的下一个想法.本机机器代码特定于架构,每个架构都具有某些特殊功能,有时以不同方式处理相同的任务.某些优化也是针对每个体系结构的.如果有通用机器代码怎么办?当操作系统将指令加载到ram中时,它会自动转换指令以适应架构.或许(更疯狂的想法)CPU可以包含接收通用机器代码并自动将通用机器代码调整到其本机代码中的能力?

通用机器代码规范必须足够通用,以涵盖正常的机器代码功能.

当然,如果通用机器代码确实有效,人们可能会想要一个由所有操作系统处理的通用可执行格式.这样,可执行文件不需要在OS上进行更改.这导致需要专门针对机器进行通用的框架.更多的细节将是操作系统特定的功能,输入和输出的能力超出我所知的范围.

Universal Machine Code编译可执行文件:

优点:

  • 与本机编译的可执行文件几乎相同的大小
  • 几乎如果不是本机编译可执行文件的相同性能

缺点:

  • 稍微(希望不存在)加载速度较慢,因为它在ram中加载可执行文件时将通用机器代码转换为本机机器代码

这可行吗?

编辑:

我用过Java,在其中制作游戏.它不像我想的那样普遍,也不像友好.*它是由Oracle维护的自己的编程语言.专有和有点太大.需要在某些机器上安装.

更具体地说,我不是在谈论使用新的编程语言.我正在谈论拥有一种新的机器代码语言,该语言拥有足够的额外信息,在执行时,会将一个非常薄的过程转换为架构的机器代码.这样C编译器就可以将它们的可执行文件编译成通用机器代码,并且可执行文件可以在任何地方运行.

Kei*_*las 6

已经有类似的东西,它被称为p代码

http://en.wikipedia.org/wiki/P-code_machine

如今,VM基本上扮演着这个角色