From 024f721091055ddf0a192d2eab20cbe90b797801 Mon Sep 17 00:00:00 2001 From: Anthony Debucquoy Date: Sun, 23 Mar 2025 17:54:23 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20de=20rapport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rapport/rapport.tex | 105 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 88 insertions(+), 17 deletions(-) diff --git a/rapport/rapport.tex b/rapport/rapport.tex index 3207d4f..9005b9b 100644 --- a/rapport/rapport.tex +++ b/rapport/rapport.tex @@ -6,6 +6,8 @@ \usepackage[pdftex]{graphicx} \usepackage{amsmath, amsfonts, amssymb, amsthm} \usepackage{fullpage} +\usepackage[inline]{enumitem} +\usepackage{hyperref} \title{Rapport du projet de compilation \\ Umons 2024-2025} \author{Debucquoy Anthony} @@ -20,17 +22,70 @@ \newpage -\section{Consigne} -% - Une description brève du projet; +\section*{Préface} -\section{Grammaire}% -\label{sec:la grammaire} +Ce document retrace le dévelopement d'un compilateur de \textit{\textbf{S}imple \textbf{P}rogramme +en \textbf{F}rançais} dans le cadre du projet de compilation de L'\textit{Universitée de Mons}. + +Ce projet est supposé être un projet de groupe. Mais lorsque les consignes du projets été données, +J'ai rapidement voulu me faire une idée de l'ampleur de celui-çi en tentant une première version. +En restant sur ma lancée je suis arrivé très rapidement à un résultat satisfesant à mes yeux et +pratiquement fonctionnelle (non exampt de bugs évidement). J'ai alors fait la demande à \textit{Mr. +DECAN Alexandre} notre assistant et la personne référente du projet. +Celui-çi m'a confirmé que je pourrais accomplir se projet par moi même. + +\section{Consigne} + +Il nous est demandé de déveloper un interpreteur pour le language \textbf{SPF}, un language de +programmation \textit{faiblement et statiquement typé} dans lequel les instructions sont en +français. + +Voici une liste semi-exhaustive de ce qui nous est demandé. + +\begin{itemize} + \item Une ligne commençant par le character \verb|#| sont ignorés + \item Une instruction se termine par le character \verb|;| + \item les types suivant doivent être implémentés: + \begin{enumerate*} + \item \verb|entier| + \item \verb|texte| + \item \verb|liste| + \item \verb|booléen| + \end{enumerate*} + \item une déclaration est de la forme \verb| ;| ou \verb| = ;| + \item une assignation est de la forme \verb| = dans | + +L'affichage d'une expression à l'écrant se fait à l'aide de l'instruction \\\ +\verb|afficher (, ...);| + +Finallement, les boucle \verb|for| sont semblables à celle en python avec comme syntaxe \\ +\verb| dans faire{...}| + +On remarquera aussi que pour les variables initiés dans les tests et boucles sont limités à leurs +portée. + + +\section{Grammaire} % – Une description de la grammaire implémentée et des points sensibles % la concernant; -\section{Approche}% -\label{sec:Approche} +\section{Approche} % – Une explication de votre approche pour gérer : % ∗Les variables, leur déclaration, leur type et l’affichage via --trace; @@ -39,27 +94,43 @@ % ∗La boucle pour chaque, incluant la gestion de la variable tempo- % raire. -\section{Erreurs}% -\label{sec:Les erreurs} +\section{Erreurs} % – Une description brève des erreurs connues et des solutions envisagées; -\section{Difficultés}% -\label{sec:Difficultés} +\section{Difficultés} % – Une brève présentation des difficultés rencontrées et des solutions % implémentées/envisagées; -\section{Utilisation de l'IA}% -\label{sec:Utilisation de l'IA} +\section{Utilisation de l'IA} -% – Les points éventuels pour lesquels vous avez fait appel à une IA6 -% (ChatGPT, CoPilot, etc.); +Lorsque je travaille pour apprendre je ne souhaite en général pas utiliser d'IA dans le but de me +former mieux. Il m'arrive plus d'utiliser cet outils dans le but de me faciliter la tache pour un +travail fastidieux que je suis certains de savoir faire et dont je peux vérifier la fiabilitée par +moi même. -\section{Répartition du travail}% -\label{sec:Répartition du travail} +Ceci dis, lors de l'élaboration de ce projet je me suis vu utiliser l'IA à un moment. J'ai tenté de +donner ma grammaire déjà ecrite à chatgpt (modèle GPT-4o à travers https://duck.ai/) en lui +demandant de me générer une série de programme utilisant ce language qui pourraient me servir de +test. L'objectif est d'avoir plus d'examples de programmes que ceux données par la consigne. + +Néamoins après très peu de temps je me suis ravisé et ai simplement ignoré la réponse donnée car les +proposition de programmes étaient bien trop simple et ne tentaient pas du tout de "piéger" mon +implémentation. + +Pour être tout à fait claire, c'est la seule et unique utilisation de l'ia que j'ai faite jusqu'à +maintenant mais je compte utiliser LanguageTool à la fin de la rédaction de ce rapport pour m'aider +à coriger les évantuelles fautes commises dans ce document. + +\section{Répartition du travail} + +Comme précisé dans la préface de ce document, je me suis chargé de l'intégralité du projet. J'ai +commencé par me faire la main avec la librairie proposée (lark) par le tutoriel du parser json. +Ensuite le projet s'est très vite mis en place. Plusieurs révisions ont été nécéssaire pour faire +correspondre le projet aux attentes, vous pouvez les consulter dans l'historique du repo git à +l'adresse \url{https://git.herisson.ovh/tonitch/compilation} -% – La répartition du travail au sein du groupe. \end{document}