當前位置:首頁 » 編程軟體 » net中間語言需要進行編譯嗎

net中間語言需要進行編譯嗎

發布時間: 2023-02-03 02:50:39

① asp.net 和.net和C#.net和C#有什麼不一樣。

ASP.NET、.NET和C#的區別和關系如下:

一、asp.net是一種用來快速創建動態Web網站的技術,不是語言,它使用C#(或者vb.net)為開發語言。C#是一種面向對象的編程語言;net只是一個框架,.net中所有的編程語言,比如c# vb.net等編寫的程序必須在.netframework框架下運行。

.NET 分成兩個方面:WinForm和WebForm,ASP.NET就是屬於WebForm,也就是平時說的B/S模式的開發。而WinForm就是屬於C/S模式。

Asp.NET可以用C#或VB.NET來開發。編譯後形成CLR,通過伺服器的IIS+.NETFrameWork再次編譯來運行。

二、.Net全稱.NETFramework是一個開發和運行環境,該戰略是微軟的一項全新創意,它將使得「互聯網行業進入一個更先進的階段」,.NET不是一種編程語言。簡單說就是一組類庫框架。

.NET有很多種語言組成,比如C#、 VB.NET、J#、Jsript、Managed C++,但是都是運行在.NET FrameWork Run Time底下的。其中,C#是主流。

三、C#是.NET Framework框架支持的一種主力開發語言,可用於開發ASP.NET網站,Windows程序,控制台程序,甚至於手機軟體(Windows Phone)。

(1)net中間語言需要進行編譯嗎擴展閱讀:

.NET主要的優點有:

.NET的主要優點有跨語言,跨平台,安全,以及對開放互聯網標准和協議的支持。

.NET支持多種語言的互操作,即在一種語言下開發的組件,可在另一組件下通過面向對象的繼承而得以重用。

.NET通過將各語言先編譯成中間語言(IL),然後再執行時用即時(Just
In Time)編譯器將之編譯成本地平台代碼來實現異構平台下對象的互操作,.NET通過公共語言運行庫CR(Common Language
Runtime)來實現資源對象,類型的安全。

.NET通過對HTTP,XML等Internet標準的支持提供在異構網路環境下獲取遠程服務,連接遠程設備,交互遠程應用的編程界面。

② 什麼是中間語言(IL)它的作用

