\documentclass{beamer}
\usepackage{stmaryrd}
+\usepackage{listings}
\title{Do you see what I see?}
\subtitle{\emph{Functional pearl} (2016)}
\author{M.~Lubbers}
\date{\today}
+\lstset{%
+ basicstyle=\ttfamily\small
+}
+
\begin{document}
\frame{\titlepage}
% Objective: what is the goal of this work, what problem is addressed, what was
% the current state of the art, who is the work aimed at?
+\begin{frame}
+ \frametitle{About functional pearls\ldots}
+ \begin{itemize}
+ \item ICFP / Journal of Functional Programming
+ \item Elegance
+ \item Instructive
+ \item Fun
+ \item Editors
+ \begin{itemize}
+ \item Prof.\ Philip Wadler
+ \item \ldots
+ \pause%
+ \item Prof.\ Ralf Hinze
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
\begin{frame}
\frametitle{Objective}
\begin{block}{Elaborate on the type system}
+ \pause%
\begin{itemize}
- \pause\item Racket programming language
- \pause\item Implemented as macro
- \pause\item No extra syntax or annotations
- \pause\item Syntactical analyses
+ \item Racket programming language
+ \item Implemented as macro
+ \item No extra syntax or annotations
+ \item Syntactical/static analyses
\end{itemize}
\end{block}
+ \pause%
\begin{block}{Why?}
- \begin{itemize}[<+->]
+ \pause%
+ \begin{itemize}
\item Pass typechecker? Correct program\ldots
- \item Solve problems with arity
- \item Look at text
+ \item Solve problems with arity(indexed)
+ \item Dependant types expensive
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
\frametitle{Proposal (1)}
\begin{block}{Notation}
- Implementation in Typed Racket\\
- %macro language that compiles in racket BEFORE type checking
\texttt{$\llbracket$e$\rrbracket$}- Elaboration function on $e$\\
\end{block}
\pause%
\pause%
\texttt{$\llbracket$ (curry ($\lambda$ (x y z) x)) $\rrbracket$}
& \texttt{= (curry\_3 ($\lambda$ (x y z) x))}\\
- \end{tabular}
+ \pause%
+ \texttt{$\llbracket$ (curry ($\lambda$ (x y z a) x)) $\rrbracket$}
+ & \texttt{= (curry\_4 ($\lambda$ (x y z a) x))}\\
+ \pause%
+ &\ldots
+ \end{tabular}
\end{block}
\end{frame}
-% Evidence: Support for claims - Theorems? Case studies? Simulations?
+\begin{frame}
+ \frametitle{Proposal (2)}
+ \begin{block}{Printf type annotations}
+ \pause%
+ \texttt{$\llbracket$ (printf "{\textasciitilde}b" 2) $\rrbracket$}\\
+ \texttt{String Any * -> Void}\\\vspace{1em}
+ \pause%
+ \texttt{(printf "{\textasciitilde}b" (2:: Integer))}\\
+ \texttt{String Integer -> Void}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Proposal (3)}
+ \begin{block}{And much more\ldots}
+ \begin{itemize}
+ \item Regular expressions
+ \item Database queries
+ \item Fixed size vectors
+ \item\ldots
+ \end{itemize}
+ \end{block}
+\end{frame}
+% Evidence: Support for claims - Theorems? Case studies? Simulations?
% Benchmarks? Does evidence address issues needed to support claims?
+\begin{frame}[fragile]
+ \frametitle{Implementation (1)}
+ \begin{itemize}
+ \item Macros
+ \item Expanded recursively before computation
+ \item Syntax classes
+ \item
+ \begin{lstlisting}
+(make-alias #'vector-length
+ (syntax-parser
+ [(_ v:vector/length)
+ #''v.evidence]
+ [_ #false]))
+ \end{lstlisting}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Implementation (2)}
+ \framesubtitle{Vector length}
+ \begin{block}{Vector notation racket}
+ \begin{lstlisting}
+#(4 42 1 0)
+
+(make-vector 4)
+ \end{lstlisting}
+ \end{block}
+
+ \begin{block}{Length determination}
+ \begin{lstlisting}
+(define vector?
+ (syntax-parser #:literals (make-vector)
+ [#(e* ...)
+ (length (syntax->datum #'(e* ...)))]
+ [(make-vector n:num/value)
+ (syntax->datum #'n.evidence)]
+ [_ #false]))
+ \end{lstlisting}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Evidence}
+ \begin{itemize}
+ \item Portable to other languages with macro/templates
+ \item Increased binary size of $4\%$
+ \item Implemented only for some features
+ \pause%
+ \item No real downsides given
+ \end{itemize}
+\end{frame}
% Shoulders of giants...: what previous research does this work build on? What
% are the key underlying theoretical ideas? Software infrastructure?
-
-% Impact: has this work been influential? When later research papers cite it,
-% what contribution is being referred to?
+\begin{frame}
+ \frametitle{Shoulders of giants}
+ \begin{itemize}
+ \item Papers on macros
+ \item Language/feature documentation
+ \item Meta programming
+ \item\ldots
+ \end{itemize}
+\end{frame}
% Writing: analyse the writing
+\begin{frame}
+ \frametitle{Writing}
+ \begin{itemize}
+ \item Implementation is not trivial or elegant
+ \item Colors
+ \item Literature\ldots a lot of documentation
+ \item LISP like language knowledge
+ \item Implementation sections are late
+ \item Examples in not very popular functional language
+ \begin{itemize}
+ \item Racket: $740$
+ \item {LISP}: $2620$
+ \item Haskell: $2800$
+ \item\ldots
+ \end{itemize}
+ \end{itemize}
+\end{frame}
% Discussion points: end with questions which you think should arise
+\begin{frame}
+ \frametitle{Discussion points}
+ \begin{itemize}
+ \item There should be more elaboration on the implementation.
+ \item Is the addition really helpful or does it just produce more
+ obfuscated compiler errors.
+ \item Paper should have been written in a more famous language.
+ \end{itemize}
+\end{frame}
\end{document}
--- /dev/null
+\documentclass{article}
+
+\usepackage{a4wide} % For better page usage
+\usepackage{hyperref}
+
+\hypersetup{%
+ pdfauthor={Mart Lubbers},
+ pdfsubject={Short review},
+ pdfcreator={Mart Lubbers},
+ pdfproducer={Mart Lubbers},
+ hidelinks
+}
+
+\author{Mart Lubbers (s4109503)}
+\title{Maintainable Software Architecture with Monads, Algebras, and
+Categories}
+\date{2016{--}05{-}25}
+
+\begin{document}
+\maketitle
+\subsubsection*{Summary \& Evidence}
+%Summary (as briefly as you can - two or three sentences)
+The author describes the experiences and design of a software architecture used
+on a university implemented in Haskell. The paper describes the libraries used,
+the monadic structure, algebras and categories in order of appearance. By using
+the latest techniques the maintainability is kept very high.
+
+%Evidence (what evidence is offered to support the claims?)
+
+
+\subsubsection*{Strengths \& Weaknesses}
+%Strength (what positive basis is there for publishing/reading it?)
+
+%Weaknesses
+
+\subsubsection*{Evaluation}
+%Evaluation (if you were running the conference/journal where it was published,
+%would you recommend acceptance?)
+
+%Comments on quality of writing
+
+\subsubsection*{Discussion}
+%Queries for discussion
+\begin{itemize}
+ \item Although the paper is very short there should be less unnecessary
+ implementation.
+ \item
+\end{itemize}
+
+\end{document}