Abstract:
Tiger is a language designed as a reference for
pedagogical compiler writing. Our C++ implementation of a
Tiger compiler takes advantage of well-established
practices in program transformation tools.
The multi-core era has made parallelization a requirement
in any computer science curriculum. As a support for
teaching, our compiler has to evolve and make use of modern
parallel techniques.
This report introduces a solution to distribute work in a
task-based concurrency model using Intel Threading Building
Blocks (TBB) to decouple the programming from hardware
specificities.
Resumé :
Tiger est un langage utilisé à des fins pédagogiques
dans l'étude des compilateurs. Écrite en C++, notre
implémentation d'un compilateur Tiger profite de
techniques éprouvées dans la transformation de
programmes.
L'ère du multi-cur a rendu la parallélisation
indispensable dans le cursus d'un étudiant en
informatique. Utilisé comme support de cours, notre
compilateur doit évoluer et tirer profit des nouvelles
techniques de parallélisme.
Ce rapport présente une solution pour distribuer le
travail au sein d'un modèle de programmation concurrente
par tâche. Nous utiliserons Intel Threading Building
Blocks pour nous détacher des problématiques matérielles.
to top