diff options
author | Adam NAILI | 2018-06-06 01:23:12 +0200 |
---|---|---|
committer | Adam NAILI | 2018-06-06 01:23:12 +0200 |
commit | 8b58c6409f4217ceaf64d6195b383f03b8acf584 (patch) | |
tree | e8114323c7721a01eb3c65497bca41dbe8317b86 /doc | |
parent | aa16ecbb7e3a3dbd9ecc5c3d5e12f7c96a41974f (diff) | |
parent | 9c2f38eab053a48a7c46ed267379764177cecdd8 (diff) | |
download | tpc-compiler-8b58c6409f4217ceaf64d6195b383f03b8acf584.tar.gz |
Merge branch 'master' of https://github.com/pacien/upem-compil-tpc
Diffstat (limited to 'doc')
-rw-r--r-- | doc/rapport.md | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/rapport.md b/doc/rapport.md index 17a5719..b5bfad8 100644 --- a/doc/rapport.md +++ b/doc/rapport.md | |||
@@ -95,8 +95,15 @@ Pour des raisons de simplicité, il a été choisi de travailler principalement | |||
95 | 95 | ||
96 | ## Fonctions | 96 | ## Fonctions |
97 | 97 | ||
98 | ## Passage de paramètres | ||
99 | |||
98 | Il a été choisi d'effectuer le passage des paramamètres simples (de types `entier` et `caractere`) par copie pour des raisons de simplicité et de sécurité, pour permettre une certaine isolation des contextes lors de l'entrée dans une fonction. | 100 | Il a été choisi d'effectuer le passage des paramamètres simples (de types `entier` et `caractere`) par copie pour des raisons de simplicité et de sécurité, pour permettre une certaine isolation des contextes lors de l'entrée dans une fonction. |
99 | 101 | ||
102 | Tous les paramètres sont implicitement convertis en type `entier`, la vérification du typage des paramètres s'avérant difficile. De plus, il n'est pas possible de passer un tableau en paramètre par référence. | ||
103 | |||
104 | |||
105 | ## Retour de valeur | ||
106 | |||
100 | Les fonction valuées retournent leur valeur en suivant les conventions d'appel des fonctions C, c'est-à-dire en la plaçant dans le registre `rax`. L'appelant récupère ensuite cette valeur pour pouvoir la stocker dans la pile. | 107 | Les fonction valuées retournent leur valeur en suivant les conventions d'appel des fonctions C, c'est-à-dire en la plaçant dans le registre `rax`. L'appelant récupère ensuite cette valeur pour pouvoir la stocker dans la pile. |
101 | 108 | ||
102 | L'analyse statique des branchements étant un problème relativement complexe, il a été choisi de retourner une valeur par défaut (`-1`) en cas d'absence d'instruction de retour dans une fonction valuée. | 109 | L'analyse statique des branchements étant un problème relativement complexe, il a été choisi de retourner une valeur par défaut (`-1`) en cas d'absence d'instruction de retour dans une fonction valuée. |