Mozart OZ電腦程式設計語言有你想要的幾乎全部特性,本身有haskell,lisp,prolog,c,perl,java等語言的影子,(本帖以後續會連載)

來源:互聯網
上載者:User

mozart-oz


mozart-oz語言是Universität des Saarlandes、Swedish Institute of Computer Science、Université catholique de Louvain等聯合開發的新一代電腦語言
,語言本身有haskell,lisp,prolog,c,perl,java等的影子,有你想要的幾乎全部特性,例如:
  約束編程特性:
  處理複雜約束中語言提供了搜尋引擎
,我們只用定義約束關
  系即可,除非非常複雜的問題,一般不需要程式員定義搜尋
  函數。下面是求解傳說中愛因斯坦
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》就是以這門語言來講解程式設計技術和模式的。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.