mirror of
https://github.com/LucasVbr/interpreteur-lir.git
synced 2026-07-09 15:08:05 +00:00
149 lines
5.8 KiB
TeX
149 lines
5.8 KiB
TeX
% \chapter{Présentation du projet}
|
||
\section{Définition générale du besoin : l'Interpréteur LIR}
|
||
L’Interpréteur LIR est un interpréteur d’un langage de programmation
|
||
simple, il sera nommé LIR pour Langage IUT de Rodez.
|
||
Un interpréteur est un automate enchaînant les tâches suivantes :
|
||
analyse lexico-syntaxique d’une ligne de commande puis interprétation.
|
||
\\Une ligne entrée par un utilisateur sera donc : soit une commande à
|
||
exécuter immédiatement, soit une ligne de programme à mémoriser pour
|
||
une exécution ultérieure. Une ligne de programme se distinguera d'une
|
||
ligne de commande par le fait qu'elle sera toujours précédée d'un
|
||
"numéro d'ordre" appelé aussi "étiquette".
|
||
|
||
\section{Cahier des charges}
|
||
Le document en annexe fourni par la maîtrise d’ouvrage (MOA) définit
|
||
l’interpréteur attendu avec les éléments du Langage IUT de Rodez, la
|
||
syntaxe des instructions de programmation et des commandes générales
|
||
attendues dans le logiciel final. Le document précise également le
|
||
comportement attendu de l’interpréteur lors de son utilisation suivi
|
||
d’un exemple d’une session sous cet interpréteur LIR.
|
||
|
||
\section{Définitions et acronymes}
|
||
\paragraph{Analyse syntaxique :}
|
||
La vérification de la conformité aux contraintes syntaxiques
|
||
définies par une grammaire.
|
||
|
||
\paragraph{Analyse lexicale :}
|
||
L’identification des éléments du vocabulaire d’un langage dans
|
||
une description textuelle (scanning) et la recherche des unités
|
||
lexicales (lexèmes).
|
||
|
||
\paragraph{Grammaire :}
|
||
Contraintes syntaxiques définissant les constructions correctes
|
||
(autorisées) d’un langage.
|
||
|
||
\paragraph{Interpréteur :}
|
||
Programme capable d’analyser les instructions d’un langage
|
||
(évolué) et de les exécuter directement.
|
||
|
||
\paragraph{Langage :}
|
||
Outil de description et d’expression.
|
||
|
||
\paragraph{Langage IUT de Rodez (LIR)}
|
||
|
||
\paragraph{Sémantique :}
|
||
Étude du sens des unités linguistiques et de leurs combinaisons.
|
||
\\Aspect de la logique qui traite de l'interprétation et de la
|
||
signification des systèmes formels, par opposition à la syntaxe, entendue
|
||
comme l'étude des relations formelles entre formules de tels systèmes
|
||
(d’après le dictionnaire Larousse).
|
||
|
||
\paragraph{Syntaxe :}
|
||
Partie de la grammaire qui décrit les règles par lesquelles les unités
|
||
linguistiques se combinent en phrases. En logique, étude des relations
|
||
formelles entre expressions d'un langage (d’après le dictionnaire
|
||
Larousse).
|
||
\\Aussi, la syntaxe est spécifiée par des grammaires et des notations
|
||
formelles.
|
||
|
||
\paragraph{Vocabulaire :}
|
||
Symboles de base utilisés dans un langage.
|
||
|
||
\section{Charte de projet}
|
||
\subsection{Objectifs du projet}
|
||
Réaliser un interpréteur capable d'exécuter un script ou une série
|
||
d'instructions dans le langage LIR avec les outils et connaissances
|
||
et mis à disposition par l’IUT de Rodez.
|
||
|
||
\subsection{Périmètre du projet}
|
||
Ce projet est doit être mené jusqu'à obtention d’un interpréteur
|
||
capable d’exécuter toutes les commandes précisées dans le cahier des
|
||
charges fourni.
|
||
|
||
\subsection{Demandes hors périmètre}
|
||
Il n’y a pas de demandes hors périmètre.
|
||
|
||
\subsection{Principaux livrables identifiés}
|
||
\paragraph{Livrables :} plan projet, dossier de projet, CD (de
|
||
préférence un dossier compressé plutôt qu’un CD) contenant les codes
|
||
exécutables les fichiers de données, les codes sources et la version
|
||
numérique du dossier et le manuel utilisateur.
|
||
|
||
\paragraph{Définition du cadre}
|
||
\subparagraph{Coût :} À définir par le chef de projet (P. Debas).
|
||
\subparagraph{Délais :} Deux dates butoirs identifiées.
|
||
\begin{itemize}
|
||
\item Remise du projet le vendredi 28 mai 2021.
|
||
\item Soutenance du projet la semaine du 7 juin 2021.
|
||
\end{itemize}
|
||
|
||
\subparagraph{Qualité :}
|
||
Projet codé en Java dans les respects des conventions et bonnes
|
||
pratiques.
|
||
|
||
\subsection{Les acteurs du projet}
|
||
|
||
\begin{center}
|
||
\begin{tabular}{rl}
|
||
L'équipe MOE : & N. CAMINADE, S. COURTIOL, \\
|
||
& P. DEBAS, H. DEXTER, \\
|
||
& L. VABRE \\
|
||
La MOA : & F. Barrios \\
|
||
Le contrôle qualité : & F. Barrios et J. Accot \\
|
||
\end{tabular}
|
||
\end{center}
|
||
|
||
\subsection{Autres moyens et ressources}
|
||
Pas de moyens ou ressources supplémentaires.
|
||
|
||
\subsection{Conditions d’acceptation}
|
||
Pas d’exigence ou de contraintes supplémentaires.
|
||
|
||
\subsection{Principaux risques identifiés et politique de gestion des risques}
|
||
Si possible tous les membres du groupe auront les mêmes droits sur
|
||
les fichiers communs. En conséquence chaque membre du groupe ne doit
|
||
pas donner des droits sur ces fichiers à une personne extérieure au
|
||
projet (autre que MOA). Cf. Gestion de la configuration (produit par
|
||
S. Courtiol).
|
||
\\Des sauvegardes du dépôt GitHub (contenant toutes les données du
|
||
projets) seront effectuées régulièrement (fréquence à définir) par le
|
||
gestionnaire de configuration. Toutes données qui ne sont pas dans le
|
||
dépôt sont à la responsabilité de chacun. Cf. Gestion de la
|
||
configuration (produit par S. Courtiol).
|
||
|
||
\section{Étude générale du besoin}
|
||
\paragraph{Diagramme de cas d'utilisation général de l'Interpréteur LIR}
|
||
comprenant un acteur (le programmeur) et deux cas d'utilisation
|
||
identifiés comme suit :
|
||
\\
|
||
|
||
\includegraphics[width=\linewidth]{./img/DiagrammeCasUtilisation.png}
|
||
|
||
\subsection{Les acteurs}
|
||
\paragraph{Programmeur :} % TODO à détailler
|
||
Personne utilisant l'interpréteur.
|
||
|
||
\subsection{Résumés de cas d'utilisation}
|
||
\subsubsection{\Large --- Exécuter une commande}
|
||
|
||
\input{./fichiers/etudeGeneraleBesoin/resumeCasUtilisation/resumeExecuterUneCommande.tex}
|
||
|
||
\subsubsection{\Large --- Éditer une ligne de code}
|
||
|
||
\input{./fichiers/etudeGeneraleBesoin/resumeCasUtilisation/resumeEditerUnProgramme.tex}
|
||
|
||
\subsection{Récits d'utilisation (user stories)}
|
||
Les récits d'utilisation %TODO déf
|
||
\\Des récits d'utilisation ont été rédigés pour chaque commande et instruction.
|
||
|