<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導(dǎo)入]關(guān)于結(jié)構(gòu)

    Posted on 2005-11-14 15:37 canonical 閱讀(472) 評論(1)  編輯  收藏 所屬分類: 設(shè)計理論

         所謂結(jié)構(gòu),簡單的說就是一組關(guān)系的集合。(結(jié)構(gòu)就是關(guān)系的說法就太過于簡陋了)。在數(shù)學(xué)上,最基本的關(guān)系就是集合之間的包含(contains)關(guān)系,而等價(equivalance)關(guān)系,序(order)關(guān)系(坐標(biāo))等都可以基于包含關(guān)系推導(dǎo)出來。從集合論的角度上說,所謂的關(guān)系也是通過集合來刻畫的(兩元素相關(guān)指的是它們屬于同一集合),而函數(shù)的定義就是集合之間的映射。因此,在集合論看來,一切都是集合,數(shù)據(jù)的結(jié)構(gòu)與函數(shù)的結(jié)構(gòu),或者結(jié)構(gòu)的結(jié)構(gòu)的結(jié)構(gòu)之間并無本質(zhì)性的區(qū)別, 甚至數(shù)據(jù)與結(jié)構(gòu)之間也存在著內(nèi)在的統(tǒng)一性。一些我們早已默認(rèn)接受的基本實體,在集合論的框架下也是通過集合的結(jié)構(gòu)來刻畫的,例如自然數(shù)1,2,3,這些數(shù)字本身也是通過一些復(fù)雜的構(gòu)造過程來進行描述的,它們只是一些基本結(jié)構(gòu)的速記符號而已。
        當(dāng)然,世界并不簡單。集合論所沒有述及的一個事實是,集合的集合比集合本身要復(fù)雜。結(jié)構(gòu)的級列也構(gòu)成了復(fù)雜性的級列,每一個層次都比前一個層次要復(fù)雜的多。最明顯的表現(xiàn)就是函數(shù)的總數(shù)比實數(shù)多。在現(xiàn)實的世界中,我們很多時候都是處在某一復(fù)雜性層次上,因而可以深切的感受到基本元素與結(jié)構(gòu),與結(jié)構(gòu)的結(jié)構(gòu)之間的這種深刻的差異。
       
        偉大的von Neumann在計算機世界中定義了兩種基本的東西,數(shù)據(jù)與指令,在von Neumann體系架構(gòu)下,兩者的界限是明確的。CPU的存在定義了指令與數(shù)據(jù)之間的結(jié)合關(guān)系(apply), 而CPU的串行執(zhí)行強制定義了指令之間的序關(guān)系(order)。在軟件中我們通過函數(shù)封裝定義了指令的集合,而這些集合之間仍然存在著由main函數(shù)所驅(qū)動的序關(guān)系。因為函數(shù)也是通過數(shù)據(jù)(代碼)來表達的,因而在形式語義上,我們有可能證明能夠表達的函數(shù)結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)是完全一致的(注,這方面我并無研究,也不太感興趣)。但是現(xiàn)實情況下,我們對函數(shù)之間的結(jié)構(gòu)的控制要弱于對數(shù)據(jù)結(jié)構(gòu)的控制。最明顯的,程序運行時,函數(shù)(指令)空間基本上是靜態(tài)的,不變的,而數(shù)據(jù)空間則不斷的發(fā)生著變化。現(xiàn)代軟件系統(tǒng)中plugin, 動態(tài)配置,運行時java代碼增強(enhance)等技術(shù)的不斷發(fā)展正在逐漸縮小著這方面的差距。

        在數(shù)據(jù)結(jié)構(gòu)方面,C語言中的Struct結(jié)構(gòu)體是一個很大的進步。因為由此引出的復(fù)雜類型系統(tǒng)是對結(jié)構(gòu)的一種抽象描述: 在編譯期唯一的一個Struct定義可能對應(yīng)著運行期的多個實例(instance)。而在引入模板(template)特性之前,每個函數(shù)定義都唯一的對應(yīng)于一些二進制指令。類(Class)相對于Struct的突破之處在于它表達了函數(shù)(指令)與數(shù)據(jù)之間的相關(guān)關(guān)系。Class之間的關(guān)系構(gòu)成結(jié)構(gòu)的結(jié)構(gòu)。在編譯期,我們所面對的只是類型定義,因而處理的正是結(jié)構(gòu)問題,此時并沒有實際的數(shù)據(jù)實例。而傳統(tǒng)上,編譯期所處理的結(jié)構(gòu)都是靜態(tài)的,現(xiàn)在腳本語言 (script)與language oriented programming正在逐漸突破這一限制。編譯期處理結(jié)構(gòu)問題所造成的另外一個現(xiàn)實是,目前我們對于結(jié)構(gòu)的描述必須基于類型系統(tǒng)來進行,一般情況下無法方便的單獨定制實例的結(jié)構(gòu)。
        函數(shù)在其本義上只是對數(shù)據(jù)的變換,從數(shù)據(jù)空間的角度看,函數(shù)可以被看作是數(shù)據(jù)之間的一種動態(tài)結(jié)構(gòu),其最終形態(tài)在運行時結(jié)合輸入數(shù)據(jù)才展開。高階 (higher order)函數(shù)接受函數(shù)作為參數(shù),因而可以看作是對結(jié)構(gòu)的變換。但無論如何,函數(shù)與過程化處理并不是一回事,只是在von Neumman體系下,可以觀測到函數(shù)順序執(zhí)行才引入了時間概念。

    Feedback

    # re: [導(dǎo)入]關(guān)于結(jié)構(gòu)  回復(fù)  更多評論   

    2006-12-04 16:50 by javabeginer
    什么意思??
    主站蜘蛛池模板: 国产成人无码综合亚洲日韩| 亚洲另类春色校园小说| 久久久免费的精品| 久久亚洲AV成人无码| 成人免费看吃奶视频网站| 又硬又粗又长又爽免费看 | 曰皮全部过程视频免费国产30分钟| 国产精品观看在线亚洲人成网| 亚洲精品高清国产一线久久| 美丽的姑娘免费观看在线播放 | 成年人网站免费视频| 视频一区在线免费观看| 久久噜噜噜久久亚洲va久| 免费毛片在线看片免费丝瓜视频| 一级毛片**免费看试看20分钟| 久久久无码精品亚洲日韩按摩 | 亚洲国语精品自产拍在线观看| 色婷婷7777免费视频在线观看| 美女视频黄.免费网址| 久久狠狠高潮亚洲精品| 亚洲成人一区二区| 国产成人yy免费视频| 美女无遮挡拍拍拍免费视频| 自拍偷区亚洲国内自拍| 亚洲免费人成在线视频观看| 最近免费中文在线视频| 狼人大香伊蕉国产WWW亚洲| 亚洲电影一区二区| 免费播放特黄特色毛片| 欧洲一级毛片免费| 成人一区二区免费视频| 亚洲精品无码久久久久A片苍井空| 亚洲VA成无码人在线观看天堂| 免费国产成人高清视频网站| **一级一级毛片免费观看| 久久久久久av无码免费看大片| 亚洲精品天堂无码中文字幕| 久久青青草原亚洲av无码app| 2048亚洲精品国产| 成人免费视频国产| 国产精品免费观看久久|