專利名稱:一種數(shù)據(jù)處理裝置及其建立方法
技術領域:
本發(fā)明涉及一種實現(xiàn)數(shù)據(jù)處理裝置及公式編輯方法,特別是一種可重復編輯的數(shù)據(jù)處理裝置和方法。
背景技術:
數(shù)字計算器,其應用非常廣。但它對于需要多次計算例如“8.8*x+9.9”這樣的表達式就顯得很不便,因為操作者每進行一次計算都要錄入“8.8”、“9.9”這兩個數(shù)據(jù)和“*”、“+”這兩個運算操作符,這就顯得很麻煩。而表達式計算器則解決了這個問題,它可以將表達式存儲起來,當需要計算的時候可以只輸入x的值。但如果要當需要輸入的x有很多,比如要將一幅圖像經(jīng)過函數(shù)“y=f(x)”變換,圖像中每一個點都是一個變量x,都需要經(jīng)過f(x)計算,這樣依次輸入“x”的數(shù)值依然顯得不方便。
目前對不同數(shù)據(jù)變換通常采用不同的函數(shù)(或代碼)來實現(xiàn)。也就是說函數(shù)(或代碼)需要隨數(shù)據(jù)變換的改變而改變。比如假設現(xiàn)在有這樣一個應用,要求系統(tǒng)支持從RGB空間的圖像數(shù)據(jù)到YIQ空間的變換,和從RGB空間的圖像數(shù)據(jù)到YUV空間的變換,在實現(xiàn)前面的數(shù)據(jù)變換之后再實現(xiàn)后面的數(shù)據(jù)變換的時候,我們需要添加新的代碼來更換計算公式。而通常一個系統(tǒng)中會用到多種不同數(shù)據(jù)變換,因此就需要寫不同的函數(shù)(或代碼)來實現(xiàn)不同的數(shù)據(jù)變換。每增加一個新數(shù)據(jù)變換需求,就需要新增一個函數(shù)(或一段代碼)來實現(xiàn)。函數(shù)的個數(shù)(或代碼的長度)隨需要變換種類的個數(shù)遞增。對于新的數(shù)據(jù)變換需求,需要中斷程序的執(zhí)行并編寫代碼,并且需要重新編譯。
對于前面所述的應用來說傳統(tǒng)的做法有二(1)編寫兩個函數(shù),一個實現(xiàn)從RGB空間的圖像數(shù)據(jù)到YIQ空間的變換,一個實現(xiàn)從RGB空間的圖像數(shù)據(jù)到YUV空間的變換。
(2)將他們寫在一個函數(shù)中,分兩種情況編寫不同代碼來處理。
這時如果又增加了一種YUV到RGB變換的需求,那就得在方法(1)中新增一個函數(shù),或在方法(2)中增加代碼來實現(xiàn)新得轉換。
我們在數(shù)據(jù)處理的時候往往會遇到大堆的數(shù)據(jù)變換,也許不能都一一預測到,而且就算是一一預測到而用上述方法實現(xiàn),會生成非常冗長的代碼,使用起來不方便。因此,亟待出現(xiàn)一種可以隨時編輯的數(shù)據(jù)處理裝置。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種在程序運行的時候隨時可以編輯計算公式的數(shù)據(jù)處理裝置及其建立方法。
為了達到上述目的,根據(jù)本發(fā)明的一方面,一種數(shù)據(jù)處理裝置包括通用公式模塊和公式編輯模塊,所述公式編輯模塊用于根據(jù)需要編輯和儲存公式;所述通用公式模塊包括若干基本計算單元,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。
優(yōu)選的,所述通用公式模塊還包括計算單元描述表,所述計算單元描述表用來描述各基本計算單元對應的操作符;所述公式編輯模塊包含變量列表和堆棧,所述堆棧用于依次接受待處理公式的內(nèi)容,根據(jù)待處理公式內(nèi)的各操作符到計算單元描述表查找對應的基本計算單元,利用找到的基本計算單元對待處理公式內(nèi)相應的各操作進行計算,并將計算結果作為變量列入變量列表中。
優(yōu)選的,按照操作符的優(yōu)先級決定當前堆棧頂?shù)牟僮鳌?br>
優(yōu)選的,變量列表包括變量名域和變量值域,在所述堆棧依次接受待處理公式的內(nèi)容時當輸入的是常量時,將常量直接入棧;當輸入的是變量時,如果該變量是第一次出現(xiàn),則將此變量追加到變量列表的變量名域中并對應一個操作數(shù)保存在變量值域中,然后把這個變量的操作數(shù)輸入堆棧,當變量已經(jīng)出現(xiàn)過時,則直接將這個變量的操作數(shù)輸入堆棧;當輸入的是操作符時,如果此操作符的優(yōu)先級大于棧頂操作符的優(yōu)先級,則執(zhí)行進棧操作,如果操作符的優(yōu)先級小于或者等于棧頂操作符的優(yōu)先級,則彈出棧頂?shù)牟僮鞣芭c該操作符相關的操作數(shù)或常量,根據(jù)彈出的操作數(shù)從變量列表中提取出相應的變量,并且根據(jù)彈出的操作符到通用公式模塊的計算單元描述表中查找相應的計算單元,然后,利用該找到的計算單元對前述彈出的常量或彈出的操作數(shù)對應的變量進行相應的計算操作,之后,將操作結果作為變量追加到變量列表的名域中并對應一個操作數(shù)保存在變量值域中,同時,將操作結果的操作數(shù)入棧。
優(yōu)選的,當輸入的是公式結束符時,直接彈出堆棧內(nèi)所有的操作數(shù)或常量及操作符,按照前述彈出操作執(zhí)行的相同操作。
優(yōu)選的,該數(shù)據(jù)處理裝置還包括一個輸入數(shù)據(jù)端口與一個輸出數(shù)據(jù)端口,待處理的數(shù)據(jù)通過該輸入數(shù)據(jù)端口被送至通用公式模塊,通用公式模塊將處理好的數(shù)據(jù)發(fā)送給輸出數(shù)據(jù)端口以作輸出。
優(yōu)選的,所述通用公式模塊具有M個輸入,N個輸出,其中M、N都是自然數(shù)。
優(yōu)選的,所述若干基本計算單元包括加計算單元、減計算單元、乘計算單元、除計算單元或常用計算單元。
為了達到上述目的,根據(jù)本發(fā)明的一方面,一種數(shù)據(jù)處理裝置建立方法包括設計出通用公式模塊的操作,該通用公式模塊包括若干基本計算單元;將所述通用公式模塊封裝為M輸入N輸出,M,N為自然數(shù);利用公式編輯模塊對待編輯公式進行編輯的操作,在編輯時,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。
進一步的,在封裝通用公式模塊之后,進行編輯的操作之前,該方法還包括對封裝好的通用公式模塊進行串聯(lián)或并聯(lián)的操作。
根據(jù)公式編輯模塊的工作原理可以看出,公式編輯過程就是將通用公式模塊中的計算單元按照待編輯的公式重新組合的過程,公式編輯完成后,通用公式模塊就形成了一個能完成公式編輯模塊中的變量列表內(nèi)的各種公式的處理單元。值得注意的是,公式編輯模塊內(nèi)可以編輯和存儲有多種公式,只需在原有公式的基礎上繼續(xù)增加就好了,具體的編輯過程和前邊描述的編輯相同。這樣,當出現(xiàn)新的數(shù)據(jù)處理需要的時候,只需要在公式編輯模塊編輯需要的公式就可以達到目的,而不需要對通用公式模塊進行改動,因此可以不中斷程序運行。
本發(fā)明一種可編輯重復實現(xiàn)數(shù)據(jù)處理裝置通過獨立出通用公式編輯器實現(xiàn)了公式的可編輯,并且由于加上了輸入輸出端口,實現(xiàn)了數(shù)據(jù)流的處理。
圖1是本發(fā)明數(shù)據(jù)處理裝置的結構框圖;
圖2是本發(fā)明通用公式模塊的結構框圖;圖3是本發(fā)明公式編輯模塊的結構框圖;圖4是本發(fā)明用三個數(shù)據(jù)處理裝置實現(xiàn)三輸入三輸出的示意圖;圖5是本發(fā)明用一個數(shù)據(jù)處理裝置實現(xiàn)三輸入三輸出的示意圖;和圖6a、b是本發(fā)明一個具體實例中變量列表和堆棧變化過程圖。
具體實施例方式
參看圖1所示,本發(fā)明提供了一種數(shù)據(jù)處理裝置100,該數(shù)據(jù)處理裝置具有一個輸入數(shù)據(jù)端口與一個輸出數(shù)據(jù)端口。待處理的數(shù)據(jù)通過該輸入數(shù)據(jù)端口被送達至數(shù)據(jù)處理裝置100,數(shù)據(jù)處理裝置100將處理好的數(shù)據(jù)發(fā)送給輸出數(shù)據(jù)端口以作輸出。
所述數(shù)據(jù)處理裝置100包括通用公式模塊10和公式編輯模塊20。所述公式編輯模塊20用于根據(jù)需要編輯和儲存公式,其中所述編輯公式包括增加公式、修改公式、刪除公式等。所述通用公式模塊10包括有若干基本計算單元12,所述基本計算單元可以依照公式編輯模塊內(nèi)的公式進行組合,從而完成所述公式編輯模塊20內(nèi)公式的運算。
請參看圖2所示,所述通用公式模塊10具有M個輸入,N個輸出,其中M、N都是自然數(shù),它們的大小可以根據(jù)需要設定,比如圖4中所采用的就是三輸入一輸出的通用公式模塊10,圖5中所采用的就是三輸入三輸出的通用公式模塊10。所述通用公式模塊10的若干基本計算單元12包括加計算單元、減計算單元、乘計算單元、除計算單元及其它常用計算單元,比如常用函數(shù)或者常用表達式,具體來說,假如要經(jīng)常用到sin(x),cos(x),98*A,這些表達式,那么可以將這些表達式固定成常用計算單元的形式,以后每遇到這樣的表達式就可以直接運用這個計算單元,從而省去一些繁瑣的操作。每個計算單元包括有所需要的操作數(shù)個數(shù)及具體的操作,具體來說,加計算單元包括兩個操作數(shù)及一個加操作,乘計算單元兩個操作數(shù)及一個乘操作,sin(x)計算單元包括一個操作數(shù)及一個sin()操作。
所述通用公式模塊10還包括有計算單元描述表14,用來描述各計算單元對應的操作符,比如加計算單元用“+”操作符來表示、乘計算單元用“*”操作符來表示、sin(x)計算單元用“sin()”來表示等。當通用公式模塊10遇到“+”操作符的時候,它可以通過查找計算單元描述表14來找到相應的加計算單元。
請參看圖3所示,所述公式編輯模塊20包括變量列表22和一個堆棧24,所述變量列表包括有變量名域、變量值域以及其他的附加域,圖6a具體顯現(xiàn)了一種變量列表22,在下文我們會對此做具體的描述。在進行公式編輯操前,需要事先規(guī)定操作符之間的優(yōu)先級、規(guī)定一個公式結束符、指定變量列表首地址等。操作符之間的優(yōu)先級的含義,舉個例子來說就是,“+”的優(yōu)先級比“*”低,“*”的優(yōu)先級和“/”相同等。
接下來就具體介紹一下所述公式編輯模塊20的工作原理??傮w來說,所述堆棧24初始的時候為空,公式編輯操作開始后不斷向堆棧內(nèi)輸入需要編輯的公式的內(nèi)容,并且按照操作符的優(yōu)先級決定當前棧頂?shù)牟僮?,將相應的變量和操作結果列入變量列表22,直到收到公式結束符。具體來說,所述公式編輯的過程具體包括如下步驟。
當輸入的是常量時,將常量直接入棧,當需要對此常量進行運算的時候直接取出進行計算即可。當輸入的是變量時,如果該變量是第一次出現(xiàn),則將此變量追加到變量列表22的變量名域中并對應一個操作數(shù)保存在變量值域中,然后把這個變量的操作數(shù)輸入堆棧,當變量已經(jīng)出現(xiàn)過時,則直接將這個變量的操作數(shù)輸入堆棧24。
當輸入的是操作符時,如果此操作符的優(yōu)先級大于棧頂操作符的優(yōu)先級,則執(zhí)行進棧操作。如果操作符的優(yōu)先級小于或者等于棧頂操作符的優(yōu)先級,則彈出棧頂?shù)牟僮鞣芭c該操作符相關的操作數(shù)或常量。根據(jù)彈出的操作數(shù)從變量列表22中提取出相應的變量,并且根據(jù)彈出的操作符到通用公式模塊10的計算單元描述表14中查找相應的計算單元,然后,利用該找到的計算單元對前述彈出的常量或彈出的操作數(shù)對應的變量進行相應的計算操作,之后,將操作結果作為變量追加到變量列表22的名域中并對應一個操作數(shù)保存在變量值域中,同時,將操作結果的操作數(shù)入棧。
當遇到公式結束符時,直接彈出堆棧內(nèi)所有的操作數(shù)或常量及操作符,并按照前述彈出步驟相同的步驟進行操作,至此,公式編輯過程結束。圖6a、6b列舉了一個具體的公式編輯的例子,為了簡便起見,圖6a直接顯示了變量列表22的最終結果,而圖6b則顯現(xiàn)了堆棧24在公式編輯前半部分的所經(jīng)歷的步驟,同樣為了簡便,堆棧24在公式編輯后半部分的步驟被省略了。
此后,可以按照需要到變量列表22中提取輸出數(shù)據(jù),需要說明的是,提取出的數(shù)據(jù)不僅僅包含最終結果,同時也可以提取出中間結果。如果表達式輸入完畢而堆棧非空則表并計算失敗,可能是由于表達式輸入格式不對或者操作符不支持。
根據(jù)公式編輯模塊20的工作原理可以看出,公式編輯過程就是將通用公式模塊10中的計算單元12按照待編輯的公式重新組合的過程,公式編輯完成后,通用公式模塊10就形成了一個能完成公式編輯模塊20中的變量列表內(nèi)的各種公式的處理單元。值得注意的是,公式編輯模塊20內(nèi)可以編輯和存儲有多種公式,只需在原有公式的基礎上繼續(xù)增加就好了,具體的編輯過程和前邊描述的編輯相同。這樣,當出現(xiàn)新的數(shù)據(jù)處理需要的時候,只需要在公式編輯模塊20內(nèi)編輯需要的公式就可以達到目的,而不需要對通用公式模塊10進行改動,因此可以不中斷程序運行。
接下來,結合一個具體的公式來講解所述數(shù)據(jù)處理裝置中的公式編輯過程。
假如我們要實現(xiàn)從RGB空間的圖像數(shù)據(jù)到YIQ空間的轉換,其轉換公式為Y=(77*R+150*G+29*B)/256I=(153*R-70*G-82*B)/256Q=(54*R-134*G+80*B)/256我們可以采用兩種方法來實現(xiàn)這個三輸入三輸出的公式。一種如圖4所示,采用三個三輸入一輸入的本發(fā)明提出的數(shù)據(jù)處理裝置100并聯(lián)來實現(xiàn);另一種如圖5所示采用一個三輸入三輸出的本發(fā)明提出的數(shù)據(jù)處理裝置100來實現(xiàn)。
如圖4所示,采用三輸入一輸入的本發(fā)明提出的數(shù)據(jù)處理裝置并聯(lián)實現(xiàn)一個三輸入三的數(shù)據(jù)處理裝置,每一個數(shù)據(jù)處理裝置都需要進行上述的公式編輯操作,下面就以第一個公式“Y=(77*R+150*G+29*B)/256”為例來說明,請結合參考圖6a、6b。
“(”首先進入堆棧,然后是常數(shù)“77”進入堆棧,然后操作符“*”進入堆棧,之后是“R”要進入堆棧,由于“R”是變量且第一次出現(xiàn),因此先在變量列表22中記錄下變量R并且確定該變量的操作數(shù)“001”,然后將該變量的操作數(shù)輸入堆棧。
之后,“+”來到堆棧,由于“+”的優(yōu)先級比“*”低,于是彈出棧頂?shù)牟僮鞣?”與“77”和操作數(shù)“001”,并依照操作數(shù)“001”到變量列表22中找到“001”對應的“R”,之后將“*”、“77”和“R”送到通用公式模塊10,通過操作符“*”到計算單元描述表中找找對應的計算單元,并用此計算單元對“77”和“R”進行計算,將計算結果“77*R”作為一個變量在變量列表中記錄下變量名與變量操作數(shù)“002”并將該操作數(shù)“002”輸入到堆棧中,最后將“+”輸入堆棧。
接下來常數(shù)“150”進棧,之后操作符“*”要進棧,由于比“+”的優(yōu)先級高所以操作符“*”進棧,之后變量“G”要進棧,同樣由于“G”是第一次出現(xiàn),先在變量列表22中記錄下變量G并且確定該變量的操作數(shù)“003”,然后將該操作數(shù)“003”輸入堆棧。
之后操作符“+”要進棧,同樣由于操作符“+”的優(yōu)先級低于操作符“*”,于是彈出操作符“*”并且同時彈出“150”與操作數(shù)“003”,依照第一次彈出操作的步驟進行同樣的操作,并將計算結果“150*G”作為一個變量在變量列表中記錄下變量名與變量操作數(shù)“004”并將該操作數(shù)“004”輸入到堆棧中,此時,操作符“+”要進棧,由于與前一個操作符“+”具有相同的優(yōu)先級,于是彈出操作符“+”與操作數(shù)“002”和操作數(shù)“004”,并依照前述彈出操作的步驟進行同樣的操作。在接下來的公式內(nèi)容進棧過程中,屬于對前述內(nèi)容的重復,所以在此容不贅述。直到遇到公式結束符時,公式編輯過程結束。
圖5所示的公式得編輯的過程,也如前述例子所述,原則不變只是內(nèi)容有所變化,因此在此容不贅述。
在處理數(shù)據(jù)的時候我們希望數(shù)據(jù)連續(xù)不斷的進行處理,也就是所謂流處理的概念。為了達到這個目的本發(fā)明的數(shù)據(jù)處理裝置100引入了端口的概念,使數(shù)據(jù)處理裝置能處理連綿不斷的數(shù)據(jù)而不需用戶的干涉。所述端口針對硬件與軟件的處理方法是不同的。對于硬件來說,就是用引腳將一個和外界交互的控制信號或者同步信號引入到通用公式編輯器中實現(xiàn)連綿不斷地提供數(shù)據(jù);對于軟件來說,就是要實現(xiàn)一個讀寫各個端口的軟件接口,這個接口規(guī)范由一個系統(tǒng)軟件統(tǒng)一提供,該系統(tǒng)軟件通過調(diào)用這個接口來實現(xiàn)不斷的向端口讀寫數(shù)據(jù)的目的。
在更為復雜的情況下,我們需要更多的數(shù)據(jù)處理裝置100來完成復雜多變的工作。這樣可以將本發(fā)明所述的多個簡單的數(shù)據(jù)處理裝置100串并聯(lián)組合以達到目的,如圖4和5所示。
本發(fā)明還提供了一種數(shù)據(jù)處理裝置建立方法,該方法包括設計出通用公式模塊的操作,該通用公式模塊包括若干基本計算單元;將所述通用公式模塊封裝為M輸入N輸出,M,N為自然數(shù);利用公式編輯模塊對待編輯公式進行編輯的操作,在編輯時,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。
其中,在封裝通用公式模塊之后,進行編輯的操作之前,該方法還可以包括對封裝好的通用公式模塊進行串聯(lián)或并聯(lián)的操作,如圖4所示。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種數(shù)據(jù)處理裝置,其特征在于其包括通用公式模塊和公式編輯模塊,所述公式編輯模塊用于根據(jù)需要編輯和儲存公式;所述通用公式模塊包括若干基本計算單元,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。
2.根據(jù)權利要求1所述的數(shù)據(jù)處理裝置,其特征在于所述通用公式模塊還包括計算單元描述表,所述計算單元描述表用來描述各基本計算單元對應的操作符;所述公式編輯模塊包含變量列表和堆棧,所述堆棧用于依次接受待處理公式的內(nèi)容,根據(jù)待處理公式內(nèi)的各操作符到計算單元描述表查找對應的基本計算單元,利用找到的基本計算單元對待處理公式內(nèi)相應的各操作進行計算,并將計算結果作為變量列入變量列表中。
3.根據(jù)權利要求2所述的數(shù)據(jù)處理裝置,其特征在于按照操作符的優(yōu)先級決定當前堆棧頂?shù)牟僮鳌?br>
4.根據(jù)權利要求2所述的數(shù)據(jù)處理裝置,其特征在于變量列表包括變量名域和變量值域,在所述堆棧依次接受待處理公式的內(nèi)容時當輸入的是常量時,將常量直接入棧;當輸入的是變量時,如果該變量是第一次出現(xiàn),則將此變量追加到變量列表的變量名域中并對應一個操作數(shù)保存在變量值域中,然后把這個變量的操作數(shù)輸入堆棧,當變量已經(jīng)出現(xiàn)過時,則直接將這個變量的操作數(shù)輸入堆棧;當輸入的是操作符時,如果此操作符的優(yōu)先級大于棧頂操作符的優(yōu)先級,則執(zhí)行進棧操作,如果操作符的優(yōu)先級小于或者等于棧頂操作符的優(yōu)先級,則彈出棧頂?shù)牟僮鞣芭c該操作符相關的操作數(shù)或常量,根據(jù)彈出的操作數(shù)從變量列表中提取出相應的變量,并且根據(jù)彈出的操作符到通用公式模塊的計算單元描述表中查找相應的計算單元,然后,利用該找到的計算單元對前述彈出的常量或彈出的操作數(shù)對應的變量進行相應的計算操作,之后,將操作結果作為變量追加到變量列表的名域中并對應一個操作數(shù)保存在變量值域中,同時,將操作結果的操作數(shù)入棧。
5.根據(jù)權利要求4所述的數(shù)據(jù)處理裝置,其特征在于當輸入的是公式結束符時,直接彈出堆棧內(nèi)所有的操作數(shù)或常量及操作符,按照前述彈出操作執(zhí)行的相同操作。
6.根據(jù)權利要求1所述的數(shù)據(jù)處理裝置,其特征在于該數(shù)據(jù)處理裝置還包括一個輸入數(shù)據(jù)端口與一個輸出數(shù)據(jù)端口,待處理的數(shù)據(jù)通過該輸入數(shù)據(jù)端口被送至通用公式模塊,通用公式模塊將處理好的數(shù)據(jù)發(fā)送給輸出數(shù)據(jù)端口以作輸出。
7.根據(jù)權利要求1所述的數(shù)據(jù)處理裝置,其特征在于所述通用公式模塊具有M個輸入,N個輸出,其中M、N都是自然數(shù)。
8.根據(jù)權利要求1所述的數(shù)據(jù)處理裝置,其特征在于所述若干基本計算單元包括加計算單元、減計算單元、乘計算單元、除計算單元或常用計算單元。
9.一種數(shù)據(jù)處理裝置建立方法,該方法包括設計出通用公式模塊的操作,該通用公式模塊包括若干基本計算單元;將所述通用公式模塊封裝為M輸入N輸出,M,N為自然數(shù);利用公式編輯模塊對待編輯公式進行編輯的操作,在編輯時,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。
10.根據(jù)權利要求9所述的數(shù)據(jù)處理裝置建立方法,其特征在于在封裝通用公式模塊之后,進行編輯的操作之前,該方法還包括對封裝好的通用公式模塊進行串聯(lián)或并聯(lián)的操作。
11.根據(jù)權利要求9所述的數(shù)據(jù)處理裝置建立方法,其特征在于所述通用公式模塊還包括計算單元描述表,所述計算單元描述表用來描述各基本計算單元對應的操作符;所述公式編輯模塊包含變量列表和堆棧,所述堆棧用于依次接受待處理公式的內(nèi)容,根據(jù)待處理公式內(nèi)的各操作符到計算單元描述表查找對應的基本計算單元,利用找到的基本計算單元對待處理公式內(nèi)相應的各操作進行計算,并將計算結果作為變量列入變量列表中。
12.根據(jù)權利要求11所述的數(shù)據(jù)處理裝置建立方法,其特征在于所述變量列表包括變量名域和變量值域,在所述堆棧依次接受待處理公式的內(nèi)容時當輸入的是常量時,將常量直接入棧;當輸入的是變量時,如果該變量是第一次出現(xiàn),則將此變量追加到變量列表的變量名域中并對應一個操作數(shù)保存在變量值域中,然后把這個變量的操作數(shù)輸入堆棧,當變量已經(jīng)出現(xiàn)過時,則直接將這個變量的操作數(shù)輸入堆棧;當輸入的是操作符時,如果此操作符的優(yōu)先級大于棧頂操作符的優(yōu)先級,則執(zhí)行進棧操作,如果操作符的優(yōu)先級小于或者等于棧頂操作符的優(yōu)先級,則彈出棧頂?shù)牟僮鞣芭c該操作符相關的操作數(shù)或常量,根據(jù)彈出的操作數(shù)從變量列表中提取出相應的變量,并且根據(jù)彈出的操作符到通用公式模塊的計算單元描述表中查找相應的計算單元,然后,利用該找到的計算單元對前述彈出的常量或彈出的操作數(shù)對應的變量進行相應的計算操作,之后,將操作結果作為變量追加到變量列表的名域中并對應一個操作數(shù)保存在變量值域中,同時,將操作結果的操作數(shù)入棧。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)處理裝置其包括通用公式模塊和公式編輯模塊,所述公式編輯模塊用于根據(jù)需要編輯和儲存公式;所述通用公式模塊包括若干基本計算單元,所述基本計算單元依照公式編輯模塊內(nèi)的公式進行組合,以完成所述公式編輯模塊內(nèi)公式的運算。當出現(xiàn)新的數(shù)據(jù)處理需要的時候,只需要在公式編輯模塊編輯需要的公式就可以達到目的,而不需要對通用公式模塊進行改動,因此可以不中斷程序運行。
文檔編號G06F17/00GK1862520SQ200610012169
公開日2006年11月15日 申請日期2006年6月9日 優(yōu)先權日2006年6月9日
發(fā)明者占文靜, 游明琦 申請人:北京中星微電子有限公司