你好
1:NET上的那些语言和Java他们,为什么一定要弄一个运行时环境?
因为在x86和x64上的环境是不同的.而你用C++去编译的话还得分x86和x64版之分.所以有CLR的话.你把编译条件选为Any CPU的话.你的.exe放到x86和x64下的话没什么意外都可以运行.不需要用户去区分自己的电脑是x86还是x64.
2:将代码译成中间代码再运行的目的是什么?如果说是跨平台,那么C语言没有像他们这样做不也是到处都用到C语言了吗?
这个问题你先了解好C语言编译出来的东西需不需要依赖什么特定环境后,这个[到处都用到C语言了吗]自然就有答案了.
3:像MP3,遥控器,电梯控制器等,他们的系统是用什么语言来写的?
看具体设备提供的开发接口是什么?大多都是低级语言(C/C++, 汇编这类)
4:有没有什么语言可以在任何硬件上运行?
这个不太可能.参照 乱世文章 的答案吧
5:C语言和C++他们需要一个类似虚拟机或运行时的环境才能运行吗?要想运行C或C++,必须具备什么样的环境,哪些硬件,哪些软件?谢谢 !
看具体的编译器环境而定
第三个:主要用C语言,有些用RTOS,有些用ARM,估计也有用汇编的
第四个:汇编,二进制代码
2:C语言最接近机器语言,所以到处都能运行.
(本人秉着重在参与的精神回帖,)
把答案(原文:http://zhidao.baidu.com/question/345291484.html)也帖到这里吧,这样别人搜到后方便一点:
1.都是为了跨平台。但是现装.net更像是为了跨语言,C#, vb,c++, f#等。
2. c语言也不能说真正的跨平台,只是这种语言比较低级,各个平台的实现相对一致。你看c语言的东西下载时还是会分平台的,比如for linux, for windows, for Mac等。再说了,不同平台的编译器对c的解释都有差异,所以只能说跨平台容易一些。
3. 这个跟环境有关,相对来说C语言多一些,至于机械控制的比如电梯,用到了PLC,有自己专门的语言。
4.没有,跟运行环境有关,不同的操作系统对语言的支持是不一样的。如果你确实像跨平台,底层的用C or C++,上层的用Java,当然这不是绝对的。
5.是的,也需要一个运行时,这个运行时就是操作系统。从另外一个层面讲,不管什么语言,都有一个中间语言,那就是汇编。