Début de rapport
This commit is contained in:
		| @ -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} | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user