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

请问:

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

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

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

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

5:C语言和C++他们需要一个类似虚拟机或运行时的环境才能运行吗?

我是菜鸟,请高手们认真回答以上问题,谢谢 了!
第5个问题我其实我想问的是要运行C或C++,必须具备哪些条件?什么样的硬件?什么样的软件?谢谢 !

  1、因为c语言也不能说真正的跨平台,只是这种语言比较低级,各个平台的实现相对一致。
  c语言的东西下载时还是会分平台的,比如for linux, for windows, for Mac等,不同平台的编译器对c的解释都有差异,所以只能说跨平台容易一些。
  2、按微软的规划,以后的应用程序要从网上付费下载来使用,这样就带来下载软件的安全与否的问题,而C#经编译后形成的是中间代码,不可以在本地机器上直接执行,必须经过CLR转换成本地代码后才能执行。
  这样,中间码可以顺利通过防火墙,而且安全性又有CLR来保证。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-20
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.是的,也需要一个运行时,这个运行时就是操作系统。

从另外一个层面讲,不管什么语言,都有一个中间语言,那就是汇编。本回答被提问者采纳
第2个回答  2011-11-20
1.因为要运行时托管代码
2.这样做很多都是可控的,有些不容易实现的功能就很容易实现了,因为很多复杂的东西都有底层帮你完成。
3.应该是C语言。也可能是特定系统的汇编。
4.基本不存在这样的万能语言,受基本库限制的C语言和定制过的java可以做到这一点。
5.不需要,他们直接运行在操作系统上,比如windows,linux,mac os等等。
第3个回答  2011-11-20
1 为了跨平台

2 使用微软提供的.Net类库,在程序运行时再将IL编译为二进制代码,因为IL(中间语言)代码有很多好的特性:IL它知道什么是范型,什么是类和方法(以及它们的“名称”),什么是继承,什么是字符串,布尔值,什么是User对象

3 什么语言都可以写

4 Java(C#在跨平台上没有java做得好,至少现在没有)

5不用,C直接编译为二进制代码,但如果需要第三方dll支持的话还是需要安装vc++运行时的追问

c语言没有用中间代码,C语言做到跨平台了吗?

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

C语言和C++他们需要一个类似虚拟机或运行时的环境才能运行吗?我指的是需要有什么样的硬件环境才能运行C语言?

可能有点麻烦..谢谢 了.

追答

java不也有VM这个虚拟机么,和.Net 的IL其实是一样的

至于c语言写的程序能不能跨平台你可以百度下,这个我不清楚

相似回答