請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/28247
完整後設資料紀錄
DC 欄位 | 值 | 語言 |
---|---|---|
dc.contributor.advisor | 陳俊良 | |
dc.contributor.author | Ming-Lung Hsieh | en |
dc.contributor.author | 謝明龍 | zh_TW |
dc.date.accessioned | 2021-06-13T00:03:32Z | - |
dc.date.available | 2007-08-01 | |
dc.date.copyright | 2007-08-01 | |
dc.date.issued | 2007 | |
dc.date.submitted | 2007-07-30 | |
dc.identifier.citation | [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 [6] Jeffrey Richter, “.NET: Type Fundamentals”, the December 2000 issue of MSDN Magazine. [7] Arun Ganesh, “Boxing and unboxing in C#”, http://www.codeproject.com/csharp/boxing.asp [8] Anson Horton, “The Evolution Of LINQ And Its Impact On The Design Of C#”, the June 2007 issue of MSDN Magazine. [9] The Visual Basic Team, “Articles about Extension Methods”, http://blogs.msdn.com/vbteam/pages/articles-about-extension-methods.aspx [10] Ian Griffiths, “C# 3.0 - Extension Methods”, http://www.interact-sw.co.uk/iangblog/2005/09/26/extensionmethods [11] Microsoft Public Sector Developer Evangelism Team, “Query over objects using LINQ just like you do tables with SQL”, http://blogs.msdn.com/publicsector/archive/2006/05/17/600202.aspx [12] Troy Magennis, “Random Sample Extension Method for .NET 3.0 LINQ queries”, http://www.codeproject.com/useritems/linqrandomsample.asp [13] Microsoft Corporation, “C# Version 3.0 Specification” [14] Paolo Pialorsi, Marco Russo, “Introducing Microsoft LINQ”, Microsoft Press, 2007 [15] Microsoft Developer Network, “Static Classes and Static Class Members (C# Programming Guide)”, http://msdn2.microsoft.com/en-us/library/79b3xss3(VS.80).aspx [16] Microsoft Developer Network, “資料型別 (C# 與 Java 的比較)”, http://msdn2.microsoft.com/zh-tw/library/ms228360(VS.80).aspx [17] Microsoft Developer Network, “類別基礎 (C# 與 Java 的比較)”, http://msdn2.microsoft.com/zh-tw/library/ms228632(VS.80).aspx [18] David Flanagan, Brett McLaughlin, “Java 5.0 Tiger: A Developer's Notebook”, O'Reilly, 2004 [19] Tim Lindholm, Frank Yellin, “The Java Virtual Machine Specification, Second Edition”, Prentice Hall, 1999 [20] 蔡學鏞, “Metadata 的格式和意義(下)”, http://www.microsoft.com/taiwan/msdn/columns/DoNet/metadata_2.htm [21] Sun Microsystems, “Java Platform, Standard Edition 6 API Specification”, http://java.sun.com/javase/6/docs/api/ [22] 蔡學鏞, “JVM 內的資料處理”, http://www.oreilly.com.tw/column_sleepless.php?id=j023 [23] Microsoft Developer Network, “MSIL Disassembler”, http://msdn2.microsoft.com/en-us/library/f7dy01k1(VS.80).aspx [24] David Flanagan, “Java in a Nutshell, Fifth Edition”, O'Reilly, 2005 | |
dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/28247 | - |
dc.description.abstract | 對全世界所有程式設計人員來說,微軟的.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),以確保此機制的相容性。 | zh_TW |
dc.description.provenance | Made available in DSpace on 2021-06-13T00:03:32Z (GMT). No. of bitstreams: 1 ntu-96-R94922096-1.pdf: 519338 bytes, checksum: 54c3c1b74e38f12b8fe6de5a6b30ddc1 (MD5) Previous issue date: 2007 | en |
dc.description.tableofcontents | 致謝 i
摘要 ii Abstract iii 目錄 iv 圖目錄 vi 表目錄 vii 第 1 章 簡介 - 1 - 1.1 研究背景 - 1 - 1.2 研究動機 - 2 - 1.3 論文架構 - 3 - 第 2 章 延伸方法 - 4 - 2.1 程序與方法 - 4 - 2.2 方法修飾子 - 6 - 2.3 靜態方法與實體方法 - 7 - 2.4 延伸方法 - 9 - 2.5 靜態類別 - 12 - 2.6 引入延伸方法 - 13 - 2.7 延伸方法呼叫 - 14 - 2.8 延伸方法之優先權順序 - 15 - 2.9 延伸方法的限制 - 17 - 第 3 章 設計與策略 - 18 - 3.1 在Java平台實作延伸方法的策略 - 18 - 3.2 DecTool的設計 - 23 - 3.3 InvTool的設計 - 25 - 第 4 章 實作 - 27 - 4.1 Java的延伸方法宣告 - 27 - 4.2 Java的延伸方法呼叫 - 31 - 4.3 工具程式的實作 - 32 - 4.4 Java的延伸方法設計流程 - 37 - 第 5 章 結論 - 38 - 5.1 討論 - 38 - 5.2 未來工作 - 38 - References - 40 - 附錄A C#的延伸方法實作 - 43 - A.1 C#實作延伸方法宣告的方式 - 43 - A.2 C#實作延伸方法呼叫的方式 - 44 - 附錄B Java類別檔案的格式 - 46 - 附錄C Annotation - 50 - 附錄D ASM Bytecode操作框架 - 51 - | |
dc.language.iso | zh-TW | |
dc.title | 在Java上實作Extension Method之機制 | zh_TW |
dc.title | A Mechanism of Extension Methods for the Java Programming Language | en |
dc.type | Thesis | |
dc.date.schoolyear | 95-2 | |
dc.description.degree | 碩士 | |
dc.contributor.oralexamcommittee | 廖世偉,甘宗左 | |
dc.subject.keyword | 延伸方法,擴充方法,語言集成查詢,方法,物件導向, | zh_TW |
dc.subject.keyword | extension method,LINQ,Language Integrated Query,.NET Framework,method,object-oriented, | en |
dc.relation.page | 54 | |
dc.rights.note | 有償授權 | |
dc.date.accepted | 2007-07-31 | |
dc.contributor.author-college | 電機資訊學院 | zh_TW |
dc.contributor.author-dept | 資訊工程學研究所 | zh_TW |
顯示於系所單位: | 資訊工程學系 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
ntu-96-1.pdf 目前未授權公開取用 | 507.17 kB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。