Loading...
|
Please use this identifier to cite or link to this item:
https://nccur.lib.nccu.edu.tw/handle/140.119/94858
|
Title: | 剖面導向函數語言之模組化狀態處理 Design and Implementation of Aspects for Localizing Side-Effects |
Authors: | 林佳瑩 Lin, Jia Yin |
Contributors: | 陳恭 Chen, Kung 林佳瑩 Lin, Jia Yin |
Keywords: | 剖面導向 函式語言 狀態處理 惰性求值 aspect-oriented programming side-effect lazy semantics monadification |
Date: | 2009 |
Issue Date: | 2016-05-09 12:02:29 (UTC+8) |
Abstract: | 剖面所進行的運算通常都牽涉到狀態處理。在純粹函數式語言中,利用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. |
Reference: | [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. |
Description: | 碩士 國立政治大學 資訊科學學系 95753004 |
Source URI: | http://thesis.lib.nccu.edu.tw/record/#G0095753004 |
Data Type: | thesis |
Appears in Collections: | [資訊科學系] 學位論文
|
Files in This Item:
File |
Size | Format | |
index.html | 0Kb | HTML2 | 547 | View/Open |
|
All items in 政大典藏 are protected by copyright, with all rights reserved.
|