X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e8d70b1b4abe17f1425aa7b8d4e582cd02372766..54ea6ee880f52c23279bf58262ca245b531d04b0:/doc/concepts.tex diff --git a/doc/concepts.tex b/doc/concepts.tex index 7e3c1c5..68780e2 100644 --- a/doc/concepts.tex +++ b/doc/concepts.tex @@ -144,9 +144,9 @@ This partial order is not quite sufficient for our purposes. For each class $C$, we shall need to extend it into a total order on $C$'s superclasses. This calculation is called \emph{superclass linearization}, and the result is a \emph{class precedence list}, which lists each of $C$'s superclasses -exactly once. If a superclass $B$ precedes (resp.\ follows) some other -superclass $A$ in $C$'s class precedence list, then we say that $B$ is a more -(resp.\ less) \emph{specific} superclass of $C$ than $A$ is. +exactly once. If a superclass $B$ precedes or follows some other superclass +$A$ in $C$'s class precedence list, then we say that $B$ is respectively a +more or less \emph{specific} superclass of $C$ than $A$. The superclass linearization algorithm isn't fixed, and extensions to the translator can introduce new linearizations for special effects, but the @@ -607,9 +607,9 @@ message. The method combination determines which direct method rôles are acceptable, and, for each rôle, the appropriate argument lists and return types. -One direct method, $M$, is said to be more (resp.\ less) \emph{specific} than +One direct method, $M$, is said to be more or less \emph{specific} than another, $N$, with respect to a receiving class~$C$, if the class defining -$M$ is a more (resp.\ less) specific superclass of~$C$ than the class +$M$ is respectively a more or less specific superclass of~$C$ than the class defining $N$. \subsubsection{The standard method combination} @@ -695,7 +695,7 @@ entry functions. node [above right = 0mm and -8mm] {$\vcenter{\hbox{\Huge\textcolor{red}{!}}} \vcenter{\hbox{\begin{tabular}[c]{l} - \textsf{next_method} \\ + @|next_method| \\ pointer is null \end{tabular}}}$}; @@ -1127,7 +1127,7 @@ counting system, as follows. [role = around] \\ int obj.teardown() \\ \{ \\ \ind - if (--\,--me@->ref.nref) return (1); \\ + if (@--me@->ref.nref) return (1); \\ else return (CALL_NEXT_METHOD); \-\\ \} \-\\ \}