解釋型面向對象語言: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-C和Ruby代碼之間的相似性。
(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及更新的版本中。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!