diff options
author | Notkea | 2018-06-06 15:38:54 +0200 |
---|---|---|
committer | GitHub | 2018-06-06 15:38:54 +0200 |
commit | c984cf99239cc887b5c6a747d20da6ce0c73adb2 (patch) | |
tree | e69340ebff1bf2ac40af92ffbe429a6cf72d9db4 /doc | |
parent | 771a1470cf4630670c8bb4ba8436bfc7cd2e38ca (diff) | |
download | tpc-compiler-c984cf99239cc887b5c6a747d20da6ce0c73adb2.tar.gz |
bleh
Diffstat (limited to 'doc')
-rw-r--r-- | doc/rapport.md | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/doc/rapport.md b/doc/rapport.md index 1728fee..5e91d8c 100644 --- a/doc/rapport.md +++ b/doc/rapport.md | |||
@@ -126,14 +126,20 @@ Pour des raisons de simplicité, il a été choisi de travailler principalement | |||
126 | 126 | ||
127 | ## Fonctions | 127 | ## Fonctions |
128 | 128 | ||
129 | ## Passage de paramètres | 129 | ### Fonction principale |
130 | |||
131 | Le programme doit être doté d'une fonction `void main(void)` qui sera le point d'entrée du programme. | ||
132 | La forme alternative `entier main(void)` est aussi acceptée par convention. La valeur retournée est ignorée et l'exécutable renverra toujours `0`. | ||
133 | |||
134 | |||
135 | ### Passage de paramètres | ||
130 | 136 | ||
131 | 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. | 137 | 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. |
132 | 138 | ||
133 | 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. | 139 | 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. |
134 | 140 | ||
135 | 141 | ||
136 | ## Retour de valeur | 142 | ### Retour de valeur |
137 | 143 | ||
138 | 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. | 144 | 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. |
139 | 145 | ||