INF7641 - Devoir 2
Devoir à remettre le mardi 25 février avant 9h par courriel à privat.jean@uqam.ca.
Le travail est individuel.
Opérateurs booleens
L’objectif est d’ajouter les opérateurs logiques booléens traditionnels &&
, ||
et !
.
Tâche 1
- Étendez le langage MiniC avec ces opérateurs.
- Utilisez la priorité habituelle du C pour ces opérateurs.
- Attention aux ambiguïtés !
Tâche 2
- Étendez l’analyse de type pour valider que les opérateurs booléen soient correctement typés. Les trois opérations n’acceptent et ne retournent que des
bool
. - Note: cette sémantique diffère de celle du C.
Tâche 3
- Étendez l’interpréteur pour implémenter les trois opérations booléennes.
- Comme en C, assurez-vous que ces opérateurs soient paresseux.
Tâche 4 (à partir du 18 février)
- Étendez le compilateur naïf pour implémenter les trois opérations booléennes.
- Toujours paresseux.
Tests
- des programmes d’exemple sont disponibles boolop.c et boolopfun.c
Remise:
Pour la partie 1 (tâches 1, 2 ,3)
- Envoyez par courriel un patch (diff) unique (un seul commit) applicable sur le tag
devoir2
du dépôt de code du cours. - Assurez-vous que votre diff soit minimal et se concentre seulement sur les objectifs demandés. Ne touchez pas à des lignes pas rapport.
- Vous pouvez utiliser la commande
git format-patch devoir2..HEAD
pour générer un patch à attacher à votre courriel. - Voire directement
git send-email
! - Important : si vous forkez le dépôt sur gitlab, passez le en privé !
Devoir 2 : Épisode deux (tâche 4)
- Même directives. Envoyez un second patch, mais basez vous sur le tag devoir2-episode2
- Note: vous pouvez faire un seul patch pour les deux épisodes (les 4 tâches) en vous basant sur le tag
devoir2-episode2
.