前言
從1999年開始,我計劃要作一個作業系統,這是因為對於作業系統有著莫名的狂熱。
對於作業系統的定義,我並沒有使用很精確的字眼,也沒有遵照一般的定義,
純粹只是我自己的看法。基本上是寫寫程式,但或許也會扯到一點點硬體。
對於這個系統將來的用途,我盡量不去想,是怕對自己設限,
雖然說曾有過一些想法,但這留在將來有時間再說吧。到目前為止,我想做的項目如下
- 使用圖形程式語言作為核心開發語言
- 使用中文作為人機介面的預設語言
- 使用構形編碼作為中文字的編碼方法
- 使用一種新想法的驅動程式機制
因為已經開始在實作一些東西了,所以做了這個網頁,以便與有興趣的人交換意見。
目前就醬子,底下再針對各項作詳細說明。
簡介
圖形程式語言
這是從LabVIEW上得到的想法。
在第一次接觸到LabVIEW的虛擬儀表觀念後,深深為它所吸引,
原來要讓電腦聽你的話做事有這樣不同的表達方法。這麼直覺。上網找了一下資料,原來這種程式叫做「視覺化程式語言」(visual programming language,VPL),或稱作圖形程式語言。IEEE底下還有個VPL的論壇。
文獻資料顯示早自70年代就有人研究了,其中還包括有名的科幻小說家張系國,
但是我的英文能力沒有幫助我看出為什麼這個領域沒有很多人知道。想想看,中文字便是由圖形演變而來,
或許我把圖形程式語言與中文一起放在腦袋裡想一想,
說不定會為中文資料在電腦上的處理,有著不同於現在,但會更好的方法。中文的使用與其在電腦上的編碼系統
中文是很美很有智慧的文字系統,這是我主觀的看法。
但是中文的使用到了先進的電腦系統上,就顯得很笨拙。
我認為這是因為西方的文字系統,其文字的最小可分割單位是字母,
並且在需要機器處理文字訊息的時候,給這些字母標上了唯一碼(ASCII code)。但是中文呢?目前是將方塊字標上唯一碼 。但我認為這是錯的。
想想看,小時候老師教我們寫字,不是一筆一筆的畫出來的嗎?所以應該標上唯一碼的是筆劃。
就醬子。其他的,等我實作出來了再說。
參考資料
出處:中研院文獻處理實驗室
一種實現驅動程式機制的新方法
目前,同一樣週邊或是介面卡,在不同的作業系統平台上,需要不同的驅動程式。
其實這樣沒什麼不好,可以增加一些就業機會。我想到一種方法,對於同一種週邊,可以只需要一套驅動程式。
有一種語言叫做硬體描述語言(HDL)。
這種語言可以將數位電路以文字描述的方式紀錄下來,也就是將電路圖文字化。
而這種語言也有編譯器,可以將它編譯成一種特殊的目的碼,
然後這個目的碼又可以合成出實際電路。聽說也有類比電路的HDL,
不過,使用spice檔案也可以吧?我的想法是,將週邊的線路以描述語言紀錄下來,然後放在週邊裝置當中,
而當系統第一次接觸到週邊的時候,將描述語言讀出來,並且編譯它,
這便可以自動產生出該系統的驅動程式。還要考慮什麼嗎?我不知道。
這個想法剛剛誕生,還沒收集資料,說不定明天就把這段拿掉了。
我寫過VHDL,我發現跟C有點像,
我想這是因為程式是在數位線路上運作的,所以數位線路與程式語言有著本質上的相似吧。
但又或許是因為這都是人想出來的,所以這也是人的思考邏輯吧?
目前進度
目前我正在進行圖形程式語言架構的實驗,我選擇在Palm OS平台先實作看看,
等到把一些架構確定之後,再把它實作成一個獨立的系統。
為了更加了解圖形語言在實作上的問題,我便開始實作一個圖形程式語言開發程式。
並藉此確立圖形語言的結構。所謂圖形程式語言,表面上看起來像是程式流程圖,
但也像是電路方塊圖,但主要就是要以圖形來表達使用者欲解決的問題。
例如我們要相加兩個數字,我們可以在編輯頁面上放置一個加法方塊,
再放上兩個輸入點,一個輸出點,並且將它們與加法方塊連接,
如此一來,當程式開始執行的時候就會把兩個數字相加的結果運算出來了。
一個圖形程式語言的例子
我現在利用Code Warrior for PALM開發工具開發程式,
主要是在palm os平台上實現圖形程式語言。
目前已經有一些功能了,例如加減乘除、邏輯運算、比大小以及迴圈結構等等。
我把圖形程式系統分成2個部分,一個部分是編輯器,負責與使用者交談,
用以將程式方塊圖建立起來,另一部份是執行器,負責程式方塊圖的執行與資料的顯示。


沒有留言:
張貼留言