解釋型面向對象語言:Nu

jopen 10年前發布 | 17K 次閱讀 Nu

Nu 是一門解釋型的面向對象語言,最初由Tim Burks開發。其語法來自 Lisp,但是 Nu 在語義上要更接近于 Ruby。Nu 使用 Objective-C 語言實現,并且它被設計用于能夠充分利用 Objective-C 運行時和許多使用 Objective-C編寫的成熟的類庫。Nu 代碼可以完美集成在使用 Objective-C 寫的代碼中。Nu 和 Objective-C 中的對象可以互相接受和發送消息(messages)而無須考慮該消息是由二者中的哪一個實現的。

該語言最初在 C4 會議(在2007年8月由獨立的 Mac 開發者舉辦的大會)上發布。

Nu語言之所以被認為是相對小眾的工具,可能是因為它的類 Lisp 語法,不過最近開始隨著函數式編程語言的流行而開始引人注意。

事例代碼:

下面的Nu代碼定義了一個簡單的復數(complex number)類:

(class Complex is NSObject
  (ivar (double) real
        (double) imaginary)
 
  (- initWithReal:(double) x imaginary:(double) y is
    (super init)
    (set @real x)
    (set @imaginary y)
    self))

 該事例是一個復數的基本定義:其定義了實例變量(instance variable)以及一個用于初始化該對象的方法(method)。該事例展示了Nu代碼與Objective-CRuby代碼之間的相似性。

(unless @prefix
        (set @prefix 
             "#{((((NSProcessInfo processInfo) arguments) 0) dirName)}.."))
 
(unless @icon_files 
        (set @icon_files 
             (array "#{@prefix}/share/nu/resources/nu.icns")))

上面這段代碼來自與Nu語言捆綁在一起的nuke工具,這段代碼也展示了在Nu這門語言的設計中存在許多Objective-C, Lisp 和 Ruby 的影子。

Nu 需要運行在 Mac OS X 10.7 or iOS 4.3及更新的版本中。

項目主頁:http://www.baiduhome.net/lib/view/home/1418002044230

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!