Return to search

McSAF: An extensible static analysis framework for the MATLAB language

MATLAB is a popular language for scientific and numerical programming. Despite its popularity, there are few active rojects providing open tools for MATLAB related compiler research. This thesis provides the McLAB Static Analysis Framework, McSAF, the goal of which is to simplify the development of new compiler tools for MATLAB. The McLAB project was started in order to develop such tools in the hopes of attracting further research. The goal of the project is to provide an extensible compiler toolkit for MATLAB and scientific programming. It is intended to explore the compilation challenges unique to MATLAB and to explore new language features that could help scientific programmers be more productive. One piece of functionality that is particularly important for compiler research is the ability to perform static analysis. Without the information provided by static analyses, program transformations and optimizations, and automated programmer feedback would not be possible. In order to make the development of static analyses simpler, this thesis contributes a framework for creating static analyses for the MATLAB language. This framework is intended to make writing analyses easier by providing core functionality and API for developing such analyses. It also aims to make analysis development easier by providing an intermediate representation called McLAST, which provides simpler syntax and explicitly exposes some of MATLAB's semantics. In order to give analysis writers a head start, some example analyses are provided. These include simple analyses intended to demonstrate the use of the framework, and some more complicated analyses that provide basic semantic information about MATLAB programs. In addition to the framework making development of analyses simpler, McSAF is also designed to be extended to new language features. Not only can the framework be extended, but existing analyses can also be extended. This allows work that was previously done for analyzing MATLAB code to be applied to future language extensions. / MATLAb est un langage de programmation science et numérique utilisé autant en industrie que dans le milieu académique. Malgré cette popularité, peu de project de rercherhe on été entreprise dans le but de produire une suite de compilation pour MATLAB. Cette thèse contribue le McLAB Static Analysis Framework, McSAF, qui a l'objectif de simplifier le développement des nouveaux outils de compilation pour MATLAB. Le projet McLAB fait suite à ce manque, dans l'espoir d'attiser les recherches sur ce sujet. L'objectif principale ce résume au développent d'une trousse de compilation extensible pour MATLAB et les langage de programmation pour science. Le projet est motivé par des défis de compilation unique à MATLAB, et par l'exploration de nouvelles structures syntaxical améliorant l'expérience de programmation scientifique. L'une des fonctionnalité cher au domaine de la compilation est l'habilité a performer des analyses statique de programme. Sans ces informations que nous procures l'analyse statique, une grande partie des transformations et autres optimisations désiré lors du processus de compilation ne serait pas possible. Pour rendre la développent des analyses statique plus simple, cette thèse contribue un cadre pour créer des analyses statique pour le langage MATLAB. L'objectif de ce cadre est de rendre la programmation des analyses plus simple en fournissant les fonctionnalités de base et une API pour développer de telles analyses. Un autre objectif est de rendre le développent des analyses plus simple en fournissant une représentation intermédiaire, \mclast, qui fourni une syntaxe plus simple est qui expose les sémantiques de MATLAB. Pour aider les écrivains d'analyse, quelques exemples d'analyse sont fournis. En plus, quelques analyses utiles sont également fournis. Ces analyses fournissent des informations de base reliée à les sémantiques de MATLAB. Ils ont des application partout dans le projet. L'objectif final du cadre est d'être extensible. Le framework doit fonctionner avec des nouvelles structure de langue. Sa veut dire que les programmeur peuvent créer des nouvelles analyses pour ces extension, et que les analyses qui existaient pour le langage de base, peut être adapter aux nouvelles structure.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.106412
Date January 2012
CreatorsDoherty, Jesse
ContributorsLaurie Hendren (Internal/Supervisor)
PublisherMcGill University
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
LanguageEnglish
Detected LanguageFrench
TypeElectronic Thesis or Dissertation
Formatapplication/pdf
CoverageMaster of Science (School of Computer Science)
RightsAll items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.
RelationElectronically-submitted theses.

Page generated in 0.0016 seconds