for hardware descriptions. Function applications provide elegant notation for
component instantiation and the various choice mechanisms (pattern matching,
case expressions, if expressions) are well suited to describe conditional
for hardware descriptions. Function applications provide elegant notation for
component instantiation and the various choice mechanisms (pattern matching,
case expressions, if expressions) are well suited to describe conditional
Useful features from the functional perspective, like polymorphism and
higher-order functions and expressions also prove suitable to describe
Useful features from the functional perspective, like polymorphism and
higher-order functions and expressions also prove suitable to describe
a fundamental part of the language. The need for dependent typing is
particularly present in Cλash to be able to fix some properties (list length,
recursion depth, etc.) at compile time. Having better support for dependent
a fundamental part of the language. The need for dependent typing is
particularly present in Cλash to be able to fix some properties (list length,
recursion depth, etc.) at compile time. Having better support for dependent
fundamentally still a hard problem.
The choice of describing state very explicitly as extra arguments and
fundamentally still a hard problem.
The choice of describing state very explicitly as extra arguments and
On the other hand, the explicitness of the states and in particular
substates, mean that more complex descriptions can become cumbersome
very quickly. One finds that dealing with unpacking, passing, receiving
On the other hand, the explicitness of the states and in particular
substates, mean that more complex descriptions can become cumbersome
very quickly. One finds that dealing with unpacking, passing, receiving
boilerplate would make the language even easier to use.
On the whole, the usefulness of Cλash for describing hardware is not
boilerplate would make the language even easier to use.
On the whole, the usefulness of Cλash for describing hardware is not
compiler and desugars Haskell into a small, but functional and typed
language, called \emph{Core}. Cλash adds a transformation system that reduces
compiler and desugars Haskell into a small, but functional and typed
language, called \emph{Core}. Cλash adds a transformation system that reduces
direct translation to \VHDL. This approach has worked well and should probably
be preserved. Especially the transformation based normalization system is
suitable. It is easy to implement a transformation in the prototype, though it
direct translation to \VHDL. This approach has worked well and should probably
be preserved. Especially the transformation based normalization system is
suitable. It is easy to implement a transformation in the prototype, though it