\subsection{EDSLs}
\begin{frame}
	\frametitle{Embedded Domain Specific Language}
	\framesubtitle{What is are EDSL}
	\begin{itemize}
		\item DSL:\ language for a specific domain
		\item E.g., PostScript, VimScript, HTML, \ldots
		\pause{}
		\item EDSL:\ Embedded DSL
		\item Language in a language
		\item Use the properties of the host
		\item E.g., Ivory, \ldots\pause{} and iTasks
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Embedded Domain Specific Language (2)}
	\framesubtitle{Embedding techniques}
	\begin{block}{Deep}
	\end{block}

	\begin{block}{Shallow}
	\end{block}

	\begin{block}{Class based shallow}
	\end{block}
\end{frame}

\begin{frame}
	\frametitle{Embedded Domain Specific Language (2)}
	\framesubtitle{Shallow Embedding}
\end{frame}

\begin{frame}
	\frametitle{Embedded Domain Specific Language (3)}
	\framesubtitle{Class Based Shallow Embedding}
\end{frame}

\subsection{mTask}
\begin{frame}
	\frametitle{mTask}
	\pause{}
	\begin{block}{What is mTask}
		\begin{itemize}
			\item EDSL
			\item Generates C code
			\item Arduino
		\end{itemize}
	\end{block}

	\begin{block}{Considerations}
		\begin{itemize}
			\item Type safe
			\item Embedded in Clean
			\item Extendable
			\item \ldots\pause{} but\ldots
			\item No interaction
			\item Compilation
		\end{itemize}
	\end{block}
\end{frame}
