kleine ups
[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 (15ECTS)
14 \item FP, compilers, 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 Mothertask
76 \item Communication via SDS
77 \item Handle communication
78 \item Synchronize SDS
79 \end{itemize}
80 \end{block}
81 \end{frame}
82
83 \begin{frame}
84 \frametitle{mTask}
85 \begin{block}{Properties}
86 \begin{itemize}
87 \item Initially developed by Pieter Koopman
88 \item Designed to simulate TOP on microcontrollers
89 \item Type safe
90 \item Shallowly embedded
91 \item Class based and thus extendable with views
92 \pause%
93 \item Current views: Simulation in iTasks, C code generation
94 \pause%
95 \item New view: Bytecode compilation.
96 \end{itemize}
97 \end{block}
98 \end{frame}
99
100 \begin{frame}
101 \frametitle{Bytecode}
102 \begin{block}{State transformer}
103 \end{block}
104 \begin{tabular}{rllll}
105 \toprule
106 & \multicolumn{4}{c}{Current instructionset}\\
107 \midrule
108 Stack: & nop & push & pop\\
109 Boolean: & not & and & or\\
110 Arithmetic: & add & sub & mul & div\\
111 Compare: & eq,neq & les, gre & leq, geq\\
112 Control: & jmp & jmpt & jmpf\\
113 Aux: & ledOn & ledOff\\
114 Aux2: & digitalread & digitalwrite & analogread & analogwrite\\
115 \midrule
116 \pause%
117 & \multicolumn{4}{c}{Future}\\
118 \midrule
119 Aux extensions: & LCD & Serial & Shields\\
120 \bottomrule
121 \end{tabular}
122 \end{frame}
123
124 \begin{frame}[fragile]
125 \frametitle{mTask}
126 \framesubtitle{cont.}
127 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{edsl.listing}
128 \end{frame}
129
130 \begin{frame}[fragile]
131 \frametitle{mTask}
132 \framesubtitle{cont.}
133 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{control.listing}
134 \end{frame}
135
136 \begin{frame}
137 \frametitle{SDS}
138 \lstinputlisting[language=Clean,basicstyle=\scriptsize]{sds.listing}
139 \pause%
140 \begin{itemize}
141 \item Pushed from server to client
142 \item Client has to specifically publish
143 \item Synchronized with a real SDS by the connection handlers
144 \item \CI{get}, \CI{set} and no \CI{upd}
145 \end{itemize}
146 \pause%
147 \begin{block}{Bytecode}
148 sdsstore, sdsfetch, sdspublish
149 \end{block}
150 \end{frame}
151
152 \begin{frame}[fragile]
153 \frametitle{Demo}
154 \lstinputlisting[%
155 caption={mTasks used in the demo},
156 language=Clean,
157 basicstyle=\scriptsize]{demo.listing}
158 \end{frame}
159
160 \begin{frame}
161 \frametitle{Future}
162 \begin{itemize}[<+->]
163 \item Task combinators
164 \item Functions
165 \item Seamless integration with iTasks
166 \item Dynamic mTask/SDS allocation
167 \item Better integration with real SDS
168 \item More datatypes for SDS
169 \item Slicing tasks
170 \item Support for different devices
171 \item Master's Thesis
172 \item \ldots
173 \end{itemize}
174 \end{frame}
175
176 \end{document}