doc/: Switch to a manually maintained bibliography database.
[sod] / doc / concepts.tex
index 7e3c1c5..8e774fe 100644 (file)
@@ -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
@@ -159,8 +159,8 @@ following properties are expected to hold.
   list, i.e., $B$ is a more specific superclass of $C$ than $A$ is.
 \end{itemize}
 The default linearization algorithm used in Sod is the \emph{C3} algorithm,
-which has a number of good properties described in~\cite{Barrett:1996:MSL}.
-It works as follows.
+which has a number of good properties described
+in~\cite{barrett-1996:monot-super-linear-dylan}.  It works as follows.
 \begin{itemize}
 \item A \emph{merge} of some number of input lists is a single list
   containing each item that is in any of the input lists exactly once, and no
@@ -263,8 +263,9 @@ It works as follows.
 
   \end{itemize}
 
-  (This example combines elements from \cite{Barrett:1996:MSL} and
-  \cite{Ducournau:1994:PMM}.)
+  (This example combines elements from
+  \cite{barrett-1996:monot-super-linear-dylan} and
+  \cite{ducournau-1994:monot-multip-inher-linear}.)
 \end{example}
 
 \subsubsection{Class links and chains}
@@ -607,9 +608,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 +696,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 +1128,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);                         \-\\
     \}                                                        \-\\
   \}