程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .NET程序編譯原理

.NET程序編譯原理

編輯:C#入門知識

導語:

CPU只認識二進制代碼,那麼C#源代碼是怎樣變成CPU可識別的二進制代碼的呢?

步驟如下:

1、C#源碼

2、運用VS自帶的命令提示窗口,使用將C#源碼轉成程序集(EXE文件或DLL文件),程序集裡面主要由MSIL(微軟中間語言)組成,通過以將程序集進行反編譯,可以看到裡面的微軟中間語言。

3、運行EXE文件後,.net framework也開始運行,裡面的(公共語言運行時)中的(即時編譯器)將中間語言轉成本地平台的CPU指令,並將指令發給CPU執行。

 

疑點:

1、為什麼程序集不直接變成二進制代碼?這樣看起來豈不是更快?

不同品牌不同型號的CPU,同一動作的指令是不一樣的,C,C++是直接轉二進制的,它只是將語言的代碼編譯成不同CPU的交集的功能,而.NET程序的編譯,首先會先判斷本機的CPU星號,JIT將中間語言轉成的CPU指令,可以充分地運用當前CPU的每一個功能,所以,並不是C,C++的效率就比C#高,C#有時候比C,C++執行效率更高。

2、.NET可以跨語言嗎?

可以,VB.NET有VB編譯器將VB語言轉成微軟中間語言,其余的就不需要你去做了,其余的同理。

3、.NET跨平台嗎?

可以,運用mono

 

附圖:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved