Correction de quelques typos
This commit is contained in:
parent
8e64e14dc0
commit
380b23f527
@ -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}
|
||||
où \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 d’ambigü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}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user