This is the fourth big compiler project I have led. In the past my research groups have worked on (i) optimizing/parallelizing C (McCAT), (ii) optimizing and analyzing Java (Soot); and a compiler toolkit for language extensions and optimizations for AspectJ (abc).
Building on those previous experiences, McLab is an exciting new project where our goal is to bring together what we have learned about static optimizations, virtual machines, and extensible compiler frameworks to the domain of dynamic scientific languages. Our intent is to work with scientists to develop languages that provide good programming models and good execution performance.
I am a member of the Sable Research Group for compiler and computer language work, and GR@M for computer games research. I have also been involved with the development the McLab’s Virtual Machine.
My main research areas include: (i) Compiler (and runtime) optimization, where I currently focus on Java, and have particular interests in concurrency in optimization, use of speculation, and practical information flow; (ii) concurrency, both in terms of compilation issues, and theoretical/linguistic models; and (iii)modern computer games which are woefully under-analyzed.
I am a PhD student supervised by Professor Laurie Hendren. My research interests are in the field of compilers, program analysis and databases. I particularly like to explore array programming languages and combine array languages and in-memory databases. I learned my first array programming language APL, when I was a third year undergraduate. Later I wrote an APL dialect ELI. The experience on ELI motivated me to continue research in programming languages.
I’m a Postdoc in computer science at McGill University’s Sable research group. I received the Postdoctoral Fellowship Scholarship for his postdoctoral research at McGill from the Fonds de recherche du Québec - Nature et technologies (FRQNT) of the government of Quebec, Canada in 2013. My current project is to develop the compiler tools that can automatically compile Matlab code and generate equivalent optimized Java code and Android bytecode, so that the code can also be executed on the fast developing platforms for Java and Android. Thus, scientific programmers can make better use of these platforms to make their applications more open, more efficient and more compatible with various computing environment.
My thesis topic is compiling array-based languages to mixed CPU/GPU systems. I am reusable toolkit called Velociraptor for writing compilers for array-based languages to multi-cores and GPUs. Details can be found at here. The toolkit includes a code generator, a runtime system and an autotuning OpenCL matrix library called RaijinCL, all of which were written by me.
Dynamic languages such as MATLAB pose significant performance challenges, but also present great opportunities for optimizations. The dynamic behavior of programs written in those languages may be exploited to guide optimizations that improve performance. I worked under the supervision of Professor Laurie Hendren in the area of virtual machines and dynamic compilation of MATLAB-like languages. In particular, I worked on techniques and tools for optimizing dynamic languages and building on work from the virtual machine and static compiler areas.
I joined the lab in the summer of 2013. I have completed my Bachelor’s in Information Technology from University of Pune (India). My interests include, compilers and programming to parallel architectures. I am currently working on the VeloCty project for my Master’s thesis. My non-academic interests include travelling to new places and reading books among others.
I joined the lab in the fall of 2012. I’m interested in programmer tools; things like IDEs, static analyzers, automated refactoring tools, text editors… For my Master’s, I’m working on an IDE for MATLAB, with the theme of relying on dynamic information much more than static analysis.
I joined the lab in fall semester of the year 2012, and my interest is mainly about AspectMatlab.
My fascination with compilers started while writing a C decompiler for my undergrad project and after three years in industry I came to McGill for the master’s programme in Computer Science. Here I joined the Sable research group under the supervision of Professor Laurie Hendren to develop MiX10, a MATLAB to X10 compiler. MATLAB is an easy to use scientific program language and is widely used by scientists and engineers. On the other hand, X10 is an object-oriented, statically typed language specifically designed for high performance computing. The aim of MiX10 compiler is to help MATLAB users take advantage of the power of high performance computing, while still writing their programs in MATLAB.
I joined the lab in winter semester of the year 2012, and currently I am working on static analysis of Matlab and designing a backend to convert Matlab to Fortran95.
I joined the lab in february 2012, and I have worked on implementing a small JIT compiler to efficiently handle loops in MATLAB.
I am working on Analysis and Transformation engine of McLab project under the supervision of Laurie Hendren. Analysis and Transformation engine computes dependence between loop statements and apply various loop transformations that could improve the performance of programs. In MatLab the loop bounds are mostly determined at run time,so the profiler component of analysis and transformation engine generates data for different runs of the program.The data is then passed to heuristic engine to estimate appropriate ranges for loops in the program. Dependence Analysis and transformations are applied on the estimated ranges. The focus of my thesis is to avoid expensive run time dependence analysis tests and do most of the computations at compile time.
I have developed the AspectMatlab as part of my masters thesis under the supervision of professor Laurie Hendren. AspectMatlab extends the base Natlab (Neat Matlab) language by introducing the aspect-oriented features. Besides the basic functions related patterns, AspectMatlab provides the array accesses and loops specific patterns, much to the needs of a scientific programmer. Currently, a beta version of AspectMatlab Compiler (amc) is available.
I was one of the founding members of the McLab project and I created a large part of the front-end including the Natlab scanner and parser and the Matlab2Natlab converter. This work sparked my interest in composable compiler-generator tools. My M.Sc. thesis was the design and implementation of MetaLexer, a lexical analysis toolkit
I have completed my masters thesis at McGill University under the supervision of professors Laurie Hendren and Clark Verbrugge. The focus of my thesis was the design and implementation of the McVM virtual machine and its optimizing JIT compiler. This JIT compiler features a type-driven just-in-time function specialization system designed specifically for MATLAB code.
I started doing research as an undergraduate, both with the Sable group and also in other areas. During my M.Sc. studies I was one of the founding members of the McLab project. My main contributions are in the design and implementation of the McIR and analysis frameworks. However, I have also participated in the AspectMatlab project, designing the analysis which reduces weaving overhead.
I joined the McLab project as a summer undergraduate researcher and has continued on as a M.Sc. student. My main interest is in the McFor compiler, extending its functionality to cover as much of the MATLAB language as possible, and in the design of new language features. I have also contributed to the AspectMatlab project, designing various use cases for aspects in numerical computing.
My M.Sc. thesis was the design and development of the first version of the Matlab-to-Fortran compiler.
At Mclab we are working on Matlab language as it is used by researchers extensively. I am working with a team of researchers from other universities on refactoring Matlab source codes. We are hoping that the resulting toolkit will help scientists to code and debug in Matlab faster.
I am a CS undergrad and I joined the Sable lab in the summer of 2014. I am currently working on McTutorial, an introduction to MATLAB with a focus on properly explaining the syntax and semantics from a CS point of view rather than teaching solely by example.
I have a deeply ingrained passion for programming, be it under the hat of the software engineer or of the computer scientist.I enjoy anything that poses an challenge, but have had the most fun with compilers, game development, GPU programming, security, networked systems and object-oriented design. McCli is a back-end component of the McLAB compiler targeting the .NET platform. It transforms code from a subset of the MATLAB language into statically typed .NET bytecode. It provides a path for integrating MATLAB scripts into existing .NET applications on Windows, MacOS X, Linux and even Windows Phone.
For the convenience of analyzing Matlab code and collecting information for later phase, tamer convert Matlab to a low level IR, tamerIR, almost three address code. This low level IR has many temporary variables and not very friendly human readable, so my project goal is trying to aggregate those simplified code back to a higher level IR and make them more human readable
I joined the McLab project, just when it was starting, as a Brebeuf CEGEP intern in summer 2008, and then returned again in summer 2009. I have worked on benchmarks and the development of plotting functionality such that McVM can plot using GnuPlot.