lien github: https://github.com/fxy233/PLD-COMP.git
lien description: https://docs.google.com/document/d/1eGIWu76q2qLuqb54eIOfVNwOtDT2kNKgQNGqfvG0bxE/edit?usp=sharing
-
Utiliser le command
make
dans le répertoire compiler pour générer les exécutable selon notre code.cd compiler make
-
L'exécutable s'appelle
ifcc
, vous pouvez ajouter le programme C à compiler juste après. Le résultat obtenue est un fichier assembleur../ifcc test.c
-
Vous pouvez aussi utiliser le bash script
compile2exec.sh
pour obtenir le ficher exécutable de votre programme C directement. Ce ficher exécutable s'appèlea.out
./compile2exec.sh test.c ./a.out
-
Calcul Arithmétique
int main (){ int a = 5, b, c; b = 47; c = a * (a + 3) - 5 * (5 + (5 * (4 + (1)))) + b * a + a / b; return c; }
-
if...else...
int main() { int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 0; if (a == b) { } else { if (b<c) { if (a <= c) { if (d != e) { if (c > a) { if (e >= f) { g = 100; } else { g = 200; } } } } } } return g; }
-
while
int main(){ int i = 0; while(i - 10){ i = i + 1; } return i; }
-
for
int main(){ int j = 0; int a = 0; for(int i = 0; i < 20; i++){ j = 0; while(j < 12){ j = j + 1; a = a + 1; } } return a; }
-
tableau
int main() { int n = 5; int a[n]; int i = 0; for(; i < n;){ a[i] = i; i++; } return 0; }
-
Appel de getchar et putchar
int main(){ int a = getchar(); a++; putchar(a); return 0; }
-
Création des nouvelles fonctions (Récursive possible)
int naturalSum(int n); int main() { int range = 10; int res; res = naturalSum(range); return res; } int naturalSum(int n) { if (n > 0) { int temp = n - 1; return n + (naturalSum(temp)); } else { return 0; } }
-
Double déclaration
int main() { int a, b; int a = 7; // error: the variable a has been declared before ! return a; }
-
Affectation sans déclaration
int main() { int a, b; c = 4; // error: the variable c has not been declared before ! return a; }
-
Vérification d’initialisation
int main() { int a, b; a = b; // error: the variable b has not been initialised before ! return a; }
-
Déclaration du fonction
int main() { int a = 5, b =10; int c = max(a, b); // error: the function max has not been declared before ! return c; } int max(int a, int b) { if (a < b) { return b; } else { return a; } }
-
Nombre de paramètres cohérent avec déclaration (signature de fonction)
int max(int a) int main() { int a = 5, b =10; int c = max(a, b); // error: the function max doesn't have the same signature as declaration before ! return c; } int max(int a, int b) { if (a < b) { return b; } else { return a; } }
-
Scope des variables
int main(){ if(1){ int a = 20; } int b = a; return a; // error : the variable a has not been initialized ! }
-