跳到主要內容

臺灣博碩士論文加值系統

(35.172.223.30) 您好!臺灣時間:2021/07/25 09:46
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:林佳瑩
研究生(外文):Lin, Jia Yin
論文名稱:剖面導向函數語言之模組化狀態處理
論文名稱(外文):Design and Implementation of Aspects for Localizing Side-Effects
指導教授:陳恭陳恭引用關係
指導教授(外文):Chen, Kung
學位類別:碩士
校院名稱:國立政治大學
系所名稱:資訊科學學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2009
畢業學年度:97
語文別:英文
論文頁數:58
中文關鍵詞:剖面導向函式語言狀態處理惰性求值
外文關鍵詞:aspect-oriented programmingside-effectlazy semanticsmonadification
相關次數:
  • 被引用被引用:0
  • 點閱點閱:105
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
剖面所進行的運算通常都牽涉到狀態處理。在純粹函數式語言中,利用monadification技術添加狀態處理的剖面必須對程式碼做橫跨性的修改。本論文提出讓純粹函數式語言的剖面具備狀態處理功能,而使用者不須額外改寫既有程式碼的方法。我們提出了簡單直接的狀態操作語言機制,可以用來開發狀態處理剖面;並且設計出系統化的monadification規則,讓編譯器自動對程式碼做轉換,並維持惰性求值的特性。
Computations performed in many typical aspects involve side effects. In a purely functional setting, adding such aspects using techniques such as monadification will generally lead to crosscutting changes. This thesis presents an approach to provide side-effecting aspects for purely lazy functional languages in a user transparent fashion. We propose a simple yet direct state manipulation construct for developing side-effecting aspects and devise a systematic monadification scheme to translate the woven code to a purely monadic style functional code. To maintain the lazy evaluation feature, the monad employed is extended with cache functionality.
1 Introduction 1
1.1 Motivation 1
1.2 Research Objectives 2
1.3 Contributions 2
1.4 Organization of This Thesis 3
2 Background 4
2.1 Monad 4
2.2 Related Work 5
2.3 AspectFun Language 7
2.3.1 Type-Scoped Advice and Advised Types 9
2.3.2 Curried Pointcuts 12
2.3.3 Control-flow Based Pointcuts 13
2.3.4 Second-Order Advice 15
3 Side-Effecting Aspects 17
4 Monadifying Aspect Programs 23
4.1 Pre-Processing 24
4.1.1 A-Normal Form 24
4.1.2 Specialized η-conversion 25
4.2 Monadifying Pure Expressions 26
4.3 Monadifying State-Aware Functions 28
4.4 Preserving Laziness 32
4.5 Monadifying Programs Using Control Flow-Based Pointcuts 41
5 Transforming Monadic Programs 42
5.1 Using Monad Transformers 42
5.2 Unified Monadification Scheme 44
6 Conclusions and Future Work 46
7 References 48
Appendix 50
[1] Kung Chen, Shu-Chun Weng, Meng Wang, Siau-Cheng Khoo, and Chung-Hsin Chen. A compilation model for aspect-oriented polymorphically typed functional languages. In Static Analysis, 14th International Symposium, SAS 2007, volume 4634 of LNCS, pages 34-51. Springer-Verlag, 2007.
[2] Martin Erwig and Delin Ren. Monadification of functional programs. Science of Computer Programming, 52(1-3):101-129, 2004.
[3] Cormac Flanagan, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. The essence of compiling with continuations. In Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation, pages 237-247, 1993.
[4] John Hatcliff and Olivier Danvy. A generic account of continuation-passing styles. In Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 237-247, 1993.
[5] Christian Hofer and Klaus Ostermann. On the relation of aspects and monads. In Foundations of Aspect-Oriented Languages Workshop at AOSD, pages 37-46. ACM Press, 2007.
[6] Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of aspectj. In ECOOP '01: Proceedings of the
15th European Conference on Object-Oriented Programming, volume 2072 of LNCS, pages 327-353. Springer-Verlag, 2001.
[7] Amir Kishon. Theory and Art of Semantics-Directed Program Execution Monitoring. PhD thesis, Yale University, June 1992.
[8] Amir Kishon and Paul Hudak. Semantics directed program execution monitoring. Journal of Functional Programming, 5(4):501-547, 1995.
[9] Ralf Lammel. Reuse by program transformation. In Functional Programming Trends 1999. Intellect, 2000. Selected papers from the 1st Scottish Functional Programming Workshop. Intellect, 2000.
[10] Sheng Liang, Paul Hudak, and Mark Jones. Monad transformers and modular interpreters. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on
Principles of Programming Languages, pages 333-343, 1995.
[11] W. De Meuter. Monads as a theoretical foundation for aop. In International Workshop on Aspect-Oriented Programming at ECOOP, 1997.
[12] Philip Wadler. The essence of functional programming. In Proceedings of the 19th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1-14, 1992.
[13] Meng Wang, Kung Chen, and Siau-Cheng Khoo. Type-directed weaving of aspects for higher-order functional languages. In PEPM '06: Workshop on Partial Evaluation and Program Manipulation, pages 78-87. ACM Press, 2006.
[14] Keith Wansbrough and Simon Peyton Jones. Once upon a polymorphic type. In Twenty-sixth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 15-28, January 1999.
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top