aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNotkea2018-06-06 15:38:54 +0200
committerGitHub2018-06-06 15:38:54 +0200
commitc984cf99239cc887b5c6a747d20da6ce0c73adb2 (patch)
treee69340ebff1bf2ac40af92ffbe429a6cf72d9db4
parent771a1470cf4630670c8bb4ba8436bfc7cd2e38ca (diff)
downloadtpc-compiler-c984cf99239cc887b5c6a747d20da6ce0c73adb2.tar.gz
bleh
-rw-r--r--doc/rapport.md10
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
131Le programme doit être doté d'une fonction `void main(void)` qui sera le point d'entrée du programme.
132La 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
131Il 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. 137Il 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
133Tous 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. 139Tous 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
138Les 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. 144Les 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