11 \item Bachelor Artificial Intelligence
12 \item Master Software Science
13 \item Research internship (
15ECTS)
14 \item FP, compilers, iTasks
19 \frametitle{Combine levels
}
22 \begin{block
}{High level
}
32 \begin{block
}{Low level
}
34 \item Microcontrollers
39 \item Low processing power
47 \begin{block
}{Combine the both worlds
}
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
62 \frametitle{Architecture
}
66 \item Round robin scheduling
67 \item Check input, run tasks, sleep
68 \item Interval or one-shot
76 \item Communication via SDS
77 \item Handle communication
85 \begin{block
}{Properties
}
87 \item Initially developed by Pieter Koopman
88 \item Designed to simulate TOP on microcontrollers
90 \item Shallowly embedded
91 \item Class based and thus extendable with views
93 \item Current views: Simulation in iTasks, C code generation
95 \item New view: Bytecode compilation.
101 \frametitle{Bytecode
}
102 \begin{block
}{State transformer
}
104 \begin{tabular
}{rllll
}
106 &
\multicolumn{4}{c
}{Current instructionset
}\\
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\\
117 &
\multicolumn{4}{c
}{Future
}\\
119 Aux extensions: & LCD & Serial & Shields\\
124 \begin{frame
}[fragile
]
126 \framesubtitle{cont.
}
127 \lstinputlisting[language=Clean,basicstyle=
\scriptsize]{edsl.listing
}
130 \begin{frame
}[fragile
]
132 \framesubtitle{cont.
}
133 \lstinputlisting[language=Clean,basicstyle=
\scriptsize]{control.listing
}
138 \lstinputlisting[language=Clean,basicstyle=
\scriptsize]{sds.listing
}
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
}
147 \begin{block
}{Bytecode
}
148 sdsstore, sdsfetch, sdspublish
152 \begin{frame
}[fragile
]
155 caption=
{mTasks used in the demo
},
157 basicstyle=
\scriptsize]{demo.listing
}
162 \begin{itemize
}[<+->
]
163 \item Task combinators
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
170 \item Support for different devices
171 \item Master's Thesis