IFCC est un compilateur développé pour traduire du code source écrit dans un sous-ensemble de C en code assembleur Intel x86 ou RISC-V.
Pour compiler IFCC, suivez ces étapes :
- Assurez-vous que vous avez
make, ainsi queantlret son runtime C++ installés sur votre système. Vous pouvez installer antlr via le scriptinstall-antlr.sh. - Allez dans le répertoire racine du projet IFCC.
- Créez le fichier
config.mkcorrespondant à votre installation d'ANTLR, ou utilisez un des fichiers fourniDI.mk(installation via le script),fedora.mk,ubuntu.mk:
ln -s <fichier>.mk config.mk- Lancez la commande
make.
Une fois IFCC compilé, vous pouvez utiliser le compilateur pour traduire votre programme écrit dans le sous-ensemble de C pris en charge. Voici comment procéder :
- Écrivez votre programme dans un fichier avec l'extension
.c. - Utilisez la commande suivante pour compiler votre programme :
./ifcc [-t target] [-o <nom_fichier_cible>.s] [-d] [-s] <nom_fichier_source>.c- L'option
-t targetvous permet de spécifier l'architecture cible pour la génération de l'assembleur. Vous pouvez choisir entrex86-64pour Intel x86 etrv64pour RISC-V. Par défaut, le code est compilé en assembleur Intel x86. - L’option
-o <nom_fichier_cible>.spermet de spécifier le nom du fichier de sortie pour le code assembleur généré. Par défaut, le nom du fichier de sortie est./out.s. - L'option
-spermet d'afficher le code généré dans la sortie standard - L'option
-dpermet d'afficher une représentation de la représentation intermédiaire dans la sortie d'erreur
Après avoir généré le code assembleur, vous devez l'assembler et le linker en fonction de l'architecture cible. Selon votre machine, vous pouvez par exemple procéder comme suit :
- Pour assembler et linker le code assembleur en code exécutable Intel x86 :
gcc <nom_fichier_source>.s [-o <nom_executable>]- Pour assembler et linker le code assembleur en code exécutable RISC-V :
riscv64-linux-gnu-gcc <nom_fichier_source>.s [-o <nom_executable>]Par défaut, le nom de l’exécutable généré est ./a.out.
Une fois que vous avez obtenu l'exécutable, vous pouvez l'exécuter en utilisant la commande suivante :
./a.outSi vous avez compilé en RISC-V et souhaitez exécuter le programme sur un émulateur, veuillez utiliser l'émulateur approprié pour l'architecture RISC-V.
IFCC est livré avec un ensemble de tests d'intégration pour vérifier son bon fonctionnement. Les tests se trouvent dans le dossier tests/testfiles/. Vous pouvez exécuter tous les tests en utilisant la commande suivante :
make checkCela lancera les tests avec l'architecture Intel x86 et RISC-V. Vous pouvez également spécifier make check-x86 ou make check-rv64 pour exécuter les tests sur une architecture spécifique.
Le code est documenté via dowygen, pour générer la documentation en local, éxécuter make doc.