Return to search

Taming Matlab

MATLAB is a dynamic scientific language used by scientists, engineers and students worldwide. Although MATLAB is very suitable for rapid prototyping and development, MATLAB users often want to convert their final MATLAB programs to a static language such as FORTRAN, to integrate them into already existing programs of that language, to leverage the performance of powerful static compilers, or to ease the distribution of executables. This thesis presents an extensible object-oriented toolkit to help facilitate the generation of static programs from dynamic MATLAB programs. Our open source toolkit, called the MATLAB Tamer, targets a large subset of MATLAB. Given information about the entry point of the program, the MATLAB Tamer builds a complete callgraph, transforms every function into a reduced intermediate representation, and provides typing information to aid the generation of static code. In order to provide this functionality, we need to handle a large number of MATLAB builtin functions. Part of the Tamer framework is the builtin framework, an extensible toolkit which provides a principled approach to handle a large number of builtin functions. To build the callgraph, we provide an interprocedural analysis framework, which can be used to implement full-program analyses. Using this interprocedural framework, we have developed value analysis, an extensible interprocedural analysis to estimate MATLAB types, which helps discover the call edges needed to build the call graph. In order to make the static analyses even possible, we disallow a small number of MATLAB constructs and features, but attempt to support as large a subset of MATLAB as possible. Thus, by both slightly restricting MATLAB, and by providing a framework with powerful analyses and simplifying transformations, we can "Tame MATLAB". / MATLAB est un langage scientifique utilisé par des ingénieurs, scientifiques, et étudiants à travers le monde. Bien que MATLAB soit très approprié pour les prototypages et les développements rapides, les usagers veulent souvent convertir leurs programmes MATLAB finaux vers un langage statique tel FORTRAN, dans le but de les intégrer à des programmes existants dans ce langage, de tirer avantage des performances des compilateurs statiques plus puissants, ou de faciliter la distribution des fichiers exécutables. Cette thèse présente un toolkit extensible orienté objet pour faciliter la production de programmes statiques à partir de programmes MATLAB dynamiques. Notre toolkit à code source libre, appelé MATLAB Tamer («dompteur MATLAB »), vise un large sous-ensemble de MATLAB. À partir d'informations sur le point d'entrée du programme, le MATLAB Tamer construit un graphe d'appels complet, transforme chaque fonction en une représentation réduite intermédiaire et fournit l'information sur le typage pour faciliter la production du code statique. Pour fournir cette fonctionnalité, nous devons manipuler une grand nombre de fonctions MATLAB intégrées. Une partie du cadre du Tamer est le cadre intégré, un toolkit extensible fournissant une approche de principe pour manipuler un grand nombre de fonctions intégrées. Pour construire le graphe d'appels, nous fournissons un cadre d'analyse interprocédural pouvant être utilisé pour implanter des analyses de programmes complets. En utilisant ce cadre inter-procédural, nous avons développé l'analyse des valeurs, une analyse inter-procédurale extensible pour estimer les types MATLAB, pour aider à découvrir les arrêtes d'appels nécessaires pour construire le graphe d'appels. Pour pouvoir rendre faisable une analyse statique, nous interdisons un petit nombre de concepts et caractéristiques de MATLAB, mais nous tentons de supporter un sous-ensemble de MATLAB aussi grand que possible. Conséquemment, en restreignant légèrement MATLAB, en fournissant un puissant cadre d'analyse et en simplifiant les transformations, nous pouvons «dompter MATLAB».

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.107702
Date January 2012
CreatorsDubrau, Anton
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.0128 seconds