Logiciels Libres et Systèmes Embarqués


R3KCompiler

Compilateur pour le projet « processeur R3000 » du Master CAMSI

Résumé

Ce document est un tutoriel pour le compilateur R3KCompiler. Cet outils permet de générer, à partir d'un code en langage évolué, du code assembleur compatible avec les outils du projet « Processeur MIPS R3000 » du Master CAMSI.

Téléchargez R3KCompiler ici : R3KCompiler


1. Variables et syntaxe

Comme en C, toutes les variables doivent être déclarées avant leur utilisation. Cependant la syntaxe de ce langage est telle que toutes les variables sont du type entier signé 32 bits. Il est donc inutile de préciser un type... J'entends déjà les mauvaises langues dire « mais qu'est que c'est ce langage tout pourri... », je leur répondrais :

  • ce projet est libre, donc s'il ne vous convient pas, modifiez le !
  • ce projet est avant tout un « proof of concept », pour montrer que notre processeur « fait maison » peut exécuter des algorithmes sympathiques, et pas seulement des additions ou autres.
  • en 3 jours, je ne pouvais pas faire mieux, surtout que je n'avais presque jamais programmé en Perl...

Revenons-en à nos moutons, voilà comment déclarer des variables, avec une valeur par défaut :

iterator = 1
temp1 = 2
temp2 = 0
temp3 = 5

Vous avez dû remarquer qu'il n'y avait pas de « ; » en fin de ligne. En fait la syntaxe de ce langage n'autorise qu'une seule opération par ligne[1]. Pour faire une addition par exemple, on peut écrire :

temp2 = temp1 + 2

Mais on ne peut pas faire :

iterator = temp + 4 - 2

Pour mettre en commentaire une ligne, il suffit de la faire commencer par //.



[1] pour ceux qui ne sont pas contents, c.f. paragraphe précédent