国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于具有有限資源的微處理器的進(jìn)程語言的制作方法

      文檔序號(hào):6537168閱讀:162來源:國(guó)知局
      專利名稱:用于具有有限資源的微處理器的進(jìn)程語言的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明一般涉及程序設(shè)計(jì)語言,并尤其涉及用于表示可由具有有限資源的微處理器最終執(zhí)行的進(jìn)程及其交互的人工語言。
      背景技術(shù)
      見圖1,諸如基于CISC的微處理器102的微處理器處于所有個(gè)人計(jì)算機(jī)的核心。當(dāng)將電源104和存儲(chǔ)器106加到基于CISC微處理器102時(shí),就呈現(xiàn)了形成計(jì)算機(jī)所需的所有部分?;贑ISC的微處理器102通過遵循給予其的指令來完成任務(wù)。指令就是以人工語言編寫的一種表示,如程序設(shè)計(jì)語言。較早的微處理器僅使用簡(jiǎn)單指令,因?yàn)槟軌驁?zhí)行復(fù)雜指令的微電子硬件的成本非常高。由于這些成本隨著時(shí)代發(fā)展而減少,更復(fù)雜的指令變成可能。復(fù)雜指令(指定多個(gè)微處理器操作的多條單一指令)可以節(jié)約時(shí)間,因?yàn)樗鼈兪沟糜?jì)算機(jī)不需要檢索附加指令。例如,如果將七個(gè)操作組合到一條指令中,那么就消除了六個(gè)取指令步驟,而微處理器就花費(fèi)更少的時(shí)間來處理操作。將若干指令結(jié)合到單一操作中的微處理器稱為復(fù)雜指令集計(jì)算機(jī)(CISC)。
      基于CISC的微處理器102使用寄存器存儲(chǔ)所執(zhí)行指令的結(jié)果。每一寄存器是在用于保存專用數(shù)據(jù)的基于CISC的微處理器102內(nèi)的高速存儲(chǔ)器的比特組。在匯編語言程序中,通過諸如AX(在Inter80×86處理器中包含算術(shù)操作結(jié)果的寄存器)或SP(包含各種基于CISC的微處理器中的堆棧頂部的存儲(chǔ)器地址的寄存器)的名字命名每一寄存器。事實(shí)上每一寄存器就是基于CISC的微處理器102各部分之間的共享存儲(chǔ)器。當(dāng)將寄存器用作共享存儲(chǔ)器時(shí),一個(gè)部件進(jìn)行指定操作并將指定操作結(jié)果存儲(chǔ)于寄存器中。以順序方式,另一部件隨后可在進(jìn)行其它操作時(shí)訪問同一寄存器以獲取該結(jié)果。
      這樣的順序執(zhí)行操作使得基于CISC的微處理器102的各部件在其通信時(shí)好像是同步的。諸如在基于CISC的中間設(shè)備中,將程序中幾乎所有指令都設(shè)計(jì)為順序執(zhí)行??捎糜诨贑ISC的微處理器102的硬件中斷可用作增加異步性并由此使操作同時(shí)執(zhí)行的一種方法。硬件中斷是對(duì)于基于CISC的微處理器102的服務(wù)的請(qǐng)求,它由諸如盤驅(qū)動(dòng)器或輸入/輸出端口的硬件設(shè)備外部產(chǎn)生,或由基于CISC的微處理器本身內(nèi)部產(chǎn)生。外部硬件中斷用于諸如從端口接收字符并需要對(duì)其處理、準(zhǔn)備傳輸數(shù)據(jù)塊以進(jìn)行盤寫入或系統(tǒng)定時(shí)器的嘀嗒聲等情況。內(nèi)部硬件中斷發(fā)生在程序嘗試不可能的操作時(shí),如訪問不可用的地址或除以零。由于離散結(jié)構(gòu)(微處理器各部件的同步特性以及硬件中斷的異步特性),中斷處理器中僅僅一個(gè)程序設(shè)計(jì)錯(cuò)誤就可以使得基于CISC的微處理器102死鎖或者永久地(pathologic)、幾乎不可再現(xiàn)地?fù)p壞數(shù)據(jù)。
      π-計(jì)算程序(π-calculus program)110可為基于CISC的中間設(shè)備108和基于CISC的微處理器102的同步性和順序執(zhí)行設(shè)計(jì)帶來期望的異步性和并行性。π-計(jì)算是用于描述交互、同步系統(tǒng)中的進(jìn)程的數(shù)學(xué)語言。π-計(jì)算的核心包括通過鏈接通信的獨(dú)立、并行進(jìn)程的系統(tǒng)。一進(jìn)程與其它進(jìn)程進(jìn)行通信的可能性依賴于其對(duì)于各種不同鏈接的信息??上拗奇溄樱沟脙H有某些進(jìn)程在其上進(jìn)行通信。
      雖然π-計(jì)算可為計(jì)算帶來亟需異步性和并行性,但仍有重大的缺陷。π-計(jì)算重點(diǎn)在于純名稱,它們中的每一個(gè)僅限定為比特模式而不是結(jié)構(gòu)信息。π-計(jì)算及其變量缺少對(duì)結(jié)構(gòu)數(shù)據(jù)在指定的鏈接上傳遞的容許量。為了創(chuàng)建新的名稱,如名稱X,v算子就用于π-計(jì)算中。例如,數(shù)項(xiàng)(vX)P表示創(chuàng)建名稱X,并將其范圍限制于進(jìn)程P。進(jìn)程P的各部件可使用X互相進(jìn)行交互,但不與其它進(jìn)程進(jìn)行交互操作??紤]算術(shù)結(jié)構(gòu)全等(congruence)律(vX)(vX)P≡(vX)P。項(xiàng)(vX)定義為需要使用諸如malloc()的函數(shù)進(jìn)行存儲(chǔ)器分配的操作。假設(shè)計(jì)算系統(tǒng)中僅剩余滿足一個(gè)項(xiàng)(vX)的調(diào)用的存儲(chǔ)器。如果是這樣的情況,結(jié)構(gòu)全等律右手邊的項(xiàng)(vX)就可以無誤地操作。而對(duì)于結(jié)構(gòu)全等律左手邊的項(xiàng)(vX)(vX)P則不是這樣,因?yàn)?vX)的第二次調(diào)用會(huì)引發(fā)存儲(chǔ)器錯(cuò)誤。
      π-計(jì)算的另一問題就是復(fù)制!P的數(shù)學(xué)概念。π-計(jì)算提供復(fù)制!P作為語言基元(primitive)。項(xiàng)!P可解釋為與另一進(jìn)程并行運(yùn)行的進(jìn)程P的無限組合。雖然!P理論上是抽象的,但它卻引出具體實(shí)現(xiàn)中的問題。微處理器是由有限資源創(chuàng)建的,如存儲(chǔ)器和帶寬。雖然π-計(jì)算程序確實(shí)增加了期望的異步性,但它們沒有意識(shí)到這些π-計(jì)算執(zhí)行的微處理器是有資源限制的。
      總之,基于CISC的微處理器無法有效工作于需要并發(fā)和并行計(jì)算的異步系統(tǒng)中,即分散的大規(guī)模計(jì)算機(jī)系統(tǒng),如因特網(wǎng)。傳統(tǒng)的順序執(zhí)行結(jié)構(gòu)不適用于操作同時(shí)執(zhí)行的需要。雖然π-計(jì)算在異步性和并行性方面提供了一些修正,但是其一些數(shù)學(xué)基元并不與具有有限資源的計(jì)算設(shè)備兼容。不解決上述問題,用戶就會(huì)漸漸不再相信計(jì)算系統(tǒng)提供期望的計(jì)算體驗(yàn)并且市場(chǎng)上對(duì)于計(jì)算機(jī)系統(tǒng)的需求就會(huì)逐漸減少。因此,需要更好的集成電路和程序設(shè)計(jì)語言,便于更好的異步性、并發(fā)性和并行性,而避免或減少與現(xiàn)有基于CISC的微處理器以及π-計(jì)算相關(guān)的以上和其他問題。
      技術(shù)內(nèi)容根據(jù)本發(fā)明,提供用于處理以反射進(jìn)程算法(reflective process algebra)編寫的處理服務(wù)的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì)。本發(fā)明的系統(tǒng)形式包括用于處理信息以產(chǎn)生期望結(jié)果的計(jì)算機(jī)。該計(jì)算機(jī)包括用于存儲(chǔ)服務(wù)的計(jì)算機(jī)可讀介質(zhì)。這些服務(wù)包括通過解釋進(jìn)程來表示名稱以及通過逆解釋(deliteralize)名稱來表示進(jìn)程的表示。該計(jì)算還包括用于執(zhí)行服務(wù)作為進(jìn)程的微處理器。這些進(jìn)程通過名稱進(jìn)行交互并通過實(shí)現(xiàn)操作或者引發(fā)其他進(jìn)程演化來進(jìn)行演化。
      根據(jù)本發(fā)明的另一方面,本發(fā)明的另一系統(tǒng)形式包括用于執(zhí)行指令的微處理器。該微處理器包括定時(shí)和控制單元,用于從存儲(chǔ)器檢索指令、對(duì)該指令進(jìn)行解碼、獲取與該指令相連接的數(shù)據(jù)并保存結(jié)果。該數(shù)據(jù)包括通過以反射進(jìn)程算法解釋進(jìn)程來獲得的名稱。該微處理器進(jìn)一步包括用于進(jìn)行由該指令指定的操作的算術(shù)和邏輯單元。以反射進(jìn)程算法表示該指令。反射進(jìn)程算法能夠?qū)⒚Q表示為進(jìn)程的解釋并將進(jìn)程表示為名稱的逆解釋。
      根據(jù)本發(fā)明的另一方面,本發(fā)明的計(jì)算機(jī)可讀介質(zhì)形式包括具有在其上存儲(chǔ)的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),該指令用于實(shí)現(xiàn)允許進(jìn)程通過共享名稱進(jìn)行操作或交互,以便演化或引發(fā)其他進(jìn)程的演化。該計(jì)算機(jī)可讀介質(zhì)包括以反射進(jìn)程算法表示的計(jì)算機(jī)可執(zhí)行指令。該計(jì)算可執(zhí)行指令包括表示進(jìn)程的進(jìn)程語法單元。進(jìn)程語法單元可從以下述組中選擇,該組包括非活動(dòng)進(jìn)程0、輸出進(jìn)程X[Y]、輸入進(jìn)程X(Z).P、翻轉(zhuǎn)(lifting)進(jìn)程LIFT X.P、進(jìn)程組合P|P和名稱逆解釋&gt;X&lt;。
      根據(jù)本發(fā)明的另一方面,本發(fā)明的的方法形式包括用于處理服務(wù)的計(jì)算機(jī)可執(zhí)行方法。該計(jì)算機(jī)可執(zhí)行方法包括以反射進(jìn)程算法將服務(wù)表示為進(jìn)程的操作。反射進(jìn)程算法能夠?qū)⑦M(jìn)程表示為名稱的逆解釋以及將名稱表示為進(jìn)程的解釋。計(jì)算機(jī)可執(zhí)行方法的其它操作包括在進(jìn)程間共享名稱時(shí)使進(jìn)程進(jìn)行操作或通信,以便于進(jìn)程的演化。
      根據(jù)本發(fā)明的另一方面,本發(fā)明的系統(tǒng)形式包括用于執(zhí)行指令的微處理器陣列,該微處理器陣列包括至少一個(gè)包括定時(shí)和控制單元的微處理器,定時(shí)和控制單元用于從存儲(chǔ)器檢索指令、對(duì)該指令進(jìn)行解碼、獲取與該指令相連接的數(shù)據(jù)并保存結(jié)果。該數(shù)據(jù)包括通過以反射進(jìn)程算法解釋進(jìn)程來獲得的名稱。該微處理器進(jìn)一步包括用于進(jìn)行由該指令指定的操作的算術(shù)和邏輯單元。以反射進(jìn)程算法表示該指令。反射進(jìn)程算法能夠?qū)⒚Q表示為進(jìn)程的解釋并將進(jìn)程表示為名稱的逆解釋。


      當(dāng)通過參考以下詳細(xì)描述并結(jié)合附圖對(duì)本發(fā)明的以上方面以及許多其他優(yōu)點(diǎn)更好地理解時(shí)它們會(huì)變得更加明顯,其中圖1是示出計(jì)算系統(tǒng)的框圖,其中π-計(jì)算程序與基于CISC的中間設(shè)備對(duì)接以在基于CISC的微處理器上執(zhí)行;圖2A是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出與基于ρ的中間設(shè)備對(duì)接的服務(wù),以在基于ρ的微處理器上執(zhí)行的框圖;圖2B是根據(jù)本發(fā)明的一個(gè)實(shí)施例示出基于ρ的微處理器的內(nèi)部結(jié)構(gòu)框圖;圖3A是示出根據(jù)本發(fā)明一個(gè)實(shí)施例形成的一部分ρ-計(jì)算(它是進(jìn)程程序設(shè)計(jì)語言)的文字圖;圖3B是根據(jù)本發(fā)明一個(gè)實(shí)施例示出ρ-計(jì)算反射屬性的圖示圖;圖4A是根據(jù)本發(fā)明一個(gè)實(shí)施例示出一部分ρ-計(jì)算(它是進(jìn)程程序設(shè)計(jì)語言,其中進(jìn)程是分類的)的文字圖;
      圖4B是根據(jù)本發(fā)明一個(gè)實(shí)施例示出對(duì)于使用類型的ρ-計(jì)算反射屬性的約束的圖示圖。
      圖5A是根據(jù)本發(fā)明一個(gè)實(shí)施例示出基于ρ-計(jì)算的一部分機(jī)器計(jì)算的文字圖;圖5B是根據(jù)本發(fā)明一個(gè)實(shí)施例示出對(duì)于使用語法樹的ρ-計(jì)算反射屬性的約束的圖示圖;圖6A是根據(jù)本發(fā)明一個(gè)實(shí)施例示出用于實(shí)現(xiàn)復(fù)制服務(wù)的ρ-計(jì)算程序的文字圖;圖6B是根據(jù)本發(fā)明一個(gè)實(shí)施例動(dòng)態(tài)示出在圖6A靜態(tài)示出的復(fù)制服務(wù)的圖示圖;圖7A是根據(jù)本發(fā)明一個(gè)實(shí)施例示出用于實(shí)現(xiàn)創(chuàng)建新名稱的ρ-計(jì)算服務(wù)的文字圖;圖7B是根據(jù)本發(fā)明一個(gè)實(shí)施例動(dòng)態(tài)示出在圖7A靜態(tài)示出的名稱服務(wù)的圖示圖;圖8A-8R是示出根據(jù)用于編譯ρ-計(jì)算服務(wù)或執(zhí)行ρ-計(jì)算服務(wù)的本發(fā)明形成的示例方法的流程圖。
      具體實(shí)施例方式
      本發(fā)明的各實(shí)施例提供稱作為ρ-計(jì)算的反射進(jìn)程算法,便于在反射進(jìn)程算法級(jí)別的進(jìn)程串行化。由于其反射屬性而得名的反射進(jìn)程算法可用于具有有限資源的計(jì)算系統(tǒng)上。諸如π計(jì)算的先前的進(jìn)程計(jì)算缺少表達(dá)能力來管理會(huì)引起系統(tǒng)失敗的進(jìn)程無限制組合及名稱創(chuàng)建??墒沟梅瓷溥M(jìn)程計(jì)算對(duì)諸如存儲(chǔ)器和帶寬的資源是敏感的,由此便于其用作機(jī)器級(jí)別的程序設(shè)計(jì)語言。反射進(jìn)程計(jì)算使計(jì)算實(shí)體顯示出雙重特性??墒姑Q變?yōu)檫M(jìn)程,而使進(jìn)程變?yōu)槊Q。這樣,反射進(jìn)程計(jì)算表示了計(jì)算實(shí)體動(dòng)態(tài)特性和靜態(tài)特性的對(duì)應(yīng)關(guān)系。當(dāng)計(jì)算實(shí)體是靜態(tài)時(shí)(如通過編譯或串行化),其程序可由其他程序修改或進(jìn)行存儲(chǔ),而當(dāng)它再變?yōu)閯?dòng)態(tài)時(shí),它通過演化或引發(fā)其他進(jìn)程的演化來參與與其他進(jìn)程的交互。
      圖2A示出根據(jù)基于ρ的微處理器200的計(jì)算設(shè)備。術(shù)語“微處理器”意為包括中央處理單元、數(shù)字信號(hào)處理器、場(chǎng)可編程門陣列或任何可編程為實(shí)現(xiàn)算術(shù)、邏輯和判決處理的集成電路。基于ρ的微處理器200是可命令實(shí)現(xiàn)各種函數(shù)(諸如數(shù)據(jù)傳輸、算術(shù)、邏輯和判決做出)的設(shè)備。基于ρ的微處理器200可看作為單一集成電路上的中央處理單元(CPU)?;讦训奈⑻幚砥?00可具有數(shù)百萬個(gè)或更多的晶體管并處于諸如個(gè)人計(jì)算機(jī)的計(jì)算設(shè)備的核心。當(dāng)電源應(yīng)用于基于ρ的微處理器200并將存儲(chǔ)器件加于基于ρ的微處理器200,就呈現(xiàn)了計(jì)算機(jī)所需的所有部件(不包括輸入/輸出設(shè)備202)。一個(gè)或多個(gè)基于ρ的微處理器200可形成基于ρ的微處理器陣列。在一個(gè)實(shí)施例中,基于ρ的微處理器陣列在單一集成電路上。在另一實(shí)施例中,基于ρ的微處理器陣列在多個(gè)集成電路上;所述多個(gè)集成電路安裝于單塊板上。在再一實(shí)施例中,基于ρ的微處理器陣列在多個(gè)集成電路上;所述多個(gè)集成電路安裝于多塊板上;多塊板置于單個(gè)計(jì)算機(jī)架上。在又一實(shí)施例中,基于ρ的微處理器陣列在多個(gè)集成電路上;所述多個(gè)集成電路安裝于多塊板上;多塊板置于多臺(tái)計(jì)算機(jī)的多個(gè)架上。在附加實(shí)施例中,基于ρ的微處理器陣列包括耦合一個(gè)或多個(gè)微處理器的網(wǎng)絡(luò)。該網(wǎng)絡(luò)選自包括永久連接和暫時(shí)連接的組中。
      輸入/輸出設(shè)備202是硬件部件,它可用于向基于ρ的微處理器200提供數(shù)據(jù)、用于從其中接收數(shù)據(jù)或兩者兼而有之。個(gè)人數(shù)字助理是輸入/輸出設(shè)備的一個(gè)例子。諸如鍵盤或鼠標(biāo)的一些設(shè)備可僅用于輸入。諸如打印機(jī)的其他設(shè)備可僅用于輸出。從基于ρ的微處理器200形成的大多數(shù)設(shè)備不需要稱作為設(shè)備驅(qū)動(dòng)器(使得可進(jìn)行數(shù)據(jù)的發(fā)送和接收)的軟件例程的安裝。存儲(chǔ)器部件204是存儲(chǔ)和檢索信息的設(shè)備。較佳地,存儲(chǔ)器部件204指的是計(jì)算設(shè)備的主存儲(chǔ)器,直接耦合于基于ρ的微處理器200的快速半導(dǎo)體存儲(chǔ)器(RAM)。
      基于ρ的中間設(shè)備206是置于兩類或多類軟件之間的軟件,并在它們之間轉(zhuǎn)換信息?;讦训闹虚g設(shè)備可覆蓋大范圍的軟件并且一般位于服務(wù)208和分散操作系統(tǒng)之間?;讦训闹虚g設(shè)備206包括服務(wù),如名稱服務(wù),它將如下進(jìn)一步詳細(xì)描述來產(chǎn)生新名稱。另一可看作為基于ρ的中間設(shè)備206的軟件部件就是復(fù)制服務(wù)。基于ρ的中間設(shè)備206允許使用π-計(jì)算語言的變量表示的服務(wù)208以更好地在基于ρ的微處理器200上執(zhí)行。
      服務(wù)208是根據(jù)由每一服務(wù)定義的協(xié)議交換消息的自主計(jì)算實(shí)體。服務(wù)可處于計(jì)算系統(tǒng)的本地,也可位于遠(yuǎn)端計(jì)算設(shè)備處。服務(wù)可通過單一信托域訪問,也可通過具有其自身安全策略的另一信托域訪問。服務(wù)208可通過目錄服務(wù)獲取,也可由不是目錄服務(wù)的服務(wù)獲取。服務(wù)208具有統(tǒng)一資源指示符(它組成服務(wù)的唯一指示)可標(biāo)識(shí)的端口。對(duì)服務(wù)的端口賦予行為類型,它由單方契約指定。服務(wù)208的較佳通信機(jī)制是通過可編程的有線端口。如果(服務(wù)的)一個(gè)端口的行為類型與(另一服務(wù)的)另一端口關(guān)的行為類型兼容,則有線端口是可能的。當(dāng)端口是互相編程連線的,服務(wù)208通過互相發(fā)送消息進(jìn)行通信。簡(jiǎn)而言之,單方契約是以語言來表示的,如π-計(jì)算的變量,指定流進(jìn)或流出服務(wù)208的消息順序。例如,文件可以是服務(wù)。只讀文件單方契約可包括以下行為表示REC F(read.F+drop).0,而讀寫文件的單方契約可具有以下行為表示REC F(read.F+write.F+drop).0。在對(duì)行為表示進(jìn)行語法分析中,項(xiàng)REC F指示行為階段F上的遞歸行為階段F指示括號(hào)對(duì)中的行為表示;動(dòng)詞“read”指示讀操作;句號(hào)“.”指一種順序,其中在句號(hào)之前的行為階段正發(fā)生,而在句號(hào)之后的行為階段將隨后發(fā)生;加號(hào)“+”指示一個(gè)或多個(gè)行為階段之間的選擇;動(dòng)詞“write”指示寫操作;動(dòng)詞“drop”指示兩個(gè)服務(wù)之間通信的終止;而零符號(hào)(“0”)指行為表示的終止。
      圖2B更詳細(xì)地示出包括基于ρ的微處理器200內(nèi)部結(jié)構(gòu)的一部分部件。每個(gè)部件較佳地表示為通過端口通信的ρ進(jìn)程(每一端口實(shí)際由一個(gè)方塊表示)?;讦训奈⑻幚砥?00有五個(gè)主要部件寄存器陣列204、208、210;定時(shí)和控制單元214;算術(shù)和邏輯單元206;指令寄存器和解碼器212;以及到外部世界216、218的總線連接。當(dāng)基于ρ的微處理器200執(zhí)行ρ指令時(shí),它經(jīng)過五個(gè)一般步驟。首先,定時(shí)和控制單元214從存儲(chǔ)器檢索ρ指令,例如組成并行運(yùn)行的兩個(gè)進(jìn)程的ρ指令。第二,定時(shí)和控制單元214將ρ指令解碼為控制基于ρ的微處理器200的電信號(hào)。第三,定時(shí)和控制單元214獲取數(shù)據(jù)(兩個(gè)名稱兩個(gè)進(jìn)程的解釋)。第四,算術(shù)和邏輯單元206進(jìn)行指定操作(通過兩個(gè)名稱的逆解釋組成兩個(gè)進(jìn)程)。第五,定時(shí)和控制單元214將結(jié)果(通過解釋所述組成的兩個(gè)進(jìn)程的組成)保存在寄存器陣列204、208、210中的寄存器中。
      基于ρ的微處理器200包括各種用于保存暫時(shí)數(shù)據(jù)、存儲(chǔ)器地址、指令和有關(guān)基于ρ的微處理器200狀態(tài)的信息的內(nèi)部寄存器。例如,指令寄存器212用于保存基于ρ的微處理器200當(dāng)前執(zhí)行的指令。來自指令寄存器212的解碼指令控制通過定時(shí)和控制單元214和到外部世界的管腳控制基于ρ的微處理器200的剩余部分、存儲(chǔ)器和I/O。指令寄存器212是具有與定時(shí)和控制單元214(它是具有其自身端口的另一進(jìn)程)進(jìn)行通信的一個(gè)或多個(gè)端口的進(jìn)程。指令寄存器212較佳地與內(nèi)部數(shù)據(jù)總線202(它也可表示為具有其自身端口的進(jìn)程)進(jìn)行通信。內(nèi)部數(shù)據(jù)總線202用于將信息傳入I/O中的存儲(chǔ)器或從其傳出信息。較佳地,內(nèi)部數(shù)據(jù)總線202的總線是能夠雙向傳送信息的雙向線。狀態(tài)寄存器208(它也通過端口進(jìn)行通信)包括暫態(tài)寄存器,用于保存來自算術(shù)邏輯單元206(它也通過端口進(jìn)行通信)的存儲(chǔ)器的信息。到算術(shù)邏輯單元206的其他輸入來自累加器204(使用端口進(jìn)行通信)。狀態(tài)寄存器208包括標(biāo)志寄存器,用于指示算術(shù)邏輯單元206的操作。狀態(tài)寄存器208還包括用于存儲(chǔ)信息的通用寄存器。累加器204用于在幾乎由算術(shù)邏輯單元206實(shí)現(xiàn)的每次算術(shù)和邏輯操作之后累加應(yīng)答。人們可認(rèn)為累加器204是應(yīng)答寄存器,因?yàn)橥ǔT谶@里發(fā)現(xiàn)應(yīng)答。累加器204和狀態(tài)寄存器208耦合于內(nèi)部數(shù)據(jù)總線202用于發(fā)送和接收信息。程序計(jì)數(shù)器210(其通信通過端口發(fā)生)也耦合于內(nèi)部數(shù)據(jù)總線202,程序計(jì)數(shù)器210的目的是為了由基于ρ的微處理器200用于定位待執(zhí)行的下一指令。程序計(jì)數(shù)器210允許基于ρ的微處理器200執(zhí)行來自存儲(chǔ)器的下一指令?;讦训奈⑻幚砥?00包括地址緩沖器218和數(shù)據(jù)緩沖器216,用于將信息緩沖入或出地址總線(未示出)和數(shù)據(jù)總線(未示出)。
      根據(jù)本發(fā)明各實(shí)施例使用的術(shù)語“進(jìn)程”意為具有通過進(jìn)行操作來進(jìn)行演化或允許其他進(jìn)程演化的能力的一個(gè)或多個(gè)計(jì)算實(shí)體的動(dòng)態(tài)表示。換言之,術(shù)語“進(jìn)程”表示計(jì)算實(shí)體的雙重特性中的一個(gè)。當(dāng)計(jì)算實(shí)體是靜態(tài)的時(shí),可對(duì)其進(jìn)行檢查,如通過觀看程序。當(dāng)計(jì)算實(shí)體是移動(dòng)的時(shí)(作為進(jìn)程),它是不可見的,但其行為可由根據(jù)本發(fā)明各實(shí)施例形成的ρ-計(jì)算語言300表示和驗(yàn)證。見圖3A?;讦训挠?jì)算語言300包括語法、結(jié)構(gòu)全等的規(guī)則和操作語義的規(guī)則。語言300的語法是定義方法的規(guī)則的系統(tǒng),其中進(jìn)程和名稱的語法單元放在一起以形成可允許的程序設(shè)計(jì)聲明(statement)。換言之,除非用語言300的語法正確表示,否則就不能在其他事件之間傳送概念,如解釋進(jìn)程以獲取名稱。一旦正確形成表示,語義的規(guī)則就和具有含義的表示相聯(lián)系。由于進(jìn)程是動(dòng)態(tài)的,因此語言300使用操作語義來將含義耦合于進(jìn)程。換言之,通過操作和與其它進(jìn)程交互,進(jìn)程進(jìn)行演化。對(duì)語言300的表示含義的理解直接與理解其操作相關(guān)。結(jié)構(gòu)全等的規(guī)則允許語言300的操作語義進(jìn)行簡(jiǎn)化,其中可把一種表示看作為另一表示。這樣,可將操作語義規(guī)則的數(shù)量保持較少量,由于這些規(guī)則可應(yīng)用于ρ-計(jì)算語言300的表示的排列。ρ-計(jì)算語言300的語法單元302-314的每一個(gè)可單獨(dú)使用或進(jìn)行排列組合以表示進(jìn)程中計(jì)算的細(xì)微差別。ρ-計(jì)算語言300的語法規(guī)則參考圖3A進(jìn)行描述;結(jié)構(gòu)全等規(guī)則參考圖8F-8H進(jìn)行描述;而操作語義規(guī)則參考圖8J-8R進(jìn)行描述。
      使用ρ-計(jì)算語言300表示進(jìn)程和名稱(較佳地,在這之后將它們置于ρ-服務(wù)中)。行302描述了進(jìn)程“P∷=0”的一個(gè)定義,其中符號(hào)P指進(jìn)程;符號(hào)“∷=”指在其左手邊的項(xiàng)定義將要開始;而語義單元“0”指進(jìn)程是非活動(dòng)的或者是終止的。行304定義了進(jìn)程的另一語義單元,由符號(hào)P“X[X]”表示;在行214描述了符號(hào)X,它指出在ρ-計(jì)算語言300中的名稱;符號(hào)X[X]指諸如由符號(hào)X表示的名稱的計(jì)算實(shí)體可通過由符號(hào)X表示的名稱發(fā)送。行306提供進(jìn)程P的另一定義。行306的語義單元描述了輸入操作“X(x).P”,其中符號(hào)X指在行314描述的名稱;符號(hào)“X(X)”指一操作,它可通過由X表示的名稱接收任何名稱,并且作為由P表示的另一進(jìn)程繼續(xù),而將所接收的名稱替換括號(hào)(X)中的名稱。在行308將由P表示的進(jìn)程的另一語義單元表示為“LIFT X.P”,其中符號(hào)X指如行314所述的名字,而符號(hào)P指由語義單元302-312定義的進(jìn)程;而語義單元“LIFT X.P”指發(fā)送由符號(hào)P表示的進(jìn)程的解釋或?qū)⑵溆糜谟煞?hào)X表示的名稱。LIFT操作符在將進(jìn)程具體化為名稱用于通信之前,允許進(jìn)程的動(dòng)態(tài)組合。行310為由符號(hào)P“P|P”表示的進(jìn)程提供另一語義單元,其中符號(hào)P表示由語義單元302-312定義的進(jìn)程;而豎線“|”指兩個(gè)進(jìn)程的組合,而每個(gè)進(jìn)程獨(dú)立進(jìn)行并通過共享名稱交互(換言之,兩個(gè)進(jìn)程并行運(yùn)行或互相并發(fā)運(yùn)行)。行312示出的語義單元“&gt;X&lt;”指由符號(hào)X表示的名稱的逆解釋。行312示出由P表示的進(jìn)程雙重特性的一個(gè)特性,它是由符號(hào)X表示的名稱的逆解釋。在行314描述了另一特性,其中將由符號(hào)X表示的名稱定義為由符號(hào)P表示的進(jìn)程&lt;P&gt;的解釋。在ρ-計(jì)算語言300中進(jìn)程和名稱的反射特性展現(xiàn)了計(jì)算實(shí)體的雙重性,它可以既是進(jìn)程又是名稱。
      圖3B圖示示出了計(jì)算實(shí)體316的雙重特性。計(jì)算實(shí)體316是進(jìn)程316A,它使用ρ-計(jì)算語言300的語義單元302-312表示。如前所述,進(jìn)程316A表示計(jì)算實(shí)體316的動(dòng)態(tài)特性。計(jì)算實(shí)體316的靜態(tài)特性是名稱316B,它使用ρ-計(jì)算語言300行314所示的語義單元表示。一旦進(jìn)程316A解釋或變換為名稱316B,這樣的名稱就在兩個(gè)進(jìn)程的通信會(huì)話中通過端口322發(fā)送。見在行304表示的語義單元X[X]。一旦在端口322的另一端接收名稱316B(為了區(qū)分傳送后的名稱316B,用了新的標(biāo)號(hào)318A),可對(duì)名稱318A進(jìn)行數(shù)學(xué)逆解釋以獲取進(jìn)程318B,它等同于進(jìn)程316A??偟膩碚f,計(jì)算實(shí)體318既是名稱318A又是進(jìn)程318B。
      基于ρ-計(jì)算語言300的變體ρ-計(jì)算語言400允許對(duì)使用分類進(jìn)程的名稱產(chǎn)生的控制。見圖4A。變體ρ-計(jì)算語言400包括類似于結(jié)合ρ-計(jì)算語言300所描述的語義單元的許多語義單元。例如,由符號(hào)P表示的進(jìn)程包括由語義單元“0.”表示的非活動(dòng)進(jìn)程或終止的進(jìn)程。見行402。行404描述了由語義單元“X[Y]”表示的輸出進(jìn)程;其中在行414定義符號(hào)X;在行416定義符號(hào)Y;而語義單元“X[Y]”指通過由符號(hào)X表示的名稱發(fā)送由符號(hào)Y表示的名稱。行406描述了語義單元“X(Z).P”;其中符號(hào)X表示名稱,如行414所定義的;符號(hào)Z表示在行418描述的另一名稱;符號(hào)P表示一進(jìn)程,在行402-412描述其定義;而語義單元“X(Z).P”指由符號(hào)X表示的名稱可接收任何其他名稱,在這之后,將執(zhí)行由符號(hào)P表示的進(jìn)程,而將所接收的名稱替換由符號(hào)Z表示的名稱。在行408描述的語義單元“LIFTX.P”提供對(duì)由符號(hào)P表示的進(jìn)程的另一定義。事實(shí)上,行408描述了由P表示的進(jìn)程可被翻轉(zhuǎn)或?qū)⑵溆糜谟煞?hào)X表示的名稱。在行410將進(jìn)程的并發(fā)執(zhí)行或兩個(gè)并行運(yùn)行的進(jìn)程的組合描述為“P|P”,其中在豎線“|”任一邊的符號(hào)P表示并行運(yùn)行的兩個(gè)進(jìn)程。行412描述了語義單元&gt;X&lt;,它對(duì)由符號(hào)X表示的名稱進(jìn)行逆解釋以獲取由符號(hào)P表示的進(jìn)程。語義單元“&lt;P&gt;”描述了由符號(hào)P表示的進(jìn)程的解釋,在這之后,獲取由符號(hào)X表示的名稱。見行414。行416的語義單元&lt;P&gt;,PT描述了由符號(hào)Y表示的名稱的產(chǎn)生類似于行414。然而,約束由符號(hào)Y表示的名稱的產(chǎn)生,使得由符號(hào)P表示的進(jìn)程必須是由符號(hào)T表示的特定類型的單元。一種合適的類型T包括選擇模式識(shí)別器進(jìn)程的類型,但也可使用其它合適類型。符號(hào)冒號(hào)“”指由符號(hào)P表示的進(jìn)程屬于由符號(hào)T表示的特定類型,如果不是這樣由符號(hào)P表示的進(jìn)程的解釋&lt;P&gt;是不可能的。類似地,在行418用語義單元&lt;P&gt;,PU約束由符號(hào)Z表示的名稱。通過對(duì)由符號(hào)P表示的進(jìn)程&lt;P&gt;進(jìn)行解釋產(chǎn)生由符號(hào)Z表示的名稱,但這樣的進(jìn)程P必須是由符號(hào)U表示的類型的單元。一種合適的類型U包括選擇表示值的進(jìn)程的類型,但類型U并不限于這樣的進(jìn)程,也可使用其它合適的類型。由符號(hào)T、U表示的類型允許對(duì)演化為名稱(在基于進(jìn)程的環(huán)境中它們是通信的基元)的進(jìn)程進(jìn)行精密的控制。
      圖4B時(shí)除了兩個(gè)計(jì)算實(shí)體420、422。計(jì)算實(shí)體422包括進(jìn)程422A,但是如果進(jìn)程422A是適用于解釋的類型,則可將其解釋以變換為名稱422B。名稱422B可通過端口424發(fā)送。(為了簡(jiǎn)化描述,當(dāng)在端口424一端接收名稱422B,則由新的標(biāo)號(hào)428B指代名稱422B。)。當(dāng)接收名稱428B時(shí),將名稱428B逆解釋以獲取進(jìn)程428B,它等同于原始進(jìn)程422A。計(jì)算實(shí)體420包括進(jìn)程420A,但不可構(gòu)造相應(yīng)的名稱,因?yàn)檫M(jìn)程420A不是可演化為名稱的進(jìn)程類型的單元。這樣,禁止進(jìn)程420A的解釋,因?yàn)楦鶕?jù)變體ρ-計(jì)算語言400,不允許進(jìn)程420A所屬的類型構(gòu)造名稱。
      圖5A示出了基于ρ-計(jì)算語言300、400的另一變體ρ-計(jì)算語言500的一部分。變體ρ-計(jì)算語言500的許多語義單元類似于ρ-計(jì)算語言300、400。例如,行502定義了非活動(dòng)或停止的進(jìn)程,其類似于行302、402所定義的。行504定義輸出進(jìn)程。其類似于行304、404所定義的。行506定義了后跟進(jìn)程P的輸入進(jìn)程,其類似于行306、406所定義的。行508定義了翻轉(zhuǎn)操作,其類似于行308、408所定義的。行510定義相互并行運(yùn)行的進(jìn)程的組合,其類似于行310、410所定義的。行512定義了對(duì)名稱進(jìn)行逆解釋以獲取由P表示的進(jìn)程,其類似于行312、412所定義的。行514將由X表示的名稱定義為“&lt;P&gt;,#(P)≤K”;其中符號(hào)P表示由語義單元502-512定義的進(jìn)程;符號(hào)“&lt;P&gt;”指由符號(hào)P表示的進(jìn)程的解釋;符號(hào)“,”指對(duì)于由符號(hào)P表示的進(jìn)程的解釋的約束就要開始;符號(hào)“#”指將進(jìn)程作為變?cè)?argument)并產(chǎn)生進(jìn)程語義樹尺寸的函數(shù);符號(hào)“#(P)”指執(zhí)行由符號(hào)P表示的進(jìn)程的語義樹尺寸;符號(hào)“≤”指由符號(hào)P表示的進(jìn)程的語義樹尺寸必須小于或等于特定常數(shù);而符號(hào)K表示一常數(shù),它是允許進(jìn)行解釋的由符號(hào)P表示的進(jìn)程的語義樹最大尺寸。行514允許變體ρ-計(jì)算語言500約束、限定或限制可進(jìn)行解釋以產(chǎn)生名稱的進(jìn)程尺寸,從而參與操作或與其他進(jìn)程的交互。
      圖5B實(shí)質(zhì)示出變體ρ-計(jì)算語言500用于限制名稱產(chǎn)生的約束。圖5B示出了兩個(gè)計(jì)算實(shí)體520、522及其對(duì)應(yīng)語義樹520C、522C。計(jì)算實(shí)體520具有進(jìn)程520A,但其被禁止構(gòu)造相應(yīng)的名稱520B。計(jì)算實(shí)體522包括處理522A,但其具有構(gòu)造相應(yīng)名稱522B的自由。每個(gè)語義樹520C、522C是分級(jí)結(jié)構(gòu),其中節(jié)點(diǎn)表示操作,而節(jié)點(diǎn)的孩子表示操作的變?cè)?。例如,語義樹520C的節(jié)點(diǎn)520E存儲(chǔ)分配符“=”。節(jié)點(diǎn)520E的孩子包括變量ACCELERATION 520D和除符號(hào)“/”520H,除符號(hào)“/”520H形成另一節(jié)點(diǎn)520H,它有兩個(gè)孩子。MILES 520F是節(jié)點(diǎn)520H的一個(gè)孩子,另一個(gè)孩子是HOUR 520G。HOUR 520G耦合于另一節(jié)點(diǎn)520I,它存儲(chǔ)除操作“/”。節(jié)點(diǎn)520I還有另一個(gè)孩子HOUR 520J。
      對(duì)于語義樹522C,節(jié)點(diǎn)522E存儲(chǔ)分配符“=”。節(jié)點(diǎn)522E的孩子包括變量VELOCITY 522D。節(jié)點(diǎn)522H是節(jié)點(diǎn)522E的孩子并存儲(chǔ)除操作“/”。節(jié)點(diǎn)522H有兩個(gè)孩子,變量MILES 522F和變量HOUR 522G。語義樹522C的尺寸小于語義樹520C的尺寸。根據(jù)行514定義的約束,計(jì)算實(shí)體522解釋進(jìn)程522A以構(gòu)造名稱522B,因?yàn)檎Z義樹522C在特定閾值以下。這不像計(jì)算實(shí)體520,其進(jìn)程520A具有尺寸超過閾值的語義樹。
      圖6A示出了使用變體ρ-計(jì)算語言300-500其中一個(gè)形成復(fù)制服務(wù)600。在傳統(tǒng)的π-計(jì)算算法中,符號(hào)“!P”指相互并行運(yùn)行的進(jìn)程的無限組合。對(duì)于諸如微處理器的具有限資源集成電路來說,在其上執(zhí)行這樣的無限計(jì)算實(shí)體理論上是不可行的。本發(fā)明的各實(shí)施例從ρ-計(jì)算語言300-500中去除了這樣的基元。通過將服務(wù)寫入ρ-計(jì)算語言300-500對(duì)無限組合的構(gòu)思進(jìn)行仿真。復(fù)制服務(wù)600就是一個(gè)例子。行602描述了將無限組合“!P”算術(shù)定義為“LIFTX.(X(Y).(&gt;Y&lt;|X[Y])|P)|X(Z).(&gt;Z&lt;|X[Z])”。算術(shù)項(xiàng)LIFT X.(X(Y).(&gt;Y&lt;|X[Y])|P)是與由算術(shù)項(xiàng)X(Z).(&gt;Z&lt;|X[Z])表示的另一進(jìn)程并行運(yùn)行的進(jìn)程。
      圖6B動(dòng)態(tài)示出了何時(shí)實(shí)行復(fù)制服務(wù)600。進(jìn)程P1 606指算術(shù)項(xiàng)(X(Y).(&gt;Y&lt;|X[Y])|P),其中項(xiàng)X(Y)指可在信道X接收名稱,在這之后將該名稱替換名稱Y;在進(jìn)程X(Y)已操作后,進(jìn)程&gt;Y&lt;將與進(jìn)程X[Y]并行運(yùn)行;項(xiàng)&gt;Y&lt;指將名稱Y逆解釋以獲取與進(jìn)程X[Y]并行運(yùn)行的進(jìn)程;項(xiàng)X[Y]指名稱Y可沿著由名稱X表示的信道發(fā)送;而進(jìn)程組合(X(Y).&gt;Y&lt;|X[Y])與另一進(jìn)程P并行運(yùn)行。
      進(jìn)程604 LIFTX.(X(Y).(&gt;Y&lt;|X[Y])|P)可數(shù)學(xué)地簡(jiǎn)略為X[&lt;P1&gt;],其中項(xiàng)P1是進(jìn)程組合(X(Y).(&gt;Y&lt;|X[Y])|P)。算術(shù)項(xiàng)X[&lt;P1&gt;]意為對(duì)進(jìn)程P1進(jìn)行解釋并將其用于由名稱X表示的端口。當(dāng)解釋進(jìn)程P1并將其用于名稱X時(shí),進(jìn)程X(Z)接收項(xiàng)&lt;P1&gt;并將其替換名稱Z。進(jìn)程X(Z)的分解包括項(xiàng)&lt;(X(Y).(&gt;Y&lt;|X[Y])|P)&gt;。當(dāng)進(jìn)程X(Z)608已操作時(shí),進(jìn)程&gt;Z&lt;610變成活動(dòng)的。進(jìn)程&gt;Z&lt;610指將名稱Z逆解釋以重新組成進(jìn)程P1 606,它可數(shù)學(xué)描述為(X(Y).(&gt;Y&lt;|X[Y])|P)?,F(xiàn)在進(jìn)程(X(Y).(&gt;Y&lt;|X[Y])|P)將與另一進(jìn)程X(Z)612并行運(yùn)行。進(jìn)程X(Z)612類似于進(jìn)程LIFT X.(X(Y).(&gt;Y&lt;|X[Y])|P)604的簡(jiǎn)略,其中名稱Z是對(duì)進(jìn)程P1 606的解釋的替換并將名稱Z在稱為X的端口發(fā)送。當(dāng)進(jìn)程&gt;Z&lt;610的項(xiàng)X(Y)獲取由名稱X輸出的名稱Z時(shí),就可實(shí)現(xiàn)進(jìn)程的復(fù)制或無限組合。進(jìn)程(X(Y).(&gt;Y&lt;|X[Y])|P)的組合中一系列操作和交互再發(fā)生一次,就可模擬π-計(jì)算的復(fù)制基元。
      圖7A是說明名稱服務(wù)700。將名稱服務(wù)700寫入ρ-計(jì)算語言300-500的其中一個(gè)。名稱服務(wù)700示出了以下便利,即可將創(chuàng)建新名稱置于服務(wù)中,而不是語言的基元中,從而避免或減少π-計(jì)算中實(shí)現(xiàn)新名稱的問題。項(xiàng)N(I,X,F(xiàn),R)指名稱服務(wù)700的標(biāo)記702。為標(biāo)記702提供四個(gè)名稱I,X,F(xiàn)和R。第一名稱在端口I發(fā)送;其余名稱在端口X上發(fā)送;而端口F用于接收區(qū)別于提供給名稱服務(wù)700的所有名稱的新名稱。
      行704定義了被加數(shù)I(Y).(LIFT R.(Y[&lt;0&gt;])|N(I,X,F(xiàn),R)),它描述了名稱服務(wù)的一個(gè)性能。行704表示對(duì)名稱服務(wù)700初始化性能的操作和交互。行706是另一被加數(shù)X(Y).R(S).(LIFT R.(Y[&lt;0&gt;]|&gt;S&lt;)|N(I,X,F(xiàn),R)),它表示名稱服務(wù)700的主要性能。行708定義了又一被加數(shù)F(B).R(S).LIFTB.(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;),它表示用于將不同于提供給名稱服務(wù)700的其他名稱的名稱產(chǎn)生結(jié)束的操作和交互的進(jìn)程。
      圖7B實(shí)質(zhì)示出了名稱服務(wù)700被加數(shù)各部分的操作和交互。名稱服務(wù)700總的由進(jìn)程P1 710表示。進(jìn)程I(Y)712變?yōu)榛顒?dòng)以通過名稱I接收任何名稱并因此將所接收的名稱替換名稱Y。接著,進(jìn)程的組合(LIFTR.Y[&lt;0&gt;]P1)714變?yōu)榛顒?dòng)的。進(jìn)程組合714簡(jiǎn)略為進(jìn)程組合R[&lt;Y[&lt;0&gt;]&gt;]|P1,其中項(xiàng)&lt;0&gt;指非活動(dòng)進(jìn)程0的解釋;項(xiàng)Y[&lt;0&gt;]指將進(jìn)程0的解釋用于名稱Y;項(xiàng)R[&lt;Y[&lt;0&gt;]&gt;]指進(jìn)程Y[&lt;0&gt;]的解釋,并且將這樣的解釋用于名稱R(它表示存儲(chǔ)累加信息的寄存器);而項(xiàng)|P1指進(jìn)程P1 710正與進(jìn)程R[&lt;Y[&lt;0&gt;]&gt;]并行運(yùn)行。進(jìn)程712、714表述了行704描述的被加數(shù)處的名稱服務(wù)700的性能。
      進(jìn)程X(Y)716表示行706示出的被加數(shù)中的第一操作,并指出名稱服務(wù)700的另一性能。項(xiàng)X(Y)指通過端口X接收任何名稱,在這之后將這樣接收的名稱替換名稱Y。在進(jìn)程X(Y)716操作后,激活另一進(jìn)程R(S)718。項(xiàng)R(S)指由名稱R接收任何名稱,在這之后將這樣接收的名稱替換另一名稱S。在進(jìn)程R(S)718操作后,進(jìn)程的另一組合(LIFT R.(Y[&lt;0&gt;]|&gt;S&lt;)|N(I,X,F(xiàn),R))720變?yōu)榛顒?dòng)的。進(jìn)程組合720可數(shù)學(xué)地簡(jiǎn)略為另一進(jìn)程組合R[&lt;(Y[&lt;0&gt;]|&gt;S&lt;)&gt;]|P1,其中項(xiàng)&lt;0&gt;指非活動(dòng)進(jìn)程0的解釋;項(xiàng)Y[&lt;0&gt;]指在端口Y發(fā)送項(xiàng)&lt;0&gt;;項(xiàng)|指與另一進(jìn)程并行執(zhí)行進(jìn)程Y[&lt;0&gt;];項(xiàng)&gt;S&lt;指名稱S正被逆解釋;項(xiàng)&lt;(Y[&lt;0&gt;]|&gt;S&lt;)&gt;指進(jìn)程組合(Y[&lt;0&gt;]|&gt;S&lt;)的解釋;項(xiàng)R[&lt;(Y[&lt;0&gt;]|&gt;S&lt;)&gt;]|P1指將進(jìn)程組合(Y[&lt;0&gt;]|&gt;S&lt;)的解釋用于名稱R;而項(xiàng)|P1指名稱服務(wù)700正與進(jìn)程R[&lt;(Y[&lt;0&gt;]|&gt;S&lt;)&gt;]|P1并行運(yùn)行。進(jìn)程716、718和720是行706的被加數(shù)的部分項(xiàng),該被加數(shù)描述了名稱服務(wù)700的主要性能。
      進(jìn)程F(B)722允許通過端口F接收任何名稱,在這之后將所接收的名稱替換名稱B。名稱B表示回叫端口,從該端口可獲取與名稱服務(wù)700存在的其他名稱不同的名稱。在進(jìn)程F(B)722已操作后,另一進(jìn)程R(S)724變?yōu)榛顒?dòng)的。進(jìn)程R(S)724通過名稱R接收任何名稱,在這之后將所接收的名稱替換名稱S。進(jìn)程R(S)724指的是存儲(chǔ)與關(guān)于新名稱的累加信息相關(guān)的擦除信息的寄存器。在進(jìn)程R(S)724已操作后,另一進(jìn)程LIFT B.(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)726變?yōu)榛顒?dòng)的。進(jìn)程LIFTB.(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)726可縮略為進(jìn)程B[&lt;(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)&gt;],其中項(xiàng)0指非活動(dòng)進(jìn)程或進(jìn)程的終止;項(xiàng)&lt;0&gt;指非活動(dòng)進(jìn)程0的解釋;項(xiàng)&lt;0&gt;[&lt;0&gt;]指從非活動(dòng)進(jìn)程0的解釋中獲取的名稱用作端口以輸出非活動(dòng)進(jìn)程0的解釋。項(xiàng)(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)指進(jìn)程&lt;0&gt;[&lt;0&gt;]正與另一進(jìn)程&gt;S&lt;并行運(yùn)行;項(xiàng)&gt;S&lt;指正對(duì)名稱S進(jìn)行逆解釋;而項(xiàng)B[&lt;(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)&gt;]指將進(jìn)程組合(&lt;0&gt;[&lt;0&gt;]|&gt;S&lt;)的解釋用于端口B。
      圖8A-8R示出了編譯或執(zhí)行ρ-計(jì)算程序的方法800,如復(fù)制服務(wù)600或名稱服務(wù)700。在ρ-計(jì)算程序的分析中,方法800執(zhí)行管理ρ表示的結(jié)構(gòu)和內(nèi)容的語義規(guī)則集。還由方法800執(zhí)行管理ρ表示的結(jié)構(gòu)全等的相等規(guī)律集。諸如語言300-500的ρ-計(jì)算語言還包括管理ρ表示含義的操作語義規(guī)則集,根據(jù)ρ-計(jì)算語言300-500的語法規(guī)則集正確地形成ρ表示的含義。為了清楚起見,方法800的以下描述引用圖3A-5A中示出ρ-計(jì)算語言300-500相關(guān)的各單元。
      離開本主題,方法800形成編譯器的一部分,該編譯器較佳地用于同步基于ρ的微處理器200或基于ρ的微處理器陣列的部件。該同步顯性地由編譯器控制,而不是依賴于由微處理器提供的隱性控制。當(dāng)代的基于CISC的微處理器依賴于電路,該電路提供關(guān)于接著可能執(zhí)行的指令的猜測(cè)以加速程序的執(zhí)行。例如,用于一些基于CISC的微處理器的技術(shù),稱作為預(yù)取的指令猜測(cè)是否在程序中進(jìn)行分支,并從合適位置取得可執(zhí)行代碼。當(dāng)執(zhí)行分支指令,該指令和下一執(zhí)行的指令存儲(chǔ)于緩沖器中。該信息用于預(yù)測(cè)指令下一執(zhí)行時(shí)間所分支的路徑。如果預(yù)測(cè)是正確的,就會(huì)出色完成該操作。當(dāng)預(yù)測(cè)是不正確的時(shí)候,執(zhí)行分支會(huì)引起未得到高速緩沖的干擾或流水線中斷,從而系統(tǒng)會(huì)由于需要檢索下一指令而徹底變慢。當(dāng)執(zhí)行程序不是順序的而是異步的并需要并發(fā)性時(shí),該問題更嚴(yán)重了。
      本發(fā)明各實(shí)施例的編譯器減少了基于CISC的微處理器的預(yù)測(cè)的需要。本發(fā)明各實(shí)施例的編譯器允許在單個(gè)集成電路或多個(gè)集成電路上的一個(gè)或多個(gè)微處理器上顯性同步模型的創(chuàng)建。本發(fā)明各實(shí)施例的編譯器編譯以數(shù)學(xué)語言編寫的程序,如ρ-計(jì)算語言300-500,它區(qū)別于匯編語言。匯編語言使用縮寫和助記代碼,其中每一聲明對(duì)應(yīng)單條機(jī)器指令。ρ-計(jì)算語言300-500提供從匯編語言演化的基本機(jī)器語言之上的抽象級(jí)別。ρ-計(jì)算語言300-500的聲明定義了限定語言結(jié)構(gòu)的語法和語義規(guī)則集??墒褂忙?計(jì)算語言300-500表示進(jìn)程和名稱的協(xié)作的排列差別以及進(jìn)程的演化。這些表示的差別可由ρ-計(jì)算語言300-500的算法合適地保存,使得逐漸執(zhí)行程序員的意圖,而不在對(duì)諸如匯編語言或機(jī)器語言的低級(jí)語言的編譯過程中變?nèi)?。在傳統(tǒng)的程序設(shè)計(jì)語言中,由于將程序從高級(jí)語言編譯為低級(jí)語言,程序員意圖的復(fù)原會(huì)變得淡化。高級(jí)語言通常比低級(jí)語言更有表現(xiàn)力,因?yàn)楦呒?jí)語言包含更多的信息,它在程序編譯或鏈接過程中會(huì)被不希望地去除。
      轉(zhuǎn)到圖8A,從開始框,方法800進(jìn)行在接續(xù)端(“端點(diǎn)A”)和出口端(“端點(diǎn)B”)之間定義的一組方法步驟802。方法步驟組802對(duì)管理ρ聲明的結(jié)構(gòu)和內(nèi)容的語法規(guī)則運(yùn)行ρ-計(jì)算程序。從端點(diǎn)A(圖8B),方法800進(jìn)到框808,其中方法800從ρ-計(jì)算程序或服務(wù)中提取ρ表示(∏)。接著,在判決框810,進(jìn)行測(cè)試以確定ρ表示是否是“0”的形式。如果在判決框測(cè)試的結(jié)果為是,則方法進(jìn)到框812,其中ρ表示為表示非活動(dòng)或停止操作的ρ進(jìn)程。隨后方法繼續(xù)到另一接續(xù)端(“端點(diǎn)A4”)。如果在判決框810測(cè)試的結(jié)果為否,則方法800進(jìn)到另一判決框814,其中進(jìn)行另一測(cè)試以確定ρ表示是否是X[Y]的形式。如果在判決框814測(cè)試的結(jié)果為是,則ρ表示為表示輸出操作的ρ進(jìn)程,其中將名稱Y用于名稱X。隨后方法800進(jìn)到端點(diǎn)A4。如果在判決框814測(cè)試的結(jié)果為否,則方法800繼續(xù)到另一接續(xù)端(“端點(diǎn)A1”)。
      從端點(diǎn)A1(圖8C),方法進(jìn)到判決框818,其中進(jìn)行測(cè)試以確定ρ表示是否是X(Z).P的形式。如果在判決框818測(cè)試的結(jié)果為是,則ρ表示為表示后跟進(jìn)程P的輸入操作的ρ進(jìn)程。換言之,可由名稱X接收任何名稱,在這之后將所接收的名稱替換名稱Z,并且該過程繼續(xù)進(jìn)程P。方法800進(jìn)到端點(diǎn)A4。如果在判決框818測(cè)試的結(jié)果為否,則方法800進(jìn)入判決框822,其中進(jìn)行另一測(cè)試以確定ρ表示是否為L(zhǎng)IFT X.P的形式。如果在判決框822測(cè)試的結(jié)果為是,則ρ表示為表示翻轉(zhuǎn)操作的ρ進(jìn)程。見框824。方法800隨后繼續(xù)到端點(diǎn)A4。如果在判決框822測(cè)試的結(jié)果為否,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)A2”)。
      從端點(diǎn)A2(圖8D),方法800進(jìn)到判決框826,其中進(jìn)行測(cè)試以確定ρ表示是否是P|P的形式。如果在判決框826測(cè)試的結(jié)果為是,則ρ表示為表示與另一進(jìn)程并行運(yùn)行作為組合的進(jìn)程的ρ進(jìn)程。見框828。方法800隨后進(jìn)到端點(diǎn)A4。如果在判決框826測(cè)試的結(jié)果為否,則方法800進(jìn)到另一判決框830,其中進(jìn)行測(cè)試以確定ρ表示是否為&gt;X&lt;的形式。如果在判決框830測(cè)試的結(jié)果為是,則ρ表示為表示名稱X的逆解釋的ρ進(jìn)程。方法800隨后進(jìn)到端點(diǎn)A4。如果在判決框830測(cè)試的結(jié)果為否,則方法繼續(xù)到另一接續(xù)端(“端點(diǎn)A3”)。
      從端點(diǎn)A3(圖8E),方法800進(jìn)到判決框834,其中進(jìn)行測(cè)試以確定ρ表示是否是&lt;P&gt;,#(P)≤K的形式。如果在判決框834測(cè)試的結(jié)果為是,則ρ表示為表示諸如名稱X的名稱的ρ進(jìn)程P的解釋。語法短語“#(P)≤K”指置于名稱產(chǎn)生中ρ進(jìn)程解釋上的約束。一個(gè)合適的約束包括對(duì)特定閾值檢查ρ進(jìn)程P的語義樹尺寸,超過該閾值就可能不能從進(jìn)程P的解釋中產(chǎn)生名稱。其他約束也是可能的,只要約束對(duì)耦合于執(zhí)行ρ進(jìn)程的微處理器的至少一部分有限資源模型化。方法800隨后繼續(xù)到端點(diǎn)A4。如果在判決框834測(cè)試的結(jié)果為否,則方法800繼續(xù)到另一判決框838,其中進(jìn)行測(cè)試以確定ρ表示是否是&lt;P&gt;,PT的形式。如果在判決框838測(cè)試的結(jié)果為是,則ρ表示為由類型T約束的ρ進(jìn)程P的解釋。見框840。使ρ進(jìn)程成為特定類型的成員便于對(duì)可解釋形成名稱的進(jìn)程類型進(jìn)行控制,并因此控制進(jìn)程的通信性能。方法800隨后繼續(xù)到端點(diǎn)A4。如果在判決框838測(cè)試的結(jié)果為否,則方法800也進(jìn)到A4(圖8E)。在判決框842進(jìn)行測(cè)試以確定是否有更多待估計(jì)的ρ表示。如果結(jié)果為否,則方法800繼續(xù)到出口端B。否則,在判決框842進(jìn)行測(cè)試為是,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)A5”)。從端點(diǎn)A5(圖8B),方法800跳回到框808,其中重復(fù)如上所討論的處理步驟。
      從出口端B,方法800繼續(xù)到在接續(xù)端(“端點(diǎn)C”)和出口端(“端點(diǎn)D”)之間定義的一組方法步驟804。方法步驟組804使用一組相等規(guī)律來檢查ρ表示的結(jié)構(gòu)全等。從端點(diǎn)C(圖8F),方法800進(jìn)到框844,其中方法800提取ρ表示。在判決框846進(jìn)行測(cè)試以確定ρ表示是否是&lt;&gt;X&lt;&gt;的形式。如果在判決框846測(cè)試的結(jié)果為是,則方法800推斷ρ表示結(jié)構(gòu)上全等于名稱X。見框848。方法800隨后繼續(xù)到另一接續(xù)端(“端點(diǎn)C3”)。否則,在判決框846進(jìn)行測(cè)試為否,則方法800進(jìn)到判決框850,其中進(jìn)行另一測(cè)試以確定ρ表示是否是P|0的形式。如果在判決框850測(cè)試的結(jié)果為是,則方法800推斷ρ表示結(jié)構(gòu)上全等于進(jìn)程P。方法800隨后進(jìn)入端點(diǎn)C3。否則,在判決框850進(jìn)行測(cè)試為否,則方法進(jìn)到另一接續(xù)端(“端點(diǎn)C1”)。
      從端點(diǎn)C1(圖8G),方法800進(jìn)到判決框854,其中進(jìn)行測(cè)試以確定ρ表示是否是0|P的形式。如果在判決框854測(cè)試的結(jié)果為是,則方法800推斷ρ表示結(jié)構(gòu)上全等于進(jìn)程P。見框856。方法800進(jìn)入端點(diǎn)C3。如果在判決框854測(cè)試的結(jié)果為否,則方法800繼續(xù)以在判決框858執(zhí)行另一測(cè)試,確定ρ表示是否是P0| P1的形式。如果在判決框858測(cè)試的結(jié)果為是,則方法800推斷ρ表示結(jié)構(gòu)上全等于進(jìn)程組合P1|P0。見框860。方法800繼續(xù)到端點(diǎn)C3。如果在判決框858測(cè)試的結(jié)果為否,則方法800繼續(xù)到另一接續(xù)端(“端點(diǎn)C2”)。
      從端點(diǎn)C2(圖8H),方法800繼續(xù)到判決框862,其中進(jìn)行測(cè)試以確定ρ表示是否是(P0|P1)|P2的形式。如果在判決框862測(cè)試的結(jié)果為是,則ρ表示結(jié)構(gòu)上全等于進(jìn)程組合P0|(P1|P2)。方法800繼續(xù)到端點(diǎn)C3。如果在判決框862測(cè)試的結(jié)果為否,則方法800也繼續(xù)到端點(diǎn)C3。從端點(diǎn)C3(圖8I),方法800在判決框866進(jìn)行測(cè)試以確定是否有更多待估計(jì)的ρ表示。如果結(jié)果為否,則方法800繼續(xù)到出口端D。否則,在判決框866測(cè)試的結(jié)果為是,則方法繼續(xù)到另一接續(xù)端(“端點(diǎn)C4”)。從端點(diǎn)C4(圖8F),方法800循環(huán)回到框844,其中重復(fù)以上討論的處理步驟。
      從出口端點(diǎn)D(圖8A),方法800進(jìn)到在接續(xù)端(“端點(diǎn)E”)和出口端(“端點(diǎn)F”)之間定義的一組方法步驟806。方法步驟組806對(duì)操作語義規(guī)則運(yùn)行ρ計(jì)算程序以檢查ρ進(jìn)程表示的含義。從端點(diǎn)E(圖8J),方法800進(jìn)到框868,其中方法800提取用于估計(jì)的ρ表示。方法800進(jìn)到判決框870,其中進(jìn)行測(cè)試以確定ρ表示是否是LIFT X.P的形式。如果在判決框870測(cè)試的結(jié)果為是,則將ρ表示縮略為X[&lt;P&gt;]。隨后方法繼續(xù)到另一接續(xù)端(“端點(diǎn)E11”)。如果在判決框870測(cè)試的結(jié)果為否,則方法800在判決框874進(jìn)行另一測(cè)試,其中確定ρ表示是否是P0|P2的形式。如果在判決框874測(cè)試的結(jié)果為是,則方法繼續(xù)到另一接續(xù)端(“端點(diǎn)E1”)。否則,在判決框874測(cè)試的結(jié)果為否,則方法800進(jìn)入另一接續(xù)端(“端點(diǎn)E2”)。
      從端點(diǎn)E1(圖8K),方法800進(jìn)到判決框876,其中進(jìn)行測(cè)試以確定項(xiàng)P0是否可縮略為項(xiàng)P1。如果結(jié)果為是,則將ρ表示縮略為P1|P2。方法800隨后繼續(xù)到端點(diǎn)E11。否則,在判決框876測(cè)試的結(jié)果為否,則方法800繼續(xù)到端點(diǎn)E2。從端點(diǎn)E2(圖8K),進(jìn)行測(cè)試以確定ρ表示是否是P2的形式。見判決框880。如果在判決框880測(cè)試的結(jié)果為是,則進(jìn)行另一測(cè)試以確定項(xiàng)P2是否結(jié)構(gòu)全等于項(xiàng)P0。見判決框882。如果在判決框882測(cè)試的結(jié)果為是,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)E3”)。如果在判決框880或判決框882測(cè)試的結(jié)果為否,則方法800進(jìn)入另一接續(xù)端(“端點(diǎn)E4”)。
      從端點(diǎn)E3(圖8L),方法800進(jìn)到判決框884,其中進(jìn)行測(cè)試以確定項(xiàng)P0是否可縮略為項(xiàng)P1。如果在判決框884測(cè)試的結(jié)果為是,則在判決框886進(jìn)行另一測(cè)試以確定項(xiàng)P1是否結(jié)構(gòu)全等于項(xiàng)P3。如果在判決框886測(cè)試的結(jié)果為是,則方法800將項(xiàng)P2縮略為項(xiàng)P3。見框888。方法800進(jìn)到端點(diǎn)E11。如果在判決框884或判決框886測(cè)試的結(jié)果為否,則方法800進(jìn)入端點(diǎn)E4。
      從端點(diǎn)E4(圖8L),方法800進(jìn)行測(cè)試以確定ρ表示是否是X0[X2]X0(X1).P0的形式。見判決框890。如果在判決框890測(cè)試的結(jié)果為是,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)E5”)。否則,在判決框890測(cè)試的結(jié)果為否,則方法進(jìn)到另一接續(xù)端(“端點(diǎn)E9”)。
      從端點(diǎn)E5(圖8M),將ρ表示縮略為第二ρ表示(∏1),它是P0{X2/X1}。見框892。在判決框894進(jìn)行測(cè)試以確定第二ρ表示是否是(0)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框894測(cè)試的結(jié)果為是,則使第二ρ表示等于進(jìn)程0。見框896。方法800隨后進(jìn)到端點(diǎn)E11。否則,在判決框894測(cè)試的結(jié)果為否,則方法800進(jìn)到另一判決框898,其中進(jìn)行另一測(cè)試以確定第二ρ表示是否是(R|S)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框898測(cè)試的結(jié)果為是,則使第二ρ表示等于(R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;|(S)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;。見框899。方法800繼續(xù)到端點(diǎn)E11。如果在判決框898測(cè)試的結(jié)果為是,則方法800繼續(xù)到另一接續(xù)端(“端點(diǎn)E6”)。
      從端點(diǎn)E6(圖8N),方法800在判決框897進(jìn)行測(cè)試以確定第二ρ表示是否是(X(Y).R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框897測(cè)試的結(jié)果為是,則使第二ρ表示等于(X){&lt;Q&gt;/&lt;P&gt;}(Y).((R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;)。見框895。方法800進(jìn)到端點(diǎn)E11。如果在判決框897測(cè)試的結(jié)果為否,則方法800進(jìn)入判決框893,其中進(jìn)行另一測(cè)試以確定第二ρ表示是否是(X[Y])&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框893測(cè)試的結(jié)果為是,則使第二ρ表示等于(X){&lt;Q&gt;/&lt;P&gt;}[(Y){&lt;Q&gt;/&lt;P&gt;}]。見框891。方法800進(jìn)入端點(diǎn)E11。如果在判決框893的結(jié)果為否,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)E7”)。
      從端點(diǎn)E7(圖8O),方法繼續(xù)到判決框889,其中進(jìn)行測(cè)試以確定第二ρ表示是否是(LIFTX.R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框889測(cè)試的結(jié)果為是,則使第二ρ表示等于LIFT(X){&lt;Q&gt;/&lt;P&gt;}.(R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;。見框887。方法800進(jìn)入端點(diǎn)E11。如果在判決框889測(cè)試的結(jié)果為否,則方法800在判決框885進(jìn)行另一測(cè)試以確定第二ρ表示是否是(&lt;X&gt;)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式。如果在判決框885測(cè)試的結(jié)果為是,則方法800進(jìn)入另一接續(xù)端(“端點(diǎn)E8”)。否則,在判決框885測(cè)試的結(jié)果為否,則方法800進(jìn)到端點(diǎn)E9。
      從端點(diǎn)E8(圖8P),方法800進(jìn)到判決框883,其中進(jìn)行測(cè)試以確定名稱X是否結(jié)構(gòu)全等于&lt;P&gt;,它表示進(jìn)程P的解釋。如果結(jié)果為是,則使第二ρ表示等于進(jìn)程Q。見框881。方法800進(jìn)入端點(diǎn)E11。如果在判決框883測(cè)試的結(jié)果為否,則方法800進(jìn)到框879,其中使第二ρ表示等于&gt;X&lt;,它表示名稱X的逆解釋。過程繼續(xù)到端點(diǎn)E11。
      從端點(diǎn)E9(圖8Q),方法800進(jìn)到判決框877,其中進(jìn)行測(cè)試以確定第二ρ表示是否是(X){&lt;Q&gt;/&lt;P&gt;}的形式。如果結(jié)果為是,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)E10”)。否則在判決框877測(cè)試的結(jié)果為否,則方法進(jìn)到端點(diǎn)E11。
      從端點(diǎn)E10(圖8R),方法800進(jìn)到判決框875,其中進(jìn)行測(cè)試以確定名稱X是否結(jié)構(gòu)全等于&lt;P&gt;,它指進(jìn)程P的解釋。如果在判決框875測(cè)試的結(jié)果為是,則使第二ρ表示等于&lt;Q&gt;,它表示進(jìn)程Q的解釋。見框873。方法800繼續(xù)到端點(diǎn)E11。如果在判決框875結(jié)果為否,則方法800使第二ρ表示等于名稱X。見框871。從框871,方法800繼續(xù)到端點(diǎn)E11并在判決框869進(jìn)行測(cè)試以確定是否有更多待估計(jì)的ρ表示。如果結(jié)果為否,則方法800繼續(xù)到出口端F,其中方法800結(jié)束并終止執(zhí)行。否則,在判決框869測(cè)試的結(jié)果為是,則方法800進(jìn)到另一接續(xù)端(“端點(diǎn)E12”)。從端點(diǎn)E12,方法800循環(huán)回到框868,其中重復(fù)以上所述的處理步驟。
      雖然示出和描述了本發(fā)明的較佳實(shí)施例,但是可以意識(shí)到其中可以進(jìn)行各種改變,而不離開本發(fā)明的主旨和范圍。
      要求保護(hù)獨(dú)占權(quán)的本發(fā)明實(shí)施例由權(quán)利要求書限定。
      權(quán)利要求
      1.一種用于處理信息以產(chǎn)生期望結(jié)果的計(jì)算機(jī),包括用于存儲(chǔ)服務(wù)的計(jì)算機(jī)可讀介質(zhì),所述服務(wù)包括通過解釋進(jìn)程來表示名稱的表示以及通過逆解釋名稱來表示進(jìn)程的表示;以及用于執(zhí)行服務(wù)作為進(jìn)程的微處理器,所述進(jìn)程通過名稱進(jìn)行交互并通過實(shí)現(xiàn)操作或者引發(fā)其他進(jìn)程演化來進(jìn)行演化。
      2.如權(quán)利要求1所述的計(jì)算機(jī),其特征在于所述服務(wù)包括可由統(tǒng)一資源指示符標(biāo)識(shí)并賦予行為類型的端口。
      3.如權(quán)利要求2所述的計(jì)算機(jī),其特征在于所述服務(wù)調(diào)整一個(gè)服務(wù)的端口行為類型是否與另一服務(wù)的另一端口的另一行為類型兼容。
      4.如權(quán)利要求3所述的計(jì)算機(jī),其特征在于還包括用于協(xié)調(diào)所述服務(wù)在所述微處理器上執(zhí)行的分散操作系統(tǒng)。
      5.如權(quán)利要求4所述的計(jì)算機(jī),其特征在于還包括中間設(shè)備,所述中間設(shè)備包括通過解釋進(jìn)程來表示名稱的表示以及通過解釋名稱來表示進(jìn)程的表示,所述中間設(shè)備置于所述服務(wù)和所述分散操作系統(tǒng)之間。
      6.一種用于執(zhí)行指令的微處理器,包括定時(shí)和控制單元,用于從存儲(chǔ)器檢索指令、對(duì)所述指令進(jìn)行解碼、獲取與所述指令相關(guān)的數(shù)據(jù)并保存結(jié)果,所述數(shù)據(jù)包括通過以反射進(jìn)程算法解釋進(jìn)程來獲得的名稱;以及算術(shù)和邏輯單元,用于進(jìn)行由所述指令指定的操作,所述指令以反射進(jìn)程算法表示,所述反射進(jìn)程算法能夠?qū)⒚Q表示為進(jìn)程的解釋并將進(jìn)程表示為名稱的逆解釋。
      7.如權(quán)利要求6所述的微處理器,其特征在于還包括寄存器陣列,用于存儲(chǔ)所執(zhí)行指令的結(jié)果。
      8.如權(quán)利要求7所述的微處理器,其特征在于還包括指令寄存器和解碼器,用于保存所述微處理器正在執(zhí)行的指令。
      9.如權(quán)利要求8所述的微處理器,其特征在于還包括總線連接,用于允許所述微處理器內(nèi)部接收數(shù)據(jù)進(jìn)入存儲(chǔ)器并用于外部傳送所執(zhí)行指令的結(jié)果。
      10.如權(quán)利要求9所述的微處理器,其特征在于所述定時(shí)和控制單元、所述算術(shù)和邏輯單元以及所述指令寄存器和解碼器通過具有與端口相關(guān)聯(lián)的單方契約的端口進(jìn)行通信。
      11.一種具有在其上存儲(chǔ)的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于實(shí)現(xiàn)允許進(jìn)程通過共享名稱進(jìn)行操作或交互,從而進(jìn)行演化或引發(fā)其他進(jìn)程進(jìn)行演化,所述計(jì)算機(jī)可讀介質(zhì)包括以反射進(jìn)程算法表示的計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算可執(zhí)行指令包括表示進(jìn)程的進(jìn)程語法單元,所述進(jìn)程語法單元可從以下組中選擇,所述組包括非活動(dòng)進(jìn)程0、輸出進(jìn)程X[Y]、輸入進(jìn)程X(Z).P、翻轉(zhuǎn)進(jìn)程LIFT X.P、進(jìn)程組合P|P和名稱的逆解釋&gt;X&lt;。
      12.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述計(jì)算機(jī)可執(zhí)行指令包括表示名稱的語法單元,表示名稱的語法單元從進(jìn)程的解釋&lt;P&gt;中形成。
      13.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于從進(jìn)程P的解釋中構(gòu)造所述輸出進(jìn)程X[Y]中的名稱Y,如果進(jìn)程P不是預(yù)定類型T的成員,就禁止進(jìn)程P的解釋。
      14.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于從進(jìn)程P的解釋中構(gòu)造所述輸入進(jìn)程X(Z).P中的名稱Z,如果進(jìn)程P不是預(yù)定類型U的成員,就禁止進(jìn)程P的解釋。
      15.如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于從進(jìn)程P的解釋中構(gòu)造名稱X,如果進(jìn)程P的尺寸超過預(yù)定閾值,就禁止進(jìn)程P的解釋。
      16.一種用于處理服務(wù)的計(jì)算機(jī)可執(zhí)行方法,包括以反射進(jìn)程算法將服務(wù)表示為進(jìn)程,所述反射進(jìn)程算法能夠?qū)⑦M(jìn)程表示為名稱的逆解釋以及將名稱表示為進(jìn)程的解釋;以及在進(jìn)程間共享名稱時(shí)使進(jìn)程進(jìn)行操作或通信,以便于進(jìn)程的演化。
      17.如權(quán)利要求16所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括從服務(wù)中提取以反射進(jìn)程算法編寫的表示并檢查所述表示是否與反射過程算法的語法規(guī)則兼容。
      18.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示停止進(jìn)程0,就確定所述表示為進(jìn)程。
      19.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示輸出進(jìn)程X[Y],就確定所述表示為進(jìn)程。
      20.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示輸入進(jìn)程X(Z).P,就確定所述表示為進(jìn)程。
      21.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示翻轉(zhuǎn)進(jìn)程LIFT X.P,就確定所述表示為進(jìn)程。
      22.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示進(jìn)程組合P|P,就確定所述表示為進(jìn)程。
      23.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示名稱的逆解釋&gt;X&lt;,就確定所述表示為進(jìn)程。
      24.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示進(jìn)程的解釋&lt;P&gt;,就確定所述表示為名稱。
      25.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示進(jìn)程的解釋和進(jìn)程的尺寸不超過閾值&lt;P&gt;,#&lt;P)≤K,就確定所述表示為名稱。
      26.如權(quán)利要求17所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是表示進(jìn)程的解釋并且進(jìn)程屬于語法單元&lt;P&gt;,P:T中的類型T,就確定所述表示為名稱。
      27.如權(quán)利要求16所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括從服務(wù)中提取以反射進(jìn)程算法編寫的表示并依照反射進(jìn)程算法的相等規(guī)律集檢查表示的結(jié)構(gòu)全等。
      28.如權(quán)利要求27所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是&lt;&gt;X&lt;&gt;的形式,就確定所述表示結(jié)構(gòu)全等于名稱X。
      29.如權(quán)利要求27所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合P|0,就確定所述表示結(jié)構(gòu)全等于進(jìn)程P。
      30.如權(quán)利要求27所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合0|P,就確定所述表示結(jié)構(gòu)全等于進(jìn)程P。
      31.如權(quán)利要求27所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合P0|P1,就確定所述表示結(jié)構(gòu)全等于進(jìn)程組合P1|P0。
      32.如權(quán)利要求27所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合(P0|P1)|P2,就確定所述表示結(jié)構(gòu)全等于進(jìn)程組合P0|(P1|P2)。
      33.如權(quán)利要求16所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括從服務(wù)中提取以反射進(jìn)程算法編寫的表示并依照反射進(jìn)程算法的操作語義規(guī)則集檢查表示的含義。
      34.如權(quán)利要求33所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是LIFT X.P的形式,就確定所述表示可縮略為X[&lt;P&gt;]。
      35.如權(quán)利要求33所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合P0|P2并且P0可縮略為項(xiàng)P1,就確定所述表示可縮略為P1|P2。
      36.如權(quán)利要求33所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程P2且P2是結(jié)構(gòu)全等于項(xiàng)P0且P0是可縮略為項(xiàng)P1且P1是結(jié)構(gòu)全等于項(xiàng)P3,就確定所述表示可縮略為P3。
      37.如權(quán)利要求33所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述表示是進(jìn)程組合X0[X2]|X0(X1).P0,就確定所述表示可縮略為第二表示P0{X2/X1}。
      38.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(0)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式,就使所述第二表示等于非活動(dòng)進(jìn)程0。
      39.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(R|S)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式,就使所述第二表示等于(R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;|(S)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;。
      40.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(X(Y).R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式,就使所述第二表示等于(X){&lt;Q&gt;/&lt;P&gt;}(Y).((R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;)。
      41.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(X[Y])&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式,就使所述第二表示等于(X){&lt;Q&gt;/&lt;P&gt;}[(Y){&lt;Q&gt;/&lt;P&gt;}]。
      42.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(LIFT X.R)&gt;{&lt;Q&gt;/&lt;R&gt;}&lt;的形式,就使所述第二表示等于LIFT(X){&lt;Q&gt;/&lt;P&gt;}.(R)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;。
      43.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(&lt;X&gt;)&gt;{&lt;Q&gt;/&lt;P&gt;}&lt;的形式且X結(jié)構(gòu)全等于&lt;P&gt;,就使所述第二表示等于進(jìn)程Q,否則使所述第二表示等于&gt;X&lt;。
      44.如權(quán)利要求37所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于還包括如果所述第二表示是(X){&lt;Q&gt;/&lt;P&gt;}的形式且X結(jié)構(gòu)全等于&lt;P&gt;,就使所述第二表示等于名稱&lt;Q&gt;,否則使所述第二表示等于X。
      45.一種用于執(zhí)行指令的微處理器陣列,包括至少一個(gè)微處理器,包括一個(gè)或多個(gè)部件定時(shí)和控制單元,用于從存儲(chǔ)器檢索指令、對(duì)所述指令進(jìn)行解碼、獲取與所述指令相關(guān)的數(shù)據(jù)并保存結(jié)果,所述數(shù)據(jù)包括通過以反射進(jìn)程算法解釋進(jìn)程來獲得的名稱;以及算術(shù)和邏輯單元,用于進(jìn)行由所述指令指定的操作,所述指令以反射進(jìn)程算法表示,所述反射進(jìn)程算法能夠?qū)⒚Q表示為進(jìn)程的解釋并將進(jìn)程表示為名稱的逆解釋。
      46.如權(quán)利要求45所述的微處理器陣列,其特征在于所述微處理器陣列在單塊集成電路上。
      47.如權(quán)利要求45所述的微處理器陣列,其特征在于所述微處理器陣列在多塊集成電路上,所述多塊集成電路安裝于單塊板上。
      48.如權(quán)利要求45所述的微處理器陣列,其特征在于所述微處理器陣列在多塊集成電路上,所述多塊集成電路安裝于多塊板上,所述多塊板置于計(jì)算機(jī)的單個(gè)架上。
      49.如權(quán)利要求45所述的微處理器陣列,其特征在于所述微處理器陣列在多塊集成電路上,所述多塊集成電路安裝于多塊板上,所述多塊板置于多臺(tái)計(jì)算機(jī)的多個(gè)架上。
      50.如權(quán)利要求45所述的微處理器陣列,其特征在于還包括用于耦合一個(gè)或多個(gè)微處理器的網(wǎng)絡(luò),所述網(wǎng)絡(luò)從以下組中選擇,包括永久連接和暫時(shí)連接。
      51.如權(quán)利要求45所述的微處理器陣列,其特征在于所述至少一個(gè)微處理器的各部件通過由編譯器產(chǎn)生的指令同步,所述編譯器編譯以反射進(jìn)程算法編寫的程序。
      52.如權(quán)利要求45所述的微處理器陣列,其特征在于所述微處理器陣列通過由編譯器產(chǎn)生的指令同步,所述編譯器編譯以反射進(jìn)程算法編寫的程序。
      53.如權(quán)利要求45所述的微處理器陣列,其特征在于所述至少一個(gè)微處理器的各部件沒有用于預(yù)測(cè)要執(zhí)行的下一指令的電路。
      全文摘要
      稱作為ρ-計(jì)算的反射進(jìn)程算法便于在反射進(jìn)程算法級(jí)別的進(jìn)程串行化。由于其反射屬性而得名的反射進(jìn)程算法可用于具有有限資源的計(jì)算系統(tǒng)上??墒沟梅瓷溥M(jìn)程計(jì)算對(duì)諸如存儲(chǔ)器和帶寬的資源是敏感的,由此便于其用作機(jī)器級(jí)別的程序設(shè)計(jì)語言。反射進(jìn)程計(jì)算使計(jì)算實(shí)體顯示出雙重特性??墒姑Q變?yōu)檫M(jìn)程,而使進(jìn)程變?yōu)槊Q。
      文檔編號(hào)G06F9/44GK1661552SQ20051005192
      公開日2005年8月31日 申請(qǐng)日期2005年2月16日 優(yōu)先權(quán)日2004年2月12日
      發(fā)明者L·G·米瑞蒂斯 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1