首页 新闻 会员 周边

C# 为什么要弄成中间代码?

1
悬赏园豆:5 [已解决问题] 解决于 2011-11-22 14:21

请问:

1:NET上的那些语言和Java他们,为什么一定要弄一个运行时环境?

2:将代码译成中间代码再运行的目的是什么?如果说是跨平台,那么C语言没有像他们这样做不也是到处都用到C语言了吗?

3:像MP3,遥控器,电梯控制器等,他们的系统是用什么语言来写的?

4:有没有什么语言可以在任何硬件上运行?

5:C语言和C++他们需要一个类似虚拟机或运行时的环境才能运行吗?要想运行C或C++,必须具备什么样的环境,哪些硬件,哪些软件?谢谢 !

我是菜鸟,请高手们认真回答以上问题,谢谢 了!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2011-11-20 19:44
< >
分享
最佳答案
0

你好

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++,必须具备什么样的环境,哪些硬件,哪些软件?谢谢 !

看具体的编译器环境而定

收获园豆:5
dotNetDR_ | 老鸟四级 |园豆:2078 | 2011-11-22 12:08
其他回答(4)
0

第三个:主要用C语言,有些用RTOS,有些用ARM,估计也有用汇编的

第四个:汇编,二进制代码

artwl | 园豆:16736 (专家六级) | 2011-11-20 21:28
0
喬喬AI | 园豆:996 (小虾三级) | 2011-11-21 09:22
0

2:C语言最接近机器语言,所以到处都能运行.

    (本人秉着重在参与的精神回帖,)

coder_wang | 园豆:193 (初学一级) | 2011-11-21 09:23
0

把答案(原文: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.是的,也需要一个运行时,这个运行时就是操作系统。从另外一个层面讲,不管什么语言,都有一个中间语言,那就是汇编。

乱世文章 | 园豆:147 (初学一级) | 2011-11-21 09:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册