透過您的圖書館登入
IP:3.143.168.172
  • 學位論文

在Java上實作Extension Method之機制

A Mechanism of Extension Methods for the Java Programming Language

指導教授 : 陳俊良

摘要


對全世界所有程式設計人員來說,微軟的.NET平台與昇陽的Java平台,無疑是兩大最具有代表性的架構。 Java平台挾帶著開放、歷史悠久的優勢,聚集了不少支持者,包括個人及企業。Java語言已是許多重量級企業開發產品的平台,如昇陽、IBM、Oracle等等。理論上開放平台的Java,在眾多支持者的推動下,理應發展迅速,但實際上卻不然;在Java語言規範,作大規模的發展,需考慮其背負的相容性包袱,又有各大廠商彼此的利益衝突,發展稍嫌緩慢。 作為.NET平台的代表性語言,C#吸收了許多其它程式語言的優點(特別是Java),在語法亦與Java相近,也因此受到許多程式開發者的青睞。因.NET是微軟的專屬平台,在其全力推動下,發展相當迅速,這也使得物件導向語言越來越簡練而直觀。 在最新的.NET框架(.NET Framework)上,微軟提出一個LINQ專案,目的是統一各種不同資料查詢上的語法,將資料庫、XML、或是物件集合的屬性存取,用同一種共通的方式來操作,如比對、排序、彙總等等。延伸方法(Extension Methods)是LINQ的特色之一,允許使用者在各種型別(types)、類別(classes)、界面(interfaces)等等資料結構下,新增自行定義的方法(methods),而不受任何限制。 從程式開發者的角度來看,延伸方法能從使用者的角度,替任何型別或類別加入方法,十分具有吸引力。因此我們也希望能夠在維持相容性的前提下,在Java平台上使用延伸方法。本論文從C#實作延伸方法的方式著手,將其精神導入Java平台,並提供一個在Java平台上使用延伸方法的機制,而不需要修改Java編譯器(Java compiler)及Java虛擬機器(Java VM),以確保此機制的相容性。

並列摘要


參考文獻


[1] E. Bruneton, R. Lenglet and T. Coupaye, “ASM: a code manipulation tool to implement adaptable systems”, Adaptable and extensible component systems, November 2002, Grenoble, France.
[2] E. Kuleshov, “Using ASM framework to implement common bytecode transformation patterns”, AOSD.07, March 2007, Vancouver, Canada.
[3] ObjectWeb Consortium, “ASM - Home Page”, http://asm.objectweb.org/
[4] ObjectWeb Consortium, “Overview (ASM 3.0 Documentation)”, http://asm.objectweb.org/asm30/javadoc/user/index.html
[5] com_a, “代碼動態生成利器ASM”, http://www.matrix.org.cn/resource/article/1178.html

延伸閱讀