mozart-oz語言是Universität des Saarlandes、Swedish Institute of Computer Science、Université catholique de Louvain等聯合開發的新一代計算機語言,語言本身有haskell,lisp,prolog,c,perl,java等的影子。有你想要的幾乎全部特性。
基本介紹
- 中文名:mozart-oz
- 分類:計算機語言
- 特點:一個對象可以被多個主機引用
- 備註:面向對象特性
約束編程特性:,DataFlow特性:,分散式特性:,執行緒和並發特性:,面向對象特性:,
約束編程特性:
處理複雜約束中語言提供了搜尋引擎,我們只用定義約束關
系即可,除非非常複雜的問題,一般不需要程式設計師定義搜尋
函式。下面是求解傳說中愛因斯坦5國5色5物問題中的搜尋樹:
搜尋樹
約束問題寫起來很簡單:
decalre X Y in
X :: 1#11
Y :: 12#30
X+Y =: 25
X*Y =: 150
{Show [X Y] }
就能求解:
X 屬於 [1 11]
Y 屬於 [12 30] 求X Y使得滿足
X+Y=25
X*Y=150
條件的X和Y。
DataFlow特性:
變數可以後綁定值,先使用,比如:
declare X in
thread {Show X} end
X=100
程式執行倒第2行時X沒有綁定到值,執行緒會自動阻塞,直到
被綁定值,原始執行緒接下來給X賦值,第一個執行緒將會自動
執行。
分散式特性:
一個對象可以被多個主機引用,但如果有任何一個主機修改
了其值則全部的主機上該對象的值都將被自動同步(同步完
成前對該對象的操作自動阻塞)。其他語言的分散式編程中
麻煩,而在mozart中所有的語言元素包括提供的數據結構都
執行緒和並發特性:
創建執行緒非常方便:thread 表達式 end即可,
執行緒創建的速度大約為java的20倍。
程式中很多表達式,如條件選擇本身是多執行緒實現的,比如100多個條件,有任何一個滿足則整體滿足,此時系統會自動對每個條件創建執行緒來檢查,有任何滿足的則全部執行緒退出,整體得到滿足。
在mozart-oz中,求解約束問題過程中創建過上百萬個執行緒是時常遇到的。
面向對象特性:
有全部的oo特性,尤其是支持多繼承,
如 獅身人面像 繼承自 獅子 人 石頭
而多繼承在很多語言裡是不允許的。