created mirror
This commit is contained in:
53
Documentation/DimBased/dim.ptex
Normal file
53
Documentation/DimBased/dim.ptex
Normal file
@@ -0,0 +1,53 @@
|
||||
% BE SURE TO EDIT design.ptex
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage{rcs}
|
||||
\RCS $Date: 2000/03/04 15:45:59 $
|
||||
\RCS $Revision: 1.1 $
|
||||
\date{Rev.\RCSRevision~~\RCSDate}
|
||||
|
||||
\title{Dimension-based thinking for ZigZag}
|
||||
\author{Tuomas J. Lukka}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\def\zz{ZigZag}
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
When designing the code to implement a \zz\ space, the
|
||||
place most people would start at would be the cell object, which would
|
||||
have a set of pointers to other cells, named with dimension names.
|
||||
However, this is not the only way to structure the internals - indeed,
|
||||
it is not necessarily a good way at all.
|
||||
|
||||
\section{Dimension-based view}
|
||||
|
||||
With cells, you have to always take steps to enforce the two-directional
|
||||
connection consistency rule.
|
||||
The dimension-based view starts from the realization that if we consider
|
||||
each {\em dimension} an entity by itself, this gets much simpler:
|
||||
simply put, each dimension is a one-to-one mapping from some cells of the
|
||||
space to some other cells.
|
||||
|
||||
\section{Advantages}
|
||||
|
||||
The dimension-based view has several advantages:
|
||||
\begin{itemize}
|
||||
\item {\bf Specialization}
|
||||
It is much easier to define a single dimension object to
|
||||
do something different than the others, e.g. a dimension where
|
||||
getting the {\it n}th cell is fast but inserting and deleting cells
|
||||
is allowed to be slow.
|
||||
\item {\bf Simplicity}
|
||||
Since one object is in charge of the both ends of a connection,
|
||||
it is easier to avoid mistakes. Coding transient cell connections
|
||||
is easy as well, as that object can keep tabs on the transient
|
||||
connections separate from the stable ones.
|
||||
|
||||
|
||||
|
||||
% .PS
|
||||
% box "Clang" ht 0.25
|
||||
% .PE
|
||||
% $$\box\graph$$
|
||||
Reference in New Issue
Block a user