\chapter{Description} \section{Introduction} Etant donné la complexité relative de ce projet, nous avons choisi d'utiliser au maximum la compilation séparée. De plus, nous voulions réaliser une interface en mode texte, mais que le projet soit facilement extensible à des développements ultérieurs comme par exemple la réalisation d'une interface graphique pour X-Window, c'est pourquoi nous avons réuni l'essentiel des fonctions dans une librairie et que nous avons un fichier principal contenant la fonction main() de taille ridicule. Enfin cette programmation modulaire permet d'organiser facilement son code source et de pouvoir partager aisément le travail entre les différents étudiants. \section{Modules de calcul} \subsection{scalaires.c} Ce module réalise des opérations sur les scalaires. Comme prévu dans l'énoncé du sujet, les scalaires que nous avons considéré sont des rationnels supportant toutes les opérations classiques, auxquelles nous avons ajouté différents "constructeurs" comme le constructeur à partir de deux entiers ou le constructeur à partir d'un double. Etant donné que les constructeurs simplifient les fractions, toutes les fractions stockées en mémoire le sont toujours sous forme réduite. \subsection{polynom.c} Ce module nous permet d'effectuer toutes les opérations basiques sur les polynomes. On dispose d'un constructeur, d'un constructeur par recopie et d'un destructeur. La structure de données utilisée est une liste simplement chaînée de monomes fonctions.c \section{module d interprétation des lignes de commande} parser.c pile.c numbers.c \section{Modules de saisie et d'affichage} interface.c terminal.c \section{Module de gestion des erreurs} exceptions.c