IL是.NET框架中中間語言(Intermediate Language)的縮寫。使用.NET框架提供的編譯器可以直接將源程序編譯為.exe或.dll文件,但此時編譯出來的程序代碼並不是CPU能直接執行的機器代碼,而是一種中間語言IL(Intermedate Language)的代碼。
使用中間語言的優點有兩點,一是可以實現平台無關性,既與特定CPU無關;二是只要把.NET框架某種語言編譯成IL代碼,就實現.NET框架中語言之間的交互操作。(《C#程序設計及應用教程》(第2版),馬駿 主編)

參考:http://ke..com/view/2278922.htm

③ 誰能解釋一下.net平台的語言無關性和語言繼承性

.net 平台支持很多語言,常見有:C#、VB、C++、F#、J#(Java)等
但是實際上經過編譯之後,統一生成了中間語言「IL」,類似匯編,就因為這樣,才可以在以上所有的語言中相互引用dll,因為實際是都是一種語言「IL」
在執行的時候,實際上.net會把IL先給編譯成機器碼,也就是二進制,這才是真正的可執行代碼。

以上純手打,以下是網上摘錄的,屬於純理論:
.net framework的核心是其運行庫的執行環境,叫做公共語言運行庫,簡稱CLR,將在CLR的控制下運行的代碼稱為託管代碼,在CLR執行代碼之前,需要編譯,分為2個階段:
1: 把源代碼編譯為Microsoft中間語言(MSIL);
2: CLR把MSIL編譯為平台專用的機器代碼;
也就是說,不管你用什麼語言來編寫源代碼,它都會通過它自己的編譯器編譯成MISL,從而轉換成機器碼,都能被機器識別!語言的集成性我想主要是說它的公共語言規范(CLS)公共語言規范和通用類型系統一起確保了語言的相互操作性,CLS是一個最低標准集,所有面向.net的編譯器都必須支持它.每個語言都符合這個規范,從而滿足了語言的互相調用和互操作

④ .NET程序首先被編譯成中間語言IL,IL經過再次編譯後才生成機器碼。這樣做有什麼好處

方便獨立開發語言和虛擬機吧。
還有這樣就可以兼容各種語言,生成相同的il。

⑤ .net寫的程序可以編譯成脫離.netframework運行的二進製程序嗎

不行的。.NET編寫的程序,是Microsoft號稱能在多種平台上運行,運行的基石是.Net Framwork。不過Microsoft很早提出把程序編譯成二進制的目標程序,但至今沒有實現

⑥ .NET學習:中間語言(IL)=託管代碼

不完全正確,託管代碼是由公共語言運行庫環境(而不是直接由操作系統)執行的代碼。託管代碼應用程序可以獲得公共語言運行庫服務,例如自動垃圾回收、運行庫類型檢查和安全支持等。這些服務幫助提供獨立於平台和語言的、統一的託管代碼應用程序行為。
託管代碼是可以使用20多種支持Microsoft .NET Framework的高級語言編寫的代碼,它們包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的語言共享統一的類庫集合,並能被編碼成為中間語言(IL)。運行庫編譯器(runtime-aware compiler)在託管執行環境下編譯中間語言(IL)使之成為本地可執行的代碼,並使用數組邊界和索引檢查,異常處理,垃圾回收等手段確保類型的安全。
在託管執行環境中使用託管代碼及其編譯,可以避免許多典型的導致安全黑洞和不穩定程序的編程錯誤。同樣,許多不可靠的設計也自動的被增強了安全性,例如 類型安全檢查,內存管理和釋放無效對象。程序員可以花更多的精力關注程序的應用邏輯設計並可以減少代碼的編寫量。這就意味著更短的開發時間和更健壯的程序。
簡單點說,託管代碼是一microsoft的中間語言,他主要的作用是在.NET FRAMEWORK的CLR執行代碼前去編譯源代碼,也就是說託管代碼充當著翻譯的作用,源代碼在運行時分為兩個階段:
1.源代碼編譯為託管代碼;(所以源代碼可以有很多種,如VB,C#,J#)
2.託管代碼編譯為microsoft系統的.net平台專用文件(如類庫、可執行文件等),即中間語言。

⑦ .net包含什麼

.Net主要包括普通語言運行時(Common Language Runtime)和.Net構架類庫。

.Net是為簡化在第三代網際網路的高分布式環境下的應用程序開發,基於開放互聯網標准和協議之上,實現異質語言和平台高度交互性,而構建的新一代計算和通信平台。

(7)net中間語言需要進行編譯嗎擴展閱讀:

.Net的主要優點有跨語言,跨平台,安全,以及對開放互聯網標准和協議的支持。

.Net支持多種語言的互操作,即在一種語言下開發的組件,可在另一組件下通過面向對象的繼承而得以重用,目前.Net支持的語言達二十多種。

.Net通過將各語言先編譯成中間語言(IL),然後在執行使用即時(Just In Time)編譯器將之編譯成本地平台代碼來實現異構平台下對象的互操作,目前.Net支持的平台有Windows,Linux和Unix的支持正在開發中。

⑧ C#程序不是一次編譯後執行了,而是編譯成中間代碼,在。net環境由JIA編譯器邊編輯邊執行是什麼意思

c#和c++不同,c++是完全編譯的,不需要特別的輔助容器就可以直接運行,c#和vb等等不是完全編譯的程序,是一種解釋性程序,源代碼一般只能編譯成一種中間語言(MSIL)然後在.net對應版本的容器中執行(.net framework),也就死c #程序的執行要依靠framwork的解釋才能執行

⑨ .net如何防反編譯

.net是中間語言十分容易被反編譯,通常都使用混淆作為一種加密手段。不過混淆不是真正防反編譯,只不過反編譯後代碼難讀懂而已,並且現在破解混淆的方式也比較多。所以真正要防反編譯還是需要通過加密代碼的方式。比如德國威步他們提供一種對.NET代碼完全加密保護的方式來防止反編譯的,曾經測試過用Reflector(.net反編譯工具)反編譯他們加密軟體加密的.NET程序,的確完全無法看到源代碼了。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:750
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1012
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:719
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:879
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1127
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:351
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:229
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:912
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:876