The McLab Project
Welcome to the McLab web page. Our goal is to provide a framework that consists of languages, compilers and virtual machines that improve the experience of dynamic scientific computing languages, particularly MATLAB. We start with the MATLAB language and extensions of the MATLAB language such as AspectMatLab. Please visit the projects page for a list of components that have been developed or are under development.
We would like to design and implement specific features and optimizations that are of interest and use to scientists and engineers. As such, we would love to work with groups of scientists or engineers that deal with MATLAB. If you are interested in working with us please visit our contact page.
We have published in a number of areas regarding dynamic scientific languages. These include MATLAB to Fortran compiling, refactoring and parallelism. A list of our conference publications, tech reports and graduate theses is available on the publications page. We invite current or potential graduate students as well as those interested in collaboration to contact us.
Research Areas
Analysis Tools
We are aiming to develop tools that ease the analysis of MATLAB and the design of compilers that target different backends.
Static Tools
We are designing compilers to allow for code that is developed in MATLAB to be translated into languages such as Fortran. This allows code written in MATLAB to be later compiled into a production system written in a standardized language. Currently, we have compilers for Fortran, Mix10 and .NET. Compilers for C++ and JavaScript are being developed.
JIT Compilers
The goal is to provide a virtual machine that is coupled with an optimizing JIT. We aim to provide a platform to help researchers explore both static and dynamic techniques for dynamic scientific languages. We also aim to provide a viable alternative interpreter implementation for MATLAB.
Programmer Tools
We are developing tools to improve the usability of MATLAB. We are exploring areas such as IDEs and learning subsets that improve a MATLAB programmer's productivity.
Web Scientific Computing
We are interested in bringing dynamic scientific computing languages to the web. Our research includes testing the performance of browsers and web technologies with our Ostrich Benchmark Suite, using JavaScript as a target language and realizing decentralized scientific computing on the web.
Parallel Scientific Computing
We aim to develop tools that allow compiler writers for dynamic scientific langauges to easily incorporate parallelism into their tools. Our Velociraptor toolkit provides a target intermediate representation called VRIR that it optimizes and compiles to native parallel code.