by
Hidehiko Masuhara, Hideaki Tatsuzawa and Akinori Yonezawa
Abstract:
We propose an aspect-oriented programming (AOP) language called Aspectual Caml based on a strongly-typed functional language Objective Caml with two AOP mechanisms similar to those in AspectJ language. This paper describes the design and implementation issues of those AOP mechanisms that give us insights into the interaction between AOP features and common features in strongly-typed functional languages such as type inference, polymorphic types and curried functions. We implemented a prototype compiler of the language and used the language for separating crosscutting concerns in application programs, including for separating descriptions of a type system from compiler descriptions.
Reference:
Aspectual Caml: an Aspect-Oriented Functional Language (Hidehiko Masuhara, Hideaki Tatsuzawa and Akinori Yonezawa), In Proceedings of International Conference on Functional Programming (ICFP 2005) (Benjamin Pierce, ed.), 2005. (Extended from [tatsuzawa2005foal].)
Bibtex Entry:
@inproceedings{masuhara2005icfp,
optannote = {},
optnote = {},
optpublisher = {},
optorganization = {ACM},
month = sep,
location = {Tallinn, Estonia},
optseries = {SIGPLAN},
optnumber = {},
optvolume = {},
editor = {Benjamin Pierce},
optkey = {},
year = 2005,
booktitle = {Proceedings of International Conference on Functional Programming (ICFP 2005)},
pdf = {icfp2005.pdf},
url = {https://www.icfpconference.org/archived/icfp2005/www.brics.dk/~danvy/icfp05/},
slides = {icfp2005-slides.pdf},
author = {Hidehiko Masuhara and Hideaki Tatsuzawa and Akinori Yonezawa},
title = {{A}spectual {C}aml: an Aspect-Oriented Functional Language},
note = {Extended from \cite{tatsuzawa2005foal}.},
pages = {320--330},
acceptanceratio = {33% (26/78)},
keywords = {OCaml},
abstract = {We propose an aspect-oriented programming (AOP) language called Aspectual Caml based on a strongly-typed functional language Objective Caml with two AOP mechanisms similar to those in AspectJ language. This paper describes the design and implementation issues of those AOP mechanisms that give us insights into the interaction between AOP features and common features in strongly-typed functional languages such as type inference, polymorphic types and curried functions. We implemented a prototype compiler of the language and used the language for separating crosscutting concerns in application programs, including for separating descriptions of a type system from compiler descriptions.}
}