On the whole, the usefulness of Cλash for describing hardware is not
completely clear yet. Most elements of the language have proven
-suitable, and even a real world hardware circuit (the reducer \todo{ref
-christiaan}) has been implemented. However, the language has not been
+suitable, and even a real world hardware circuit (a reducer circuit
+\cite[baaij09]) has been implemented. However, the language has not been
used during a complete design process, where its rapid prototyping and
reusability qualities could become real advantages, or perhaps the state
boilerplate or synchronicity limitations could become real problems.
\todo{Example}
\subsubsection{Which arguments and results are stateful?}
- \fxnote{This section should get some examples}
+ \todo{This section should get some examples}
We need some way to know which arguments should become input ports and
which argument(s?) should become the current state (\eg, be bound to
the register outputs). This does not hold just for the top
the type checker to always type-check both alternatives, which cannot be
done. The type-checker is unable to distinguish the two case
alternatives (this is partly possible using \small{GADT}s, but that
- approach faced other problems \todo{ref christiaan?}).
+ approach faced other problems \cite[baaij09]).
This is a fundamental problem, that would seem perfectly suited for a
type class. Considering that we need to switch between to
them that you need to define a new type class for every recursive
function you want to define).
- \todo{This should reference Christiaan}
-
\subsection{General recursion}
Of course there are other forms of recursion, that do not depend on the
length (and thus type) of a list. For example, simple recursion using a
either. To prevent the \VHDL\ generation from breaking on these
artifacts, this transformation removes them.
- \todo{Do not use old-style numerals in transformations}
\starttrans
letrec
a0 = E0
\section{Unsolved problems}
The above system of transformations has been implemented in the prototype
and seems to work well to compile simple and more complex examples of
- hardware descriptions. \todo{Ref christiaan?} However, this normalization
+ hardware descriptions \cite[baaij09]. However, this normalization
system has not seen enough review and work to be complete and work for
every Core expression that is supplied to it. A number of problems
have already been identified and are discussed in this section.
of a case expression to normal form (evaluating any function
applications, variable references and case expressions) is
sufficient to decide which case alternatives should be chosen.
- \todo{ref?}
\stopframedtext
}