高级语言经过编译器之后的处理
各位大虾,既然计算机不能直接识别高级语言,所以通过编译器编译之后生成中间代码,最终生成目标代码即机器语言,直接交给计算机CPU处理,那么为什么还有C#和Java、C++等...
各位大虾,既然计算机不能直接识别高级语言,所以通过编译器编译之后生成中间代码,最终生成目标代码即机器语言,直接交给计算机CPU处理,那么为什么还有C#和Java、C++等高级语言的跨平台之说呢?他们的运行跟操作系统还有那么大的关系吗?小弟不解,忘各位大虾帮忙解答,不胜感激~~~~~~~~
Java的库是如何做到跨平台? 展开
Java的库是如何做到跨平台? 展开
1个回答
展开全部
假设你的程序有两种源代码,一种是C语言写的,一种是java写的,现在要发布到这几个平台上:
1、Windows 7/xp/vista...
2、Linux RedHat/Fedora/Unbutu...
3、Symbian S60/S50(手机)
那么源程序如果是C语言的,需要找下面的工具:
1、VC60/VS2008,负责编译生成VISTA/XP/WIN7用的.exe文件
2、G++,负责编译生成Linux用的可执行程序
3、Symbian用的C++编译器,不说也罢
如果源程序是JAVA语言的,那么需要做的仅仅是用javac编译、jar打包,然后:
1、确保目标WIN7/XP/VISTA安装了java虚拟机
2、确保目标LINUX安装了java虚拟机
3、确保目标手机Symbian系统已安装了支持同版本的java虚拟机
看明白没有?C语言编译器是直接把源程序一步翻译为目标计算机(16位,32位,64位)的指定芯片(X86或ALPHA PPC,RISC)、指定操作系统(WINDOWS,DOS,LINUX,SYMBIAN)用的特定可执行程序目标码,
而JAVA编译器是把程序翻译为中间码,由虚拟机将中间码解释为最终的指定芯片、指定操作系统的可执行程序目标码
严格来说,C和C++、JAVA都是跨平台的,但C#肯定不是,至少目前还没有人在LINUX上做C#的实现。
不同的是,C和C++是通过不同平台上的不同编译器实现跨平台
JAVA是通过不同平台的不同虚拟机实现跨平台
这样说你看懂了没有?
1、Windows 7/xp/vista...
2、Linux RedHat/Fedora/Unbutu...
3、Symbian S60/S50(手机)
那么源程序如果是C语言的,需要找下面的工具:
1、VC60/VS2008,负责编译生成VISTA/XP/WIN7用的.exe文件
2、G++,负责编译生成Linux用的可执行程序
3、Symbian用的C++编译器,不说也罢
如果源程序是JAVA语言的,那么需要做的仅仅是用javac编译、jar打包,然后:
1、确保目标WIN7/XP/VISTA安装了java虚拟机
2、确保目标LINUX安装了java虚拟机
3、确保目标手机Symbian系统已安装了支持同版本的java虚拟机
看明白没有?C语言编译器是直接把源程序一步翻译为目标计算机(16位,32位,64位)的指定芯片(X86或ALPHA PPC,RISC)、指定操作系统(WINDOWS,DOS,LINUX,SYMBIAN)用的特定可执行程序目标码,
而JAVA编译器是把程序翻译为中间码,由虚拟机将中间码解释为最终的指定芯片、指定操作系统的可执行程序目标码
严格来说,C和C++、JAVA都是跨平台的,但C#肯定不是,至少目前还没有人在LINUX上做C#的实现。
不同的是,C和C++是通过不同平台上的不同编译器实现跨平台
JAVA是通过不同平台的不同虚拟机实现跨平台
这样说你看懂了没有?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询