[自修] 電腦火星文解碼(2)
驚奇 , 娛樂 , 創意 ---- 知名軟體公司首席技術官 在我離職前所說過的一句話 ,
讓全世界的工程師趨之若鶩轉戰網路世界 :「想要寫網路程式賺錢嗎? 想要的話 , 就去研究WPF吧!網路世界的一切寶藏都放在那裡了。」 人們為了賺錢創業 , 爭相前往「全球互聯網」。可說是「新‧宅人創業時代」!
---------------------------------------
.NET Framework是微軟公司繼 Windows DNA 之後的新開發平臺。.NET Framework 是以一種採用系統虛擬機運行的編程平臺,以通用語言運行時(Common Language Runtime)為基礎,支援多種語言(C#、VB.NET、C++、Python等)的開發。
這是.NET Framework 介紹的第二段 , Windows DNA(這個就跳過不講了 我實在也不知道是什麼總之應該是一個舊的東西) , ".NET Framework 是以一種採用系統虛擬機運行的編程平臺,以通用語言運行時(Common Language Runtime)為基礎"
跨平台 and 跨語言
=> 上一篇介紹的跨平台有提到 , .NET 的程式 是架在.NET VM之上的 , 所以.NET VM能移植到什麼平台 , .NET的程式就可以在什麼樣的平台下執行!
.NET 所使用的VM是叫做 通用語言運行時(Common Language Runtime), 簡稱CLR
什麼是CLR?什麼是CLI?什麼是CIL?
CLR(Common Language Runtime)是用來讓不同程式語言可以彼此通用的管理執行環境,要深入了解CLR的運作得先知道CLI(Common Language Infrastructure) , 中文翻譯是"通用語言基礎" 它是一份開放的規則 , 這份規則是去定義出一份 "通用型別系統"包括一般系統,基礎類庫和與機器碼無關的中間代碼 , 這些東西總稱為CIL (Common Intermediate Language) , 它是能被CLR管理和執行的Portable execution檔案 , 有關這個程式的設計者和寫作這程式的環境描述都會被當作元數據(metadata)存在CIL裡 , 這個元數據會告訴CLR開發此程式的語言,版本,和用到的類別庫 , 而CLR會再根據這些元數據的描述將CIL編譯成符合該系統平台的機器碼 , 這樣便可以在該平台上正確執行!!

這就像是在歐洲的某一國將貨幣先轉變成中間貨幣(歐元)
再去換成該國使用的貨幣一樣!!
微軟的實作
微軟的CLR平台是將各種高階語言轉編譯為Bytecode(微軟的中繼語言) ,
再利用CLR來將Bytecode編譯成相關作業系統的機器碼 如下圖所示

因此.NET VM便可支援多種語言(C#、VB.NET、C++、Python等)的開發。
也可方便的移值和運行在windows2000 或 xp等係統上.....
PS: 這邊有個很模糊的地帶 感覺起來好像 微軟整個實作CLI的這一塊部份取名叫
CLR , 但是將通用中間代碼(CIL)轉成機器碼的編譯器也叫CLR........
感覺起來是整個計畫叫CLR,裡面也有一個元件叫CLR
讓全世界的工程師趨之若鶩轉戰網路世界 :「想要寫網路程式賺錢嗎? 想要的話 , 就去研究WPF吧!網路世界的一切寶藏都放在那裡了。」 人們為了賺錢創業 , 爭相前往「全球互聯網」。可說是「新‧宅人創業時代」!
---------------------------------------
.NET Framework是微軟公司繼 Windows DNA 之後的新開發平臺。.NET Framework 是以一種採用系統虛擬機運行的編程平臺,以通用語言運行時(Common Language Runtime)為基礎,支援多種語言(C#、VB.NET、C++、Python等)的開發。
這是.NET Framework 介紹的第二段 , Windows DNA(這個就跳過不講了 我實在也不知道是什麼總之應該是一個舊的東西) , ".NET Framework 是以一種採用系統虛擬機運行的編程平臺,以通用語言運行時(Common Language Runtime)為基礎"
跨平台 and 跨語言
=> 上一篇介紹的跨平台有提到 , .NET 的程式 是架在.NET VM之上的 , 所以.NET VM能移植到什麼平台 , .NET的程式就可以在什麼樣的平台下執行!
.NET 所使用的VM是叫做 通用語言運行時(Common Language Runtime), 簡稱CLR
什麼是CLR?什麼是CLI?什麼是CIL?
CLR(Common Language Runtime)是用來讓不同程式語言可以彼此通用的管理執行環境,要深入了解CLR的運作得先知道CLI(Common Language Infrastructure) , 中文翻譯是"通用語言基礎" 它是一份開放的規則 , 這份規則是去定義出一份 "通用型別系統"包括一般系統,基礎類庫和與機器碼無關的中間代碼 , 這些東西總稱為CIL (Common Intermediate Language) , 它是能被CLR管理和執行的Portable execution檔案 , 有關這個程式的設計者和寫作這程式的環境描述都會被當作元數據(metadata)存在CIL裡 , 這個元數據會告訴CLR開發此程式的語言,版本,和用到的類別庫 , 而CLR會再根據這些元數據的描述將CIL編譯成符合該系統平台的機器碼 , 這樣便可以在該平台上正確執行!!

這就像是在歐洲的某一國將貨幣先轉變成中間貨幣(歐元)
再去換成該國使用的貨幣一樣!!
微軟的實作
微軟的CLR平台是將各種高階語言轉編譯為Bytecode(微軟的中繼語言) ,
再利用CLR來將Bytecode編譯成相關作業系統的機器碼 如下圖所示

因此.NET VM便可支援多種語言(C#、VB.NET、C++、Python等)的開發。
也可方便的移值和運行在windows2000 或 xp等係統上.....
PS: 這邊有個很模糊的地帶 感覺起來好像 微軟整個實作CLI的這一塊部份取名叫
CLR , 但是將通用中間代碼(CIL)轉成機器碼的編譯器也叫CLR........
感覺起來是整個計畫叫CLR,裡面也有一個元件叫CLR
