X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fhaskell-symposium-talk.git;a=blobdiff_plain;f=summary.lhs;h=6467af850bfab988a81e647dae282ac70a23b86d;hp=94b11b53fec31b639c333f1f596beb48d11fdf16;hb=HEAD;hpb=bb178ef5c75d6adf38295303902670365634319c diff --git a/summary.lhs b/summary.lhs index 94b11b5..6467af8 100644 --- a/summary.lhs +++ b/summary.lhs @@ -5,8 +5,8 @@ \frametitle{Some final words} \begin{itemize} \item Still a lot to do: translate larger subset of Haskell - \item Real world prototypes can be made in \clash{} - \item \clash{} is another great example of how to bring functional expressivity to hardware designs + \item Real world prototype designs can already be made in \clash{} +% \item \clash{} is another great example of how to bring functional expressivity to hardware designs \end{itemize} } @@ -22,34 +22,45 @@ \frame { -\frametitle{Complete signature for registerBank} +\frametitle{Complete signatures and Types} \begin{code} -registerBank :: - ( NaturalT s +type Word = SizedInt D12 +type Instruction = ( Opcode, Word, RangedWord D9 + , RangedWord D9 ) + +registers :: + ( NaturalT s , PositiveT (s :+: D1) - , ((s :+: D1) :>: s) ~ True )) => - (RegState s a) -> a -> RangedWord s -> - RangedWord s -> Bit -> ((RegState s a), a ) + , ((s :+: D1) :>: s) ~ True )) => + a -> RangedWord s -> RangedWord s -> + (RegState s a) -> + (RegState s a, a ) \end{code} } -\frame{ -\begin{figure} -\centerline{\includegraphics[width=12cm]{polyaluhardware}} -\label{img:mealymachine} -\end{figure} -} - -\frame{ -\begin{figure} -\centerline{\includegraphics[width=12cm]{polyaluhardware-reg}} -\label{img:mealymachine} -\end{figure} +\frame +{ +\frametitle{Supported Functionality} +\begin{itemize} +\item Polymorphism +\item Higher Order Functions +\item Fixed-Size Vectors (Simulation) +\item Ranged and Sized Integers (Simulation) +\item Custom Datatypes +\item Booleans, Tuples +\item Pattern Matching +\item Guards +\end{itemize} } -\frame{ -\begin{figure} -\centerline{\includegraphics[width=12cm]{polyaluhardware-add}} -\label{img:mealymachine} -\end{figure} +\frame +{ +\frametitle{Unsupported Functionality} +\begin{itemize} +\item Recursions +\item Lists (Dynamic Length) +\item Standard Haskell Types: Integer, Char, etc. +\item Monads +\item And much much more... +\end{itemize} }