English  |  正體中文  |  简体中文  |  Post-Print筆數 : 27 |  Items with full text/Total items : 113648/144635 (79%)
Visitors : 51572106      Online Users : 717
RC Version 6.0 © Powered By DSPACE, MIT. Enhanced by NTU Library IR team.
Scope Tips:
  • please add "double quotation mark" for query phrases to get precise results
  • please goto advance search for comprehansive author search
  • Adv. Search
    HomeLoginUploadHelpAboutAdminister Goto mobile version
    Please use this identifier to cite or link to this item: https://nccur.lib.nccu.edu.tw/handle/140.119/55387


    Title: 以型態導向方法發展多型剖面的織入技術與應用 (I)
    Other Titles: A Type-Directed Approach to Developing Static Weaving Techniques for Polymorphic Aspects and Its Applications
    Authors: 陳恭
    Contributors: 政治大學資訊科學系
    行政院國家科學委員會
    Keywords: 剖面導向程式設計;多型剖面;織入;多型型態系統;型態推理
    Aspect-Oriented Programming;Polymorphic Aspects;Weaving;Type Inference
    Date: 2006
    Issue Date: 2012-11-12 11:01:56 (UTC+8)
    Abstract: 剖面導向程式設計(Aspect-Oriented Programming, AOP)是近年來繼物件導向程式設計(OOP)後,所興起的一種新的程式設計方法。從AOP的觀點來看,應用程式除了功能邏輯以外,還有許多像安全需求等的橫跨性關注(crosscutting concerns);實現這些橫跨性關注的程式碼應該要從功能模組中分離出來,自成一模組並稱之為剖面。剖面與功能模組之間的界接點由所謂橫跨點(pointcut)來定義,並透過稱之為織入(weaving)的機制將剖面程式碼整合入功能模組中,從而合成完整程式,滿足系統整體需求。這樣實現橫跨性關注的程式碼就可以集中封裝於適當的模組中,避免掉程式碼糾結與重複的問題。近幾年來關於剖面程式設計的各項研究蓬勃發展,從剖面程式語言、開發工具、剖面設計與分析,到剖面的理論基礎,都可見到了許多的研究成果陸續發表出來。這些研究成果大多集中在探討像AspectJ這類以物件導向為基礎的剖面語言的各個面向,因這類語言都不具備參數式多型(parametric polymorphism)的功能,所以關於多型剖面(Polymorphic/generic aspects)的研究尚屬起步階段。不過去年推出的Java 5已提供多型(或稱泛型Generics)的機制,所以我們認為實有必要針對多型剖面所帶來的技術與理論的挑戰加以探討,好替下一代的剖面語言奠定基礎。目前多型剖面的研究主要是以具備多型機制的函數式語言為基礎,雖然已經有了一些重要的結果,但仍然有許多可以改善加強的地方。舉例而言,如何適當整合高階函數與多型剖面就還是一個重要的研究課題。本計劃擬以兩年的時間,以型態導向的方法發展一套多型剖面的織入技術,並將其應用到AspectJ與泛型程式設計上。目前關於多型剖面的織入處理研究,雖然也會採用型態資訊,但是還是以語法結構為基礎,以致於不能處理像高階函數的間接呼叫,也無法解決多個形態有重疊的剖面的織入問題。我們提出所謂的諮詢型態(advised types)的概念,將剖面織入的需求內入型態之中,透過型態推理(type inference)的過程,選擇出型態相容的剖面在適當的環境(context)下織入功能程式模組。這樣以型態推演程序完成織入的作法,不僅可以避免單就語法結構來決定織入剖面的缺點,並有機會可以替多型剖面奠定一個良好的理論基礎,並進而在泛型程式的設計上,導入剖面機制,改善泛型程式的模組結構。
    Aspect-oriented programming (AOP) aims at modularizing concerns such as profiling and security that crosscut the components of a software system. In AOP, a program consists of many functional modules and some aspects that encapsulate the crosscutting concerns. An aspect provides two specifications: A pointcut, comprising a set of functions, designate when and where to crosscut other modules; and an advice, which is a piece of code, that will be executed when a pointcut is reached. The complete program behaviour is derived by some novel ways of composing functional modules and aspects according to the specifications given within the aspects. This is called weaving in AOP. Weaving results in the behaviour of those functional modules impacted by aspects being modified accordingly. Introducing aspect orientation to a polymorphically typed functional language strengthens the importance of type-scoped advices, i.e., advices with their effects harnessed by type constraints. As types are typically treated as compile time entities, it is highly desirable to be able to perform static weaving to determine at compile time the chaining of type-scoped advices at their associated join points. In this paper, we describe a compilation model, as well as its implementation, that supports static type inference and static weaving of programs in an aspect-oriented polymorphically typed lazy functional language, AspectFun. We also introduce many advanced aspect features to AspectFun, and show how these features are handled by our compilation model. We present a type-directed weaving scheme that coherently weaves type-scoped advices into the base program at compile time. We provide the detailed proof of the correctness of the static weaving with respect to the operational semantics of AspectFun. We also demonstrate how control-flow based pointcuts (such as CFLOWBELOW) are compiled away, and highlight several type-directed optimization strategies that can improve the efficiency of woven code.
    Relation: 基礎研究
    學術補助
    研究期間:9508~ 9607
    研究經費:685仟元
    Data Type: report
    Appears in Collections:[資訊科學系] 國科會研究計畫

    Files in This Item:

    File SizeFormat
    report17.pdf1938KbAdobe PDF2904View/Open


    All items in 政大典藏 are protected by copyright, with all rights reserved.


    社群 sharing

    著作權政策宣告 Copyright Announcement
    1.本網站之數位內容為國立政治大學所收錄之機構典藏,無償提供學術研究與公眾教育等公益性使用,惟仍請適度,合理使用本網站之內容,以尊重著作權人之權益。商業上之利用,則請先取得著作權人之授權。
    The digital content of this website is part of National Chengchi University Institutional Repository. It provides free access to academic research and public education for non-commercial use. Please utilize it in a proper and reasonable manner and respect the rights of copyright owners. For commercial use, please obtain authorization from the copyright owner in advance.

    2.本網站之製作,已盡力防止侵害著作權人之權益,如仍發現本網站之數位內容有侵害著作權人權益情事者,請權利人通知本網站維護人員(nccur@nccu.edu.tw),維護人員將立即採取移除該數位著作等補救措施。
    NCCU Institutional Repository is made to protect the interests of copyright owners. If you believe that any material on the website infringes copyright, please contact our staff(nccur@nccu.edu.tw). We will remove the work from the repository and investigate your claim.
    DSpace Software Copyright © 2002-2004  MIT &  Hewlett-Packard  /   Enhanced by   NTU Library IR team Copyright ©   - Feedback