日韩国产欧美精品一区二区三区,亚洲男女自偷自拍图片另类,亚洲欧美久久久,亚洲国产成人一区

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:到底C#是編譯語言還是解釋語言

1樓
wangxinxin 發表于:2010-12-10 14:33:43

我們這里須要討論的是C#是編譯語言還是解釋語言?將從解釋來執行 討論,并結合流程圖來說明。希望最后的結論,能對大家有所幫助。

“C# Java是解釋型語言?Oh my god”

“引用vls:C# Java是解釋型語言?Oh my god

呵呵 我也很詫異“

“引用DiggingDeeply:@vlsC#不是解釋行語言,那JIT是干啥用的?

無知并不可憐,無知還不知道自己無知才叫可憐”

“。。。但如果因為它是"一邊變換一邊執行", 就將其當作解釋語言……只能說你看到表象卻沒抓住本質。”

很是無語,既然您認為別人無知那您的有知拿出來給無知的人看看,行不?

拋開這些不談,誰能給編譯型和解釋型給下個解釋。無一例外,要么就是某人的博客,要么就是搜索來的網頁,再要么就是放個闕詞就消散,這些作為論據充分不?

昨天翻了翻龍書,也沒有給這兩個概念下細致的解釋,可見兩個概念是很難下個精確的解釋的。

在<<programming language="" Pragmatics>>(by Michaei L. Scott)這本書里面,我找到了有關的解釋和說明,特摘錄如下

Compilation and Interpretation

高級語言里一個程序的編譯和執行大概是 下面的情況:

討論:到底C#是編譯語言還是解釋語言圖片1

點擊查看大圖

編譯器將高級語言從源代碼翻譯成與之等價的目標程序(就相當于從中文翻譯成中文),而后就隱退了。在隨后的某個時刻,用戶啟動目標程序由操作系統執行。實現高級語言的另外一種形式為解釋:

討論:到底C#是編譯語言還是解釋語言圖片2

 

與編譯不同的是,解釋器在目標程序(其實根本就沒有目標程序,只是與編譯來比較)執行期間,解釋器一直隨之運行。這種執行流程完全由解釋器控制的。從效果上看,解釋器實現了一臺“虛擬計算機”,其“機器語言”就是高級語言,解釋器一次讀入一條或多條語句,按照其自身規定的形式去執行相應的操作。一般說來,解釋比編譯有著很好的靈活性;編譯一般有著較好的性能。但是有些語言確是采用了兩者的混合形式:

討論:到底C#是編譯語言還是解釋語言圖片3

點擊查看大圖

書中的原文:”如果原始階段的翻譯器比較基本,我們就說這個語言是“解釋的”。如果翻譯器很復雜,我們就說這一語言是“編譯的”。現在兩者的區分變得有些模糊了,因為“基本 ”和“復雜”都是修飾性術語,也因為完全可能出現用一個編譯器(復雜的翻譯流程)生成代碼,而后又由一個復雜的虛擬機(解釋器)執行。對于最后這種情況,如果翻譯器對程序做了徹底的分析(而不是做某種“機械的”變換),而且有關的中間語言程序與源程序并沒有很強的相似性,我們還是說這個語言是編譯的。這兩種特征 ----徹底的分析和非平凡的變換-----是刻畫編譯形式的標志性特征。“

根據以上標準,首先CSC只是對C#到IL做”機械“的翻譯,而且C#和IL之間有很強的相似性,因為兩者的程序代碼幾乎可以100%相互轉換(比如reflector可以將C#反編成IL,也可以將IL反編為C#)。您認為呢?

PS:再者某些人認為的ngen和cache程序集其實也是支持C#是解釋語言的結論,因為編譯型語言因為性能的天然因素是不須要這些手段的。也許我是錯的,請您不吝賜教,感激涕零.本人禁止了不負責任的匿名評論,請大家海涵。

共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .04688 s, 2 queries.
主站蜘蛛池模板: 山东省| 隆子县| 漠河县| 施甸县| 敖汉旗| 江都市| 红原县| 靖江市| 蒙阴县| 城步| 山东| 东山县| 鄄城县| 会泽县| 白河县| 建湖县| 富源县| 永福县| 金沙县| 车致| 融水| 疏勒县| 甘孜县| 景德镇市| 潜江市| 应城市| 临漳县| 三门县| 庄河市| 灵川县| 武清区| 重庆市| 安溪县| 吉首市| 和平区| 南平市| 宁海县| 澎湖县| 浦江县| 嫩江县| 乌苏市|