Début de rapport
This commit is contained in:
parent
d8f9ddcc4c
commit
024f721091
@ -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|<type> <nom>;| ou \verb|<type> <nom> = <expression>;|
|
||||
\item une assignation est de la forme \verb|<nom> = <expression;|
|
||||
\item Les noms de variables peuvent contenir des accents
|
||||
\item Il est possible de créer une liste d'éléments consécutive avec \verb|[a:b]| où a et b sont
|
||||
les bornes de la liste
|
||||
\end{itemize}
|
||||
|
||||
Le language contient également de nombreux opérateurs qui ne sont pas listés exhaustivement dans ce
|
||||
document car sont similaires à la pluspart des languages. Il est cependant à noté que les mots sont
|
||||
traduit de l'anglasi au français. Par example, \verb|true| deviens \verb|vrai| en SPF.
|
||||
|
||||
On remarque également que l'accés à la liste commence avec un indice de 1. Ainsi l'accés au deuxième
|
||||
élément de la liste l (\verb|liste l = [a, b, c];|) devrat être éffectué à l'aide de l'expression
|
||||
\verb|l[2]| et retournera la variable \verb|b|
|
||||
|
||||
L'ajout d'élément dauns une liste se fait à l'aide de l'instruction\\
|
||||
\verb|ajouter <expression> dans <variable>|
|
||||
|
||||
L'affichage d'une expression à l'écrant se fait à l'aide de l'instruction \\\
|
||||
\verb|afficher <expression> (, <expression> ...);|
|
||||
|
||||
Finallement, les boucle \verb|for| sont semblables à celle en python avec comme syntaxe \\
|
||||
\verb|<type> <variable> dans <expression> 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}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user