Correction de quelques typos

This commit is contained in:
Mysaa 2022-08-07 14:55:54 +02:00
parent 8e64e14dc0
commit 380b23f527
Signed by: Mysaa
GPG Key ID: 7054D5D6A90F084F

View File

@ -32,8 +32,9 @@
Dans cette section, je vais rappeler quelques notations et définitions du langage Featherweight Java \cite{fjdef}. Le lecteur souhaitant toutes les définitions complètes devra lire \cite[Section 1]{fjdef}.
On utilisera la notation du sur-lignage afin d'indiquer une liste finie d'élément.
Par exemple, on notera $f(\overline{a})$ pour indiquer un appel de la forme $f(a_1,a_2,\dots,a_n)$.
On utilisera la notation du sur-lignage afin d'indiquer une liste finie d'éléments.
Par exemple, on aura la notation
\[f(\overline{a})\quad\equiv\quad f(a_1,a_2,\dots,a_n)\]
Tout d'abord, on rappelle la grammaire des expressions, qui seront souvent notées $e$, $e_k$ ou $e'$, qui est la suivante:
@ -49,7 +50,7 @@
\end{center}
\fj{x} est un nom de variable, \fj{C} un nom de classe, \fj{f} un nom d'attribut de classe et \fj{m} un nom de méthode de classe.
On dit d'une expression qui ne contient pas de noms de variable (\autoref{rule:expr:variable}) qu'elle est \emph{fermée}. Dans la suite du document, nous allons utiliser le terme \enquote{expression} pour désigner les expressions fermées. Les expressions quelconques seront désignées par \emph{expressions ouvertes} ou \emph{expressions à variables}, parfois notées $h$.
On dit d'une expression qui ne contient pas de référence à des variables (\autoref{rule:expr:variable}) qu'elle est \emph{fermée}. Dans la suite du document, nous allons utiliser le terme \enquote{expression} pour désigner les expressions fermées. Les expressions quelconques seront désignées par \emph{expressions ouvertes} ou \emph{expressions à variables}, parfois notées $h$.
Nous allons ausssi noter $\alpha$,$\beta$,$\varepsilon$,$\gamma$ les \eng{mappings} d'un ensemble de noms de variables vers un ensemble d'expressions fermées. On va ainsi définir la complétion d'une expression à variables par un de ces \eng{mappings}, ce qui sera noté $h\bracket{\alpha}$ où l'on remplace chaque occurrence d'une variable par l'image par $\alpha$ de ce nom de variable.
@ -65,14 +66,13 @@
La relation de réduction dépend de la \eng{class table} $\mathcal{A}$ utilisée. On la notera $\rightarrow_\mathcal{A}$ ou simplement $\rightarrow$ si il n'y a pas dambigüité. On notera aussi $\rightarrow^*_\mathcal{A}$ ou $\rightarrow^*$ la cloture transitive et réflexive de la relation. On notera enfin $e\Downarrow v$ lorsque $e \rightarrow^* v$ et $v$ est une valeur. On pourra même écrire $e \Downarrow$ pour dire $\exists v \quad e \Downarrow v$.
Cette relation est définie avec deux types de règles (
\cite[Fig.3]{fjdef}, les règles de type \textsc{R} qui indiquent :
Cette relation est définie avec deux types de règles \cite[Fig.3]{fjdef}, les règles de type \textsc{R} qui indiquent :
\begin{itemize}
\item L'évaluation d'un attribut d'un objet (\textsc{R-Field})
\item L'évaluation d'une méthode (\textsc{R-Invk})
\item L'évaluation d'un cast (\textsc{R-Cast})
\end{itemize}
L'autre type sont les règles de type \textsc{RC} qui sont les règles de \enquote{congruence}, permettant l'évaluation dans n'importe quelle sous-expression.
Et les règles de type \textsc{RC} qui sont les règles de \enquote{congruence}, permettant l'évaluation dans n'importe quelle sous-expression.
Enfin, nous reprenons la définition de la classe \fj{Paire} issue du papier original, reproduite \autoref{fig:pairedef}
@ -108,7 +108,7 @@
La seconde classe est \fj{Int}, liée à des objets notés \fj{0}, \fj{1}, \fj{2}, \dots. Cette classe met a disposition une méthode \fj{Bool isZero()} qui renvoie \fj{true} si l'objet appelant est zéro, et renvoie \fj{false} sinon. Plusieurs méthodes sont définies en sus dans la définition complète présentée en \autoref{anx:moreclass} permettant de manipuler ces objets.%TODO Vérifier qu'elles le soient
Aussi, nous définirons souvent implicitement les classes \fj{A}, \fj{B} et \fj{C}, qui n'ont pas d'attributs ni de méthode (ce sont des \enquote{objets simples}).
Aussi, nous définirons souvent implicitement les classes \fj{A}, \fj{B} et \fj{C}, qui n'ont pas d'attribut et pas de méthode (ce sont des \enquote{objets simples}).
\subsection{Extension de Featherweight Java}
\marginpar{Voir pour enlever cette section si pas assez utilisée}