执行和编译不在一台机子叫做什么
Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
⑵ 同一个C语言程序,若在两台不同指令系统的机器上运行,编译后的程序是否一样能否用同一个编译器编译
如果生成的程序不是在本机上运行的话,这种编译器叫做 cross compiler
不是 cross compiler 的话,生成的程序就只能在本机以及与本机具有相同指令集的机器上运行了
⑶ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
⑷ 编译执行和解释执行的区别
一、主体不同
1、编译执行:由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。
2、解释执行:将源语言直接作为源程序输入,解释执行解释一句后就提交计算机执行一句,并不形成目标程序。
二、优势不同
1、编译执行:相比解释执行编译执行效率高,占用资源小,适合复杂程序
2、解释执行:开发速度快,出现严重BUG的几率小。
三、缺点不同
1、编译执行:兼容性差,例如在windows平台上写的编译程序一般不可以在unix平台上运行。
2、解释执行:解析需要时间,不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费,即执行效率低。
⑸ 编译执行和解释执行
建议你去找本有关编译原理的书籍看下
它们的最主要的区别就是是否有目标代码的生成e.g.C语言就是编译执行的需要将源代码翻译成类似于汇编或机器语言的目标代码后才能运行。而解释程序则没有目标代码的生成比如VB就是典型的解释执行的。
⑹ 在计算机中,什么叫做运行,什么叫做执行,什么叫做编译
知足
⑺ 在计算机内部,不需要编译计算机就能够直接执行的语言是什么
机器语言
⑻ 每一台计算机都有属于自己的编译器与程序吗
不同架构的CPU,所使用的汇编语言不同,编译器也就自然不同。
相同架构的CPU,汇编语法和支持的基础指令集都基本相通,在高级指令集的支持上可能不同。
同一型号的CPU当然汇编语法和支持的指令集都完全一样。
⑼ 在计算机内部,不需要编译计算机就能直接执行的语言是什么
你这个问题提得不是太清楚,如果是指那些无需编译就可以执行的语言,这些语言叫做“解释型语言”,它们通过环境中安装的解释器、运行时等执行。
如果问无需任何解释器、运行时等,但也不需要编译就可以执行的语言,那只有一种就是机器码了。实际上编译后生成的东西就是机器码。估计你问的不是这个呵呵。