一種新的面嚮物件語言――Other語言(暫定名)

keystonexu1發表於2005-08-23
一種新的物件導向語言――Other語言(暫定名)


我對現有計算機語言不太滿足,正構思一種新的語言――Other語言。請大家看看這語言怎樣:
Other語言是一種絕對物件導向的語言,一切都是物件。這種語言的一些特性,是別的語言沒有的,現闡述如下:

一,物件導向的特點

1,物件和類的關係

在Other語言裡,可以以類定義物件,也可以以物件來定義類。
為什麼是這樣呢,是因為在Other語言裡,類中的屬性和方法,只是在該類的物件中暫時寄居,而不是永久性的是該類的物件的成員。
當物件從初始類生成完畢後,在物件與其他類的物件相互作用中,該物件的屬性和方法,可以被“贈予”或“複製”給其他類的物件,或

者乾脆可以被自身物件所取消。
如此一來,經過一段時間執行後,物件裡的屬性和方法也許就不是原來的那些屬性和方法了,可能被贈予或複製了新的屬性和方法,那麼

,該物件也就代表了一個新的類的誕生。想要固定下這個物件的改變,就用該物件定義一個新的類就行了。這個新的類又可以初始化新的物件


類中的屬性也是某一類的物件,也可以做以上改變。

2,一切都是物件

在Other語言裡,一切都是物件,甚至包括你在皮膚上的塗鴉,也是物件。這就可以有一種很好的相互作用方式,作用於任何物件上,令它

們變化。
在Other語言裡,幾個物件可以組合成一個新的物件,新的物件也可以拆解成幾個不同的物件,任你快樂地做出想做的改變。
Other語言中,類裡的方法也是一種特殊的物件,只不過是沒有屬性的物件而已。

3,物件導向三大特性在Other語言中的表現:

(1)繼承的特點

繼承可以從一個類繼承,也可以從一個物件繼承,因為物件已經表徵了一個新的類了。當然,繼承的特點沒有變,繼承了該類(或物件)

的屬性和方法。

(2)封裝的特點

對封裝的改變是Other語言的一大特色,該類物件對類的屬性和方法可以有處置權,可以動態設定其私有和公有屬性,甚至可以將該屬性和

方法增予其他物件,或者乾脆就去掉。也可以接受別的物件對其的屬性和方法的增予。
這其實在生活中是很常見的,比如一輛汽車,它的各種零件都可以拆卸掉,而且可以被改裝。在程式執行中,就可以實現一個皮膚上的按

鈕可以被原封不動地自己挪到另一個皮膚上,功能不發生變化等。

(3)多型的特點

多型有三種含義,函式過載,基類和派生類虛擬函式。Other語言中的多型,允許函式過載,不允許運算子過載,並可以定義虛擬函式。但還有

以下特色:
在傳統的物件導向的程式裡,基類指標可以呼叫派生類方法的構造,是用基類管理派生類的物件的一種方式。
在Other語言裡,多型是基於物件的,一個物件可以被賦予呼叫另一個物件方法的許可權,也可以有贈予另一個物件方法的許可權,當然這種權

限需要有授權才行。
在多個同類物件中,可以指定某物件是管理者,這樣該物件就可以呼叫其他物件的方法了。

二,物件之間用“語言”交流


在Other語言裡,Other語言只是一個“元語言”,每一個物件(類)都可以有自己的語言集。這就是說,某一個物件內部的方法裡用java

語言,另一個物件內部的方法裡用asp語言,也是可以的。兩個物件間如果想交流資訊,它們必須有共同語言。
為什麼要這樣做,我解釋一下。
首先,如今的系統已經非常複雜,一個軟體系統裡,採用不同語言做事情,本身就是很平常的事情。如一個網頁裡可能同時採用java語言

,html語言,javascript語言等等。這要看每個物件作的事情是什麼而採取不同語言.
元語言也是採用不同語言的不同物件交流的紐帶.
又例如在一個大型遊戲中,有一個機器人在行走,一架飛機在飛,那麼它們兩個所涉及的方面不同,採用的語言以及關鍵字等也不一定一樣.總

之要更好地描述物件的性狀和行為,需要在語言上有不同.
物件之間交流資訊是透過語言.就象人與人之間,透過相互說話共同完成事情一樣.
這樣做的好處有:
1,物件之間可以做非常複雜的互動,因為是用語言進行溝通的,所以程式碼可以很靈活.所以,物件間交換資訊越複雜,用這種方案就越顯示出優

越性.
2,語言的檢查是很嚴格的,這裡是編譯系統級別的檢查錯誤.必須檢查詞是否是關鍵字,詞法是否正確,語法樹是否正確等等,這樣,就把很多

輸入輸出上出錯的機率大大降低.從語法結構上就避免出錯.我們就不用那麼多if else等來判斷錯誤了.輸入輸出,是出錯最多的地方,這就使我

們的系統具有先天的健康性.
3,物件的方法其實也是語言,這就有了物件之間互相傳遞方法的可能性,為靈活的組裝物件功能打下基礎.
4,你甚至可以為某一特殊功能創造一個新語言,比如,為你的某一特殊應用度身訂做一種語言.
5,可以透過這種方法,吸收各種其他語言的精華程式碼.
先寫到這,以後慢慢再寫.請各位多指教!

keystonexu1@163.com


相關文章