请问C#是编译型语言还是解释型语言?

如题所述

C#是解释型语言,不是编译型语言。

只要不是"直接编译成机器指令并直接运行机器指令执行档"的编译语言,就属于解释语言。

Java,C#、VB.net等的源码先编译成字节码,再由虚拟机“解释”执行字节码。
也属于解释语言,JIT即时编译的语言也属于解释语言。

现在虚拟机逐渐多样化,机器指令的硬件相关性逐渐淡化。所以编译语言和解释语言的概念越来越少被提到了。

Most so-called interpreted languages use an intermediate representation, which combines compiling and interpreting. In this case, a compiler may output some form of bytecode or threaded code, which is then executed by a bytecode interpreter.
大多数所谓的解释型语言都采用某种结合编译和解释的中间形态。以编译器输出某种字节码或线程码,然后由字节码解释器执行。 ---维基百科-解释型语言条
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-22
C# 是编译型语言啊。。它运行之前。需要先经过编译的。编译正确才能执行 一般编译后都是 EXE 文件的。

译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。
JavaScript、VBScript、Perl、Python、Ruby、MATLAB都是解释型语言
第2个回答  2012-08-22
C#是编译型的语言。目前写的C#程序都是先编译成IL中间码;运行的时候有JIT compiler编译成native x86 指令执行的。微软承诺在将来会发布直接将代码编译成native x86 指令来执行(或类似的转换工具),这样就跟你用vc++等工具写的代码差不多了,减少了代码load的时间。当然同时也失去了一个进行性能优化的机会----如果代码在运行前进行动态编译运行,那么JIT compiler可以很智能的根据你本地机器的硬件条件来进行优化,比如使用更好的register,机器指令等等,而不是像原来那样,build一份程序针对所有硬件的机器跑,没有充分利用各个机器的条件。
实际上安装在你机器上的.NET Classes 都是已经编译成了native x86指令,否则每次都JIT compile 一次,performance还能忍受吗? :))

C#也是一种特殊的解释性语言。
第3个回答  推荐于2016-09-30
  1、编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。

2、解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。
第4个回答  2012-08-22
编译型的,现在很少有解释行的高级编程语言了,
目前解释型的大部分是一些脚本语言,perl,python 等等。
相似回答