Enriching MATLAB with aspect-oriented features for developing embedded systems

This article presents an approach to enrich the MATLAB language with aspect-oriented modularity features, enabling developers to experiment different implementation characteristics and to acquire runtime data and traces without polluting their base MATLAB code. We propose a language through which programmers configure the low-level data representation of variables and expressions. Examples include specifically-tailored fixed-point data representations leading to more efficient support for the underlying hardware, e.g., digital signal processors and application-specific architectures, without built-in floating point units. This approach assists developers in adding handlers and monitoring features in a non-invasive way as well as configuring MATLAB functions with optimized implementations. Different aspect modules can be used to retarget common MATLAB code bases for different purposes and implementations. We validate the proposed approach with a set of representative examples where we attain a simple way to explore a number of properties. Experiment results and collected aspect-oriented software metrics lend support to the claims on its usefulness.

[1]  Prithviraj Banerjee,et al.  Automatic conversion of floating point MATLAB programs into fixed point FPGA based hardware design , 2003, 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2003. FCCM 2003..

[2]  Jack W. Davidson,et al.  Exploring the limits of sub-word level parallelism , 2000, Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622).

[3]  Miguel P. Monteiro,et al.  Adding aspect-oriented features to MATLAB , 2006 .

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  W. Press,et al.  Numerical Recipes: The Art of Scientific Computing , 1987 .

[6]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[7]  Sanghamitra Roy,et al.  An algorithm for converting floating-point computations to fixed-point in MATLAB based FPGA design , 2004, Proceedings. 41st Design Automation Conference, 2004..

[8]  John W. Eaton,et al.  GNU Octave Manual Version 3 , 2008 .

[9]  William H. Press,et al.  Numerical recipes in C. The art of scientific computing , 1987 .

[10]  Wayne Luk,et al.  Ieee Transactions on Computer-aided Design of Integrated Circuits and Systems Accuracy Guaranteed Bit-width Optimization Abstract— We Present Minibit, an Automated Static Approach for Optimizing Bit-widths of Fixed-point Feedforward Designs with Guaranteed Accuracy. Methods to Minimize Both the In- , 2022 .

[11]  Jeffrey G. Gray,et al.  Concern Separation for Adaptive QoS Modeling in Distrbuted Real-Time Embedded Systems , 2010 .

[12]  Wayne Luk,et al.  LARA: an aspect-oriented programming language for embedded systems , 2012, AOSD '12.

[13]  John R. Gilbert,et al.  Aspect-Oriented Programming of Sparse Matrix Code , 1997, ISCOPE.

[14]  Miguel P. Monteiro,et al.  Identification and Characterization of Crosscutting Concerns in MATLAB Systems , 2010 .

[15]  Wolfgang Schröder-Preikschat,et al.  Implementing OS components in hardware using AOP , 2012, OPSR.

[16]  Robert Glück,et al.  Generative Programming and Active Libraries , 1998, Generic Programming.

[17]  Claude Gomez,et al.  Engineering and Scientific Computing with Scilab , 1998 .

[18]  Laurie Hendren Typing aspects for MATLAB , 2011 .

[19]  James R. Cordy,et al.  The TXL source transformation language , 2006, Sci. Comput. Program..

[20]  João Saraiva,et al.  Program and Aspect Metrics for MATLAB , 2012, ICCSA.

[21]  Sanghamitra Roy,et al.  An Algorithm for Trading Off Quantization Error with Hardware Resources for MATLAB-Based FPGA Design , 2005, IEEE Trans. Computers.

[22]  Pierre-Etienne Moreau,et al.  Tom: Piggybacking Rewriting on Java , 2007, RTA.

[23]  João Saraiva,et al.  A domain-specific aspect language for transforming MATLAB programs , 2010 .

[24]  Siobhán Clarke,et al.  Model-driven automation for simulation-based functional verification , 2012, TODE.

[25]  Stefan Hanenberg,et al.  Expressing different conceptual models of join point selections in aspect-oriented design , 2006, AOSD.

[26]  François Bodin,et al.  A user level program transformation tool , 1998, ICS '98.

[27]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[28]  Randy Allen Compiling High-Level Languages to DSPs , 2005 .

[30]  William H. Press,et al.  Numerical Recipes 3rd Edition: The Art of Scientific Computing , 2007 .

[31]  Hidehiko Masuhara,et al.  A Compilation and Optimization Model for Aspect-Oriented Programs , 2003, CC.

[32]  Alok N. Choudhary,et al.  Precision and error analysis of MATLAB applications during automated hardware synthesis for FPGAs , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[33]  Siobhán Clarke,et al.  An aspect-oriented, model-driven approach to functional hardware verification , 2012, J. Syst. Archit..

[34]  Scott A. Mahlke,et al.  Bitwidth cognizant architecture synthesis of custom hardwareaccelerators , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[35]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[36]  Miguel P. Monteiro,et al.  Identification and Characterization of Crosscutting Concerns in MATLAB Systems 1 , 2010 .

[37]  João M. P. Cardoso,et al.  A Methodology to Design FPGA-based PID Controllers , 2006, 2006 IEEE International Conference on Systems, Man and Cybernetics.

[38]  Carlos Eduardo Pereira,et al.  High-Level Design Space Exploration of Embedded Systems Using the Model-Driven Engineering and Aspect-Oriented Design Approaches , 2010 .

[39]  R. Allen,et al.  Compiling high-level languages to DSPs: automating the implementation path , 2005, IEEE Signal Processing Magazine.

[40]  Laurie J. Hendren,et al.  AspectMatlab: an aspect-oriented scientific programming language , 2010, AOSD.

[41]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[42]  Lus Gomes,et al.  Behavioral Modeling for Embedded Systems and Technologies: Applications for Design and Implementation , 2009 .

[43]  Scott Hauck,et al.  Precis: a usercentric word-length optimization tool , 2005, IEEE Design & Test of Computers.

[44]  Laurie J. Hendren,et al.  Kind analysis for MATLAB , 2011, OOPSLA '11.

[45]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .