|
RESEARCH PROJECT |
|
ASPECTS AND COMPILER OPTIMIZATIONS FOR MATLAB SYSTEM DEVELOPMENT |


|
Summary |
|
MATLAB is a high-level, interpreted, domain-specific language (DSL), mainly based on matrix data types and operations on them. The MATLAB environment, the richness of the language, the existence of domain-oriented packages, and the associated software tools, make the language one of the preferred choices to model and simulate complex systems (it is widely used in scientific computing, control systems, signal and image processing, system engineering, etc.). More than 800 books dedicated to MATLAB attest to its wide adoption. Suitable MATLAB properties include no need to declare variables (floating-point double precision representation is the default data type), operator overloading, function polymorphism and dynamic type specialization. However, tasks such as exploiting non-uniform fixed-point representations, monitoring certain variables during a timing window, or including handlers to watch specific behaviors are extremely cumbersome, error-prone and tedious. Each time these features are necessary, invasive changes on the original code, as well as insertion of new code need to be performed. This problem is felt in other implementation issues as well, since MATLAB can be regarded as a specification rather than an implementation language. Other open issues are related to efficient automatic synthesis of MATLAB specifications to a software language or a hardware description language. This project addresses the enrichment of MATLAB with aspect-oriented extensions to include additional information (e.g., type and shape of variables) and to experiment different implementation features (e.g., different implementations for the same function, certain type binding for variables, etc.). The proposed aspects aim to configure the low-level data representation of real variables and expressions, to specifically-tailored data representations that benefit from a more efficient support by target computing engines (e.g., fixed- instead of floating-point representations). The approach also aims to help developers to introduce handlers (code triggered when certain conditions may occur and with a richer functionality than assertions) and monitoring features, and to configure function implementations. We believe aspect-oriented extensions will help system modeling, simulation, and exploration of features conceiving system implementation. One of the advantages is related to the fact that a single version of the specification can be used throughout the entire development cycle rather than maintaining multiple versions, as is currently the case. The project includes research on: - aspect mining on MATLAB specifications to identify crosscutting concerns in a system, to enable migration of existing MATLAB specifications to aspect-oriented ones; - type inference analysis and memory minimization techniques to generate high-performance code and to achieve highly–abstract aspects; - specification and implementation of a declarative language to complement MATLAB with aspect rules. To automate the approach, a prototype weaver that generates optimized MATLAB code from input MATLAB specifications and aspect rules will be developed. Evaluation of the approach will be based on benchmarks from a number of domains and on MATLAB specifications from industry (space applications). |
|
To contact us:
INESC-ID Rua Alves Redol N. 9 1000-029 Lisboa Portugal
E-mail: jmpc@acm.org Fax: +351 21 3145843
INESC-ID Rua Alves Redol N. 9 1000-029 Lisboa Portugal |
|
Execution Period: December 1, 2007 November 30, 2010 |
|
To contact us:
INESC-ID Rua Alves Redol N. 9 1000-029 Lisboa Portugal
E-mail: jmpc@acm.org Fax: +351 21 3145843 |