mozart-oz

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中所有的語言元素包括提供的數據結構都
是直接支持分散式的,分散式完全有oz的虛擬機完成處理,
我們編寫分散式程式和編寫本地並發程式沒有什麼區別。

執行緒和並發特性:

創建執行緒非常方便:thread 表達式 end即可,
執行緒創建的速度大約為java的20倍。
程式中很多表達式,如條件選擇本身是多執行緒實現的,比如100多個條件,有任何一個滿足則整體滿足,此時系統會自動對每個條件創建執行緒來檢查,有任何滿足的則全部執行緒退出,整體得到滿足。
在mozart-oz中,求解約束問題過程中創建過上百萬個執行緒是時常遇到的。
其他許多程式語言的執行緒特性是提供庫或類支持的,相比而言語言直接的支持使得我們處理多執行緒會更加便利。

面向對象特性:

有全部的oo特性,尤其是支持多繼承
如 獅身人面像 繼承自 獅子 人 石頭
多繼承在很多語言裡是不允許的。
函式編程特性:支持函式作為另一個函式參數傳遞,支持函式返回另一個函式,支持高階函式,支持遞歸尾遞歸……
如:
{Browse {Map [1 2 3 4] fun {$ I} I*10 end }}
將顯示結果 [10 20 30 40]
此外,mozart-oz還支持許多特性如惰性求值、模組化設計、和其他語言方便
的集成等就不是一篇文章能講完的了。
就由於有如此多的特性,因此mozart-oz叫多泛式語言。
這個語言,已經有近20年的歷史,已經非常成熟了,自帶的文檔比較齊全,MIT的《Press Concepts Techniques and.Models of Computer Programming》就是以這門語言來講解程式設計技術和模式的。

相關詞條

熱門詞條

聯絡我們