Major Software Systems

  1. McLAB, a compiler and VM toolkit for scientific languages, including a front-end toolkit, a VM with JIT and a MATLAB-to-Fortran compiler
    http://www.sable.mcgill.ca/mclab.

    The McLab framework is a project for developing both toolkits and new analyses and techniques for dynamic scientific programming languages like Matlab. There is currently a real lack of such toolkits and it is our hope that by providing such a framework we can stimulate academic research into dynamic scientific language design and associated virtual machines and compilers.

    Currently the framework is being used by my research group and a graduate class. We have released the first version of the framework under an open source license. We have also released the AspectMatlab compiler.

  2. abc, the AspectBench Compiler, developed with Oxford, Aarhus and Waterloo,
    http://www.sable.mcgill.ca/abc/.

    The abc framework has become a popular framework for researchers designing and implementing new extensions to the aspect-oriented language AspectJ. Some of these extensions, which are also publicly-available are listed at http://www.sable.mcgill.ca/abc/projectsexts.

  3. Soot, a Java Bytecode Analysis and Transformation Framework,
    http://www.sable.mcgill.ca/soot/.

    Soot is probably our most widely used toolkit. It is not uncommon to see at least a couple of papers at each compiler conference which have used Soot as their main toolkit. It is also quite often used in advanced compiler courses. A wiki listing some users is found at https://svn.sable.mcgill.ca/wiki/index.cgi/SootUsers. Although this is just a voluntary list (and thus does not include many users) it does give a good flavour of the wide variety of research that uses Soot.

Laurie HENDREN 2017-08-19