ABSTRACT
In 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 new manners of exposing context. We provide use-cases of these features in the form of several general-use aspects which focus on solving issues that arise from use of dynamically-typed languages. We also detail performance enhancements to the ASPECTMATLAB compiler which result in an order of magnitude in performance gains.
- T. Aslam. AspectMatlab: An Aspect-Oriented Scientific Programming Language. Master’s thesis, McGill University, 2010. URL http: //www.sable.mcgill.ca/mclab/aspectmatlab/index.html.Google ScholarDigital Library
- T. Aslam, J. Doherty, A. Dubrau, and L. Hendren. AspectMatlab: An Aspect-Oriented Scientific Programming Language. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development, pages 181–192, March 2010. Google ScholarDigital Library
- J. a. M. P. Cardoso, J. a. M. Fernandes, M. P. Monteiro, T. Carvalho, and R. Nobre. Enriching MATLAB with aspect-oriented features for developing embedded systems. J. Syst. Archit., 59(7):412–428, Aug. 2013. ISSN 1383-7621.. URL http://dx.doi.org/10.1016/j. sysarc.2013.04.003. Google ScholarDigital Library
- L. Hendren. Typing aspects for MATLAB. In Proceedings of the Sixth Annual Workshop on Domain-specific Aspect Languages, DSAL ’11, pages 13–18, New York, NY, USA, 2011. ACM. ISBN 978-1-4503- 0648-5.. URL http://doi.acm.org.proxy1.library.mcgill. ca/10.1145/1960496.1960501. Google ScholarDigital Library
- J. Irwin, J.-M. Loingtier, J. Gilbert, G. Kiczales, J. Lamping, A. Mendhekar, and T. Shpeisman. Aspect-oriented programming of sparse matrix code. In Y. Ishikawa, R. Oldehoeft, J. Reynders, and M. Tholburn, editors, Scientific Computing in Object-Oriented Parallel Environments, volume 1343 of Lecture Notes in Computer Science, pages 249–256. Springer Berlin Heidelberg, 1997. ISBN 978-3-540-63827- 8.. URL http://dx.doi.org/10.1007/3-540-63827-X_68. Google ScholarDigital Library
- L. Jiang and Z. Su. Osprey: A practical type system for validating dimensional unit correctness of C programs. In Proceedings of the 28th International Conference on Software Engineering, ICSE ’06, pages 262–271, New York, NY, USA, 2006. ACM. ISBN 1-59593- 375-1.. URL http://doi.acm.org.proxy1.library.mcgill. ca/10.1145/1134285.1134323. Google ScholarDigital Library
- A. Kennedy. Types for units-of-measure: Theory and practice. In Proceedings of the Third Summer School Conference on Central European Functional Programming School, CEFP’09, pages 268–305, Berlin, Heidelberg, 2010. Springer-Verlag. ISBN 3-642-17684-4, 978-3-642- 17684-5. URL http://dl.acm.org.proxy2.library.mcgill. ca/citation.cfm?id=1939128.1939136. Google ScholarDigital Library
- MathWorks. MATLAB Programming Fundamentals. The MathWorks, Inc., 2009.Google Scholar
- C. Moler. The Growth of MATLAB and The MathWorks over Two Decades,. http://www.mathworks.com/company/ newsletters/news_notes/clevescorner/jan06.pdf.Google Scholar
- C. Moler. The Origins of MATLAB,. http://www.mathworks. com/company/newsletters/news_notes/clevescorner/ dec04.html.Google Scholar
- C. Noguera, A. Kellens, D. Deridder, and T. D’Hondt. Tackling pointcut fragility with dynamic annotations. In Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution, RAM-SE ’10, pages 1:1–1:6, New York, NY, USA, 2010. ACM. ISBN 978-1-4503-0536-5.. URL http://doi.acm.org.proxy1. library.mcgill.ca/10.1145/1890683.1890684. Google ScholarDigital Library
- M. J. Quinn, A. Malishevsky, and N. Seelam. Otter: Bridging the gap between MATLAB and ScaLAPACK. In Proceedings of the 7th IEEE International Symposium on High Performance Distributed Computing, HPDC ’98, pages 114–, Washington, DC, USA, 1998. IEEE Computer Society. ISBN 0-8186- 8579-4. URL http://dl.acm.org.proxy1.library.mcgill. ca/citation.cfm?id=822083.823199. Google ScholarDigital Library
- B. M. Ren, J. Toman, T. S. Strickland, and J. S. Foster. The Ruby Type Checker. In Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC ’13, pages 1565–1572, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-1656-9.. URL http://doi.acm. org.proxy1.library.mcgill.ca/10.1145/2480362.2480655. Google ScholarDigital Library
- L. D. Rose and D. Padua. Techniques for the translation of MATLAB programs into Fortran 90. ACM Trans. Program. Lang. Syst., 21(2): 286–323, 1999. ISSN 0164-0925.. Google ScholarDigital Library
Index Terms
- AspectMatlab++: annotations, types, and aspects for scientists
Recommendations
AspectMatlab: an aspect-oriented scientific programming language
AOSD '10: Proceedings of the 9th International Conference on Aspect-Oriented Software DevelopmentThis 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 ...
A theory of aspects
This paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from its user-friendly external language to its compact, well-defined core language. We argue that our framework is an ...
Side-effect localization for lazy, purely functional languages via aspects
Many side-effecting programming activities, such as profiling and tracing, can be formulated as crosscutting concerns and be framed as side-effecting aspects in the aspect-oriented programming paradigm. The benefit gained from this separation of ...
Comments