Début de rapport
This commit is contained in:
		| @ -6,6 +6,8 @@ | |||||||
| \usepackage[pdftex]{graphicx} | \usepackage[pdftex]{graphicx} | ||||||
| \usepackage{amsmath, amsfonts, amssymb, amsthm} | \usepackage{amsmath, amsfonts, amssymb, amsthm} | ||||||
| \usepackage{fullpage} | \usepackage{fullpage} | ||||||
|  | \usepackage[inline]{enumitem} | ||||||
|  | \usepackage{hyperref} | ||||||
|  |  | ||||||
| \title{Rapport du projet de compilation \\ Umons 2024-2025} | \title{Rapport du projet de compilation \\ Umons 2024-2025} | ||||||
| \author{Debucquoy Anthony} | \author{Debucquoy Anthony} | ||||||
| @ -20,17 +22,70 @@ | |||||||
|  |  | ||||||
| \newpage | \newpage | ||||||
|  |  | ||||||
| \section{Consigne} | \section*{Préface} | ||||||
| % - Une description brève du projet; |  | ||||||
|  |  | ||||||
| \section{Grammaire}% | Ce document retrace le dévelopement d'un compilateur de \textit{\textbf{S}imple \textbf{P}rogramme | ||||||
| \label{sec:la grammaire} | 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 | % – Une description de la grammaire implémentée et des points sensibles | ||||||
| % la concernant; | % la concernant; | ||||||
|  |  | ||||||
| \section{Approche}% | \section{Approche} | ||||||
| \label{sec:Approche} |  | ||||||
|  |  | ||||||
| % – Une explication de votre approche pour gérer : | % – Une explication de votre approche pour gérer : | ||||||
| % ∗Les variables, leur déclaration, leur type et l’affichage via --trace; | % ∗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- | % ∗La boucle pour chaque, incluant la gestion de la variable tempo- | ||||||
| % raire. | % raire. | ||||||
|  |  | ||||||
| \section{Erreurs}% | \section{Erreurs} | ||||||
| \label{sec:Les erreurs} |  | ||||||
|  |  | ||||||
| % – Une description brève des erreurs connues et des solutions envisagées; | % – Une description brève des erreurs connues et des solutions envisagées; | ||||||
|  |  | ||||||
| \section{Difficultés}% | \section{Difficultés} | ||||||
| \label{sec:Difficultés} |  | ||||||
|  |  | ||||||
| % – Une brève présentation des difficultés rencontrées et des solutions | % – Une brève présentation des difficultés rencontrées et des solutions | ||||||
| % implémentées/envisagées; | % implémentées/envisagées; | ||||||
|  |  | ||||||
| \section{Utilisation de l'IA}% | \section{Utilisation de l'IA} | ||||||
| \label{sec:Utilisation de l'IA} |  | ||||||
|  |  | ||||||
| % – Les points éventuels pour lesquels vous avez fait appel à une IA6 | Lorsque je travaille pour apprendre je ne souhaite en général pas utiliser d'IA dans le but de me | ||||||
| % (ChatGPT, CoPilot, etc.); | 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}% | Ceci dis, lors de l'élaboration de ce projet je me suis vu utiliser l'IA à un moment. J'ai tenté de | ||||||
| \label{sec:Répartition du travail} | 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} | \end{document} | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user