7fa501e8f721ab53903c0d588a812736eb70394c
[ri1617.git] / final_review / praatje.tex
1 %&praatje
2 \begin{document}
3 \begin{frame}
4 \maketitle
5 \end{frame}
6
7 \begin{frame}
8 \frametitle{Who am I?}
9 \begin{itemize}
10 \item Mart Lubbers
11 \item Bachelor Artificial Intelligence
12 \item Master Software Science
13 \item Research internship
14 \item iTasks
15 \end{itemize}
16 \end{frame}
17
18 \begin{frame}
19 \frametitle{Combine levels}
20 \begin{columns}[t]
21 \column{.5\textwidth}
22 \begin{block}{High level}
23 \begin{itemize}
24 \item iTasks
25 \item Workflow
26 \item Dataflow
27 \end{itemize}
28 \end{block}
29
30 \pause%
31
32 \begin{block}{Low level}
33 \begin{itemize}
34 \item Microcontrollers
35 \item Sensors
36 \item Actuators
37 \item Low bandwidth
38 \item Low power
39 \item Low processing power
40 \end{itemize}
41 \end{block}
42
43 \column{.5\textwidth}
44
45 \pause%
46
47 \begin{block}{Combine the both worlds}
48 \begin{itemize}
49 \item Type-safe EDSL
50 \item Byte-compiled on the fly
51 \item Interpreted on the client
52 \item One codebase for different clients
53 \item GSM, Bluetooth, Serial, TCP, \ldots
54 \pause%
55 \item mTasks
56 \end{itemize}
57 \end{block}
58 \end{columns}
59 \end{frame}
60
61 \begin{frame}
62 \frametitle{Architecture}
63 \begin{block}{Client}
64 \begin{itemize}
65 \item C code
66 \item Round robin scheduling
67 \item Check input, run tasks, sleep
68 \item Interval or one-shot
69 \end{itemize}
70 \end{block}
71
72 \begin{block}{Server}
73 \begin{itemize}
74 \item iTasks
75 \item Communication via SDS
76 \item Handle communication
77 \item Synchronize SDS
78 \end{itemize}
79 \end{block}
80 \end{frame}
81
82 \begin{frame}
83 \frametitle{mTask}
84 \begin{block}{Properties}
85 \begin{itemize}
86 \item Initially developed by Pieter Koopman
87 \item Designed to simulate TOP on microcontrollers
88 \item Type safe
89 \item Shallowly embedded
90 \item Class based and thus extendable with views
91 \pause%
92 \item Current views: Simulation in iTasks, C code generation
93 \pause%
94 \item New view: Bytecode compilation.
95 \end{itemize}
96 \end{block}
97 \end{frame}
98
99 \begin{frame}
100 \frametitle{Bytecode}
101 \begin{block}{State transformer}
102 \end{block}
103 \begin{tabular}{rllll}
104 \toprule
105 & \multicolumn{4}{c}{Current instructionset}\\
106 \midrule
107 Stack: & nop & push & pop\\
108 Boolean: & not & and & or\\
109 Arithmetic: & add & sub & mul & div\\
110 Compare: & eq,neq & les, gre & leq, geq\\
111 Control: & jmp & jmpt & jmpf\\
112 Aux: & ledOn & ledOff\\
113 Aux2: & digitalread & digitalwrite & analogread & analogwrite\\
114 \midrule
115 \pause%
116 & \multicolumn{4}{c}{Future}\\
117 \midrule
118 Aux extensions: & LCD & Serial & Shields\\
119 \bottomrule
120 \end{tabular}
121 \end{frame}
122
123 \begin{frame}[fragile]
124 \frametitle{mTask}
125 \framesubtitle{cont.}
126 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{edsl.listing}
127 \end{frame}
128
129 \begin{frame}[fragile]
130 \frametitle{mTask}
131 \framesubtitle{cont.}
132 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{control.listing}
133 \end{frame}
134
135 \begin{frame}
136 \frametitle{SDS}
137 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{sds.listing}
138 \pause%
139 \begin{itemize}
140 \item Pushed from server to client
141 \item Client has to specifically publish
142 \item Synchronized with a real SDS by the connection handlers
143 \item \CI{get}, \CI{set} and no \CI{upd}
144 \end{itemize}
145 \pause%
146 \begin{block}{Bytecode}
147 sdsstore, sdsfetch, sdspublish
148 \end{block}
149 \end{frame}
150
151 \begin{frame}[fragile]
152 \frametitle{Demo}
153 \lstinputlisting[%
154 caption={mTasks used in the demo},
155 language=Clean,
156 basicstyle=\scriptsize]{demo.listing}
157 \end{frame}
158
159 \begin{frame}
160 \frametitle{Future}
161 \begin{itemize}[<+->]
162 \item Task combinators
163 \item Functions
164 \item Seamless integration with iTasks
165 \item Dynamic mTask/SDS allocation
166 \item Better integration with real SDS
167 \item More datatypes for SDS
168 \item Slicing tasks
169 \item Support for different devices
170 \item Master's Thesis
171 \item \ldots
172 \end{itemize}
173 \end{frame}
174
175 \end{document}