Visual Basic .NET编译或解释?

时间:2011-05-14 15:51:56

标签: .net vb.net visual-studio-2010

是Visual Basic 2010的编译语言还是解释语言?可以拆解vb程序吗?

5 个答案:

答案 0 :(得分:15)

它被编译为IL code,通常为JITted。可以使用Ngen等工具创建原生图像。

反汇编.NET程序集非常容易。有许多工具(免费和商业)可以做到这一点。

答案 1 :(得分:2)

两者都有点。它被编译成IL,然后在运行时“及时编译”(JITed)到机器代码中。

答案 2 :(得分:2)

取决于执行环境。但它通常是编译的。两次,首先从源代码到IL(中间语言)。再次在运行时从IL到机器代码由即时编译器。除了使用IL解释器的.NET Micro Framework之外。中间形式允许相当不错的反编译,Reflector是最好的工具。

答案 3 :(得分:0)

这是两者的混合。它被编译为CIL(通用中间语言:http://en.wikipedia.org/wiki/Common_Intermediate_Language)。这个CIL是由CLR(公共语言运行时)编译成本机代码的JIT(及时)。

由于CIL代码保持完整,因此将CIL反编译为C#,VB .NET或其他.NET变体是相当简单的。有几种产品可以做到这一点(Reflector,dotPeek)。为了防止源代码被盗,您可以使用混淆器(例如Dotfuscator)来确保将CIL反编译为C#/ VB .NET的任何尝试都会导致乱码。

答案 4 :(得分:0)

这很复杂。

与Java一样,.Net语言(包括C#和VB)都被编译成类似字节码的语言IL(Intermediate Language)。然后将此IL分发给其他计算机。

然而,它并不止于此。在实际执行之前,IL由JIT(即时)编译器编译为本机代码。是的,像所有语言一样,vb可以被反汇编。