Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 電機資訊學院
  3. 資訊工程學系
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/28247
完整後設資料紀錄
DC 欄位值語言
dc.contributor.advisor陳俊良
dc.contributor.authorMing-Lung Hsiehen
dc.contributor.author謝明龍zh_TW
dc.date.accessioned2021-06-13T00:03:32Z-
dc.date.available2007-08-01
dc.date.copyright2007-08-01
dc.date.issued2007
dc.date.submitted2007-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.urihttp://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.provenanceMade 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.isozh-TW
dc.title在Java上實作Extension Method之機制zh_TW
dc.titleA Mechanism of Extension Methods for the Java Programming Languageen
dc.typeThesis
dc.date.schoolyear95-2
dc.description.degree碩士
dc.contributor.oralexamcommittee廖世偉,甘宗左
dc.subject.keyword延伸方法,擴充方法,語言集成查詢,方法,物件導向,zh_TW
dc.subject.keywordextension method,LINQ,Language Integrated Query,.NET Framework,method,object-oriented,en
dc.relation.page54
dc.rights.note有償授權
dc.date.accepted2007-07-31
dc.contributor.author-college電機資訊學院zh_TW
dc.contributor.author-dept資訊工程學研究所zh_TW
顯示於系所單位:資訊工程學系

文件中的檔案:
檔案 大小格式 
ntu-96-1.pdf
  目前未授權公開取用
507.17 kBAdobe PDF
顯示文件簡單紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved