Posted on 2007-12-02 22:14
canonical 閱讀(1179)
評(píng)論(2) 編輯 收藏 所屬分類(lèi):
設(shè)計(jì)理論
地址(Address)是現(xiàn)代計(jì)算機(jī)體系架構(gòu)中的核心概念,它在程序設(shè)計(jì)語(yǔ)言上的體現(xiàn)就是C語(yǔ)言中的指針(Pointer)。在C語(yǔ)言中,所有的高級(jí)技巧都和指針這個(gè)概念相關(guān)。指針只是一個(gè)存放了一個(gè)地址的變量,但是C語(yǔ)言中提供了一個(gè)方便的間接訪問(wèn)方式,p->x, 它使得擁有指針在概念上就等價(jià)于擁有了指針?biāo)傅娜績(jī)?nèi)容。在這種誘導(dǎo)下,我們漸漸模糊了地址和地址所存儲(chǔ)的內(nèi)容之間的區(qū)別。這也是指針的指針這樣的概念總是讓初學(xué)者迷惑不解的重要原因。
指針是對(duì)地址的符號(hào)化。它所帶來(lái)的第一大好處是使得我們擺脫了對(duì)絕對(duì)地址空間的依賴(lài)。如同Newton第一定律所闡述的:物理規(guī)律與所發(fā)生的慣性坐標(biāo)系無(wú)關(guān)。同樣,數(shù)字空間中發(fā)生的的事件與所處的絕對(duì)地址也是無(wú)關(guān)的。在符號(hào)化的方向上更進(jìn)一步,如果我們專(zhuān)注于指針的關(guān)聯(lián)語(yǔ)義,而放棄指針的指針這樣的混雜概念,就會(huì)得到具有獨(dú)立價(jià)值的引用(Reference)概念.
從表面上看起來(lái),數(shù)字空間只是一個(gè)無(wú)限延展的一維地址空間,每一地址處只能存放一個(gè)有限大小的離散數(shù)值,似乎它的幾何學(xué)是貧瘠的。但是因?yàn)樵谲浖O(shè)計(jì)中,一般是不考慮尋址時(shí)間的。這意味著在擁有指針的情況下,我們可以“立刻”訪問(wèn)到數(shù)字空間的任意遙遠(yuǎn)的地方。這種超時(shí)空的信息傳遞過(guò)程使得我們可以利用“引用”概念輕松的構(gòu)建一個(gè)多維的表示空間。在面向?qū)ο蟮募夹g(shù)背景下,x.y.z這樣的形式表示暗示著x,y,z是同時(shí)存在的。當(dāng)z發(fā)生變化的時(shí)候,通過(guò)y.z和x.y的信息傳導(dǎo),x對(duì)象本身也發(fā)生了某種變化。
隨著web技術(shù)的流行,獨(dú)立的狀態(tài)/地址空間的存在性逐漸成為系統(tǒng)不可回避的假設(shè), "同時(shí)性"的物理約束越來(lái)越難以維持. 相對(duì)論規(guī)定了物理現(xiàn)象的定域性, 在數(shù)字空間我們一直忽視了它.但有趣的是, 網(wǎng)絡(luò)上的傳輸時(shí)延卻迫使我們重新發(fā)現(xiàn)了"引用"形式下必然存在著的物理過(guò)程. 引用本身只是標(biāo)記了某種信息關(guān)聯(lián), 并不一定意味著同時(shí)性約束. 并發(fā)編程領(lǐng)域的所謂的Future對(duì)象是對(duì)傳統(tǒng)引用概念的一種有趣擴(kuò)展.
result = obj.callMethod(args) ==> future = obj.callMethod(args)
future對(duì)象可以被自由傳遞, 只有當(dāng)實(shí)際訪問(wèn)到它的屬性的時(shí)候, 才會(huì)觸發(fā)時(shí)序約束.