update short and long
authorMart Lubbers <mart@martlubbers.net>
Tue, 24 May 2016 19:17:02 +0000 (21:17 +0200)
committerMart Lubbers <mart@martlubbers.net>
Tue, 24 May 2016 19:17:02 +0000 (21:17 +0200)
long2/slides.tex
shorts2/Makefile [new file with mode: 0644]
shorts2/maintainable.tex [new file with mode: 0644]

index 82f4161..43106a1 100644 (file)
@@ -1,31 +1,56 @@
 \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}
@@ -34,8 +59,6 @@
 \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}
diff --git a/shorts2/Makefile b/shorts2/Makefile
new file mode 100644 (file)
index 0000000..21bfb84
--- /dev/null
@@ -0,0 +1,11 @@
+LATEX:=pdflatex
+DOCUMENTS:=maintainable.pdf
+
+all: $(DOCUMENTS)
+
+%.pdf: %.tex
+       $(LATEX) $<
+       $(LATEX) $<
+
+clean:
+       $(RM) -v *.fmt *.aux *.log *.out *.toc *.pdf
diff --git a/shorts2/maintainable.tex b/shorts2/maintainable.tex
new file mode 100644 (file)
index 0000000..99b8eac
--- /dev/null
@@ -0,0 +1,50 @@
+\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}