ABSTRACT
This paper introduces a new aspect-oriented programming language, AspectMatlab. Matlab® is a dynamic scientific programming language that is commonly used by scientists because of its convenient and high-level syntax for arrays, the fact that type declarations are not required, and the availability of a rich set of application libraries.
AspectMatlab introduces key aspect-oriented features in a way that is both accessible to scientists and where the aspect-oriented features concentrate on array accesses and loops, the core computation elements in scientific programs.
Introducing aspects into a dynamic language such as Matlab also provides some new challenges. In particular, it is difficult to statically determine precisely where patterns match, resulting in many dynamic checks in the woven code. Our compiler includes flow analyses which are used to eliminate many of those dynamic checks.
This paper reports on the language design of AspectMatlab, the amc compiler implementation and related optimizations, and also provides an overview of use cases that are specific to scientific programming.
- abc. The AspectBench Compiler. Home page http://aspectbench.org.Google Scholar
- AspectJ Eclipse Home. The AspectJ home page. http://eclipse.org/aspectj/, 2003.Google Scholar
- P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible AspectJ compiler. In AOSD, pages 87--98. ACM Press, Mar. 2005. Google ScholarDigital Library
- A. Casey. The MetaLexer lexical specification language. Master's thesis, McGill, Sept 2009.Google Scholar
- K. Chen and C.-H. Chien. Extending the field access pointcuts of AspectJ to arrays. Journal of Software Engineering Studies, 2(2):93--102, June 2007.Google Scholar
- T. Ekman and G. Hedin. The Jastadd extensible Java compiler. In OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications, pages 1--18, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- B. Harbulot and J. R. Gurd. A join point for loops in AspectJ. In AOSD '06: Proceedings of the 5th international conference on Aspect-oriented software development, pages 63--74, New York, NY, USA, 2006. ACM. Google ScholarDigital Library
- J. M. F. JoÃčo M. P. Cardoso and M. P. Monteiro. Adding aspect-oriented features to Matlab, March 2006. Proceedings of SPLAT workshop at AOSD '06 http://www.aosd.net/workshops/splat/2006/papers/cardoso.pdf.Google Scholar
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In ECOOP, volume 2072, pages 327--353, 2001. Google ScholarDigital Library
- S. Kuzins. Efficient implementation of around-advice for the AspectBench compiler. Master's thesis, Oxford University, September 2004.Google Scholar
- R. Lämmel and K. De Schutter. What does aspect-oriented programming mean to Cobol? In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 99--110, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- J. D. F. Richard L. Burden. Numerical Analysis, eigth edition. Thomson Books/Cole, Belmont, California, 2005.Google Scholar
- D. S. Watkins. Fundamentals of Matrix Computations, second edition. John Wiley and Sons, 2002.Google Scholar
Index Terms
- AspectMatlab: an aspect-oriented scientific programming language
Recommendations
AspectMatlab++: annotations, types, and aspects for scientists
MODULARITY 2015: Proceedings of the 14th International Conference on ModularityIn this paper we present extensions to an aspect oriented compiler developed for MATLAB. These extensions are intended to support important functionality for scientists, and include pattern matching on annotations, and types of variables, as well as ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12Programmers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Comments