From 4ac8ff3216dd921df44fbed2ba7d4ad01ff7033d Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 28 Feb 2017 14:49:29 +0100 Subject: [PATCH] moved intro to abstract, added refs, test listing --- .gitignore | 3 ++ Makefile | 4 +-- abstract.tex | 8 ++++- acknowledgements.tex | 1 + introduction.tex | 32 +++++++++++-------- theoretical-framework.tex | 2 +- thesis.bib | 24 ++++++++++++++ thesis.pre | 66 ++++++++++++++++++++++++++++++++++++++- thesis.tex | 18 +++++++++-- 9 files changed, 138 insertions(+), 20 deletions(-) create mode 100644 acknowledgements.tex diff --git a/.gitignore b/.gitignore index af8036b..8df797c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,10 @@ *.glo *.gls *.ist +*.lof *.log +*.lol +*.lot *.out *.pdf *.tdo diff --git a/Makefile b/Makefile index 32587bc..04e20c5 100644 --- a/Makefile +++ b/Makefile @@ -26,5 +26,5 @@ all: $(addsuffix .pdf,$(DOCS)) clean: $(RM) $(foreach DOC,$(DOCS),$(addprefix $(DOC).,\ - acn acr alg aux bbl blg fmt glg glo gls ist log nav out pdf run.xml\ - snm tdo toc vrb xdy)) + acn acr alg aux bbl blg fmt glg glo gls ist lof log lol lot nav out\ + pdf run.xml snm tdo toc vrb xdy)) diff --git a/abstract.tex b/abstract.tex index f6276be..1272fab 100644 --- a/abstract.tex +++ b/abstract.tex @@ -1 +1,7 @@ -\lipsum[1] +This thesis presents a way to connect small \gls{IoT} devices with high level +\gls{TOP} implementations languages. It shows how a new frontend for the class +based shallowly embedded \glspl{DSL} called \gls{mTask} written in \gls{Clean} +can be used to compile \gls{IoT}-tasks on the fly and send them to the device +as bytecode which is interpreted. All of this adheres to the \gls{TOP} +philosophy where familiar concepts such as \glspl{SDS} and task-combinators are +available at ease. diff --git a/acknowledgements.tex b/acknowledgements.tex new file mode 100644 index 0000000..a8e7ea5 --- /dev/null +++ b/acknowledgements.tex @@ -0,0 +1 @@ +My thanks and gratitude goes to\ldots diff --git a/introduction.tex b/introduction.tex index a413b2f..1b184ee 100644 --- a/introduction.tex +++ b/introduction.tex @@ -1,21 +1,27 @@ -The main goal of this thesis is to present a way to connect small \gls{IoT} -devices with high level \gls{TOP} implementations languages. This thesis shows -how a new frontend for the class based shallowly embedded \glspl{DSL} called -\gls{mTask} written in \gls{Clean} can be used to compile \gls{IoT}-tasks on -the fly and send them to the device as bytecode which is interpreted. All of -this adheres to the \gls{TOP} philosophy where familiar concepts such as -\glspl{SDS} and task-combinators are available to use. - - \section{Motivation} -\todo{Show relevance of the research} +\Gls{TOP} and \gls{iTasks} have been designed to offer a high abstraction level +through a \gls{DSL} that describes workflows as \glspl{Task}. \gls{iTasks} has +been shown to be useful in fields such as incident +management~\cite{lijnse_top_2013}. However, there still lacks support for small +devices to be added in the workflow. In principle such adapters can be written +as \glspl{SDS}\footnote{Similar as to resources such as time are available in +the current system} but this requires a very specific adapter to be written for +every device and functionality. Oortgiese et al.\ lifted \gls{iTasks} from a +single server model to a distributed server architecture~\todo{Add cite} that +is also runnable on smaller devices like \acrshort{ARM}. However, this is +limited to fairly high performance devices that are equipped with high speed +communication lines. Devices in \gls{IoT} often only have LPLB communication +with low bandwidth and a very limited amount of processing power. \glspl{mTask} +will bridge this gap. It can run on devices as small as Arduino +microcontrollers and operates via the same paradigms as regular \glspl{Task}. +The \glspl{mTask} have access to \glspl{SDS} and can run small imperative +programs. -\section{Research questions} -\todo{Formulate research question} +\section{Problem statement} \section{Document structure} The structure of the thesis is as follows. -Chapter~\ref{chp:introduction} contains the research questions, motivation and +Chapter~\ref{chp:introduction} contains the problem statement, motivation and the structure of the document Chapter~\ref{chp:theoretical-framework} introduces the reader with all the terminology and techniques lying at the foundation of the study. diff --git a/theoretical-framework.tex b/theoretical-framework.tex index 4551ed3..59975f1 100644 --- a/theoretical-framework.tex +++ b/theoretical-framework.tex @@ -1,7 +1,7 @@ \section{\acrlong{TOP}} -\begin{lstlisting}[language=Clean] +\begin{lstlisting}[language=Clean,label={lst:test},caption={Caption}] module Life Start :: *World -> *World diff --git a/thesis.bib b/thesis.bib index 3b6d9d0..dfbd233 100644 --- a/thesis.bib +++ b/thesis.bib @@ -44,3 +44,27 @@ pages = {364--384}, file = {Clean —\; A language for functional graph rewriting - chp%3A10.1007%2F3-540-18317-5_20.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/GCEPPRUJ/chp%3A10.1007%2F3-540-18317-5_20.pdf:application/pdf} } + +@article{da_xu_internet_2014, + title = {Internet of things in industries: a survey}, + volume = {10}, + number = {4}, + journal = {Industrial Informatics, IEEE Transactions on}, + author = {Da Xu, Li and He, Wu and Li, Shancang}, + year = {2014}, + pages = {2233--2243}, + file = {IOT industrial survey.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/EJHG7M8I/IOT industrial survey.pdf:application/pdf} +} + +@book{lijnse_top_2013, + address = {S.l.; Nijmegen}, + title = {{TOP} to the rescue: task-oriented programming for incident response applications}, + isbn = {978-90-820259-0-3}, + shorttitle = {{TOP} to the rescue}, + language = {English}, + publisher = {s.n.] ; UB Nijmegen [host}, + author = {Lijnse, Bas}, + year = {2013}, + note = {OCLC: 833851220}, + file = {103931.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/9KZ9I6N9/103931.pdf:application/pdf} +} \ No newline at end of file diff --git a/thesis.pre b/thesis.pre index 21bddc2..e41516c 100644 --- a/thesis.pre +++ b/thesis.pre @@ -11,7 +11,7 @@ \usepackage{caption} % Captions \usepackage{subcaption} % Subcaptions \usepackage{lipsum} % dummy text -\usepackage{clean} % dummy text +\usepackage{listings} % source code \urlstyle{same} \hypersetup{% @@ -24,6 +24,70 @@ hidelinks=true } +\lstdefinelanguage{Clean}{% + alsoletter={ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`1234567890}, + alsoletter={~!@\#$\%^\&*-+=?<>:|\\.}, + morekeywords={generic,implementation,definition,dynamic,module,import,from,where,in,of,case,let,infix,infixr,infixl,class,instance,with,if,derive}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[n]{/*}{*/}, + morestring=[b]", + morestring=[b]', + emptylines=1, + basewidth=0.45em, + columns=[c]fixed, + texcl=true, + literate=% + % Basic Clean constructs + {\\}{{$\lambda\:$}}1 + {A.}{{$\forall\;\,$}}1 + {E.}{{$\exists\;\,$}}1 + {>}{{$>$}}1 + {<}{{$<$}}1 + {<=}{{$\leq$}}1 + {>=}{{$\geq$}}1 + {<>}{{$\neq$}}1 + {->}{{$\rightarrow$}}2 + {<-}{{$\leftarrow$}}1 + {=}{{$=$}}1 + {~}{{$\sim$}}1 + {\#}{{$\sharp$}}1 + {\{|}{{$\{\!|\!$}}1 + {|\}}{{$\!|\!\}$}}1 + {:=}{{$:=$}}2 + {==}{{$==$}}2 + {++}{{$+\!\!+$}}2 + {+++}{{$+\!\!\!\!+\!\!\!\!+$}}2 + {:==}{{$:==$}}3 + {\{|*|\}}{{$\{\!|\!\!\star\!\!|\!\}$}}3 + % + % Basic iTask constructs + {>||>}{{$\triangleright\triangleright$}}2 + {>>=}{{\texttt{>>=}}}3 + {>>|}{{\texttt{>>|}}}3 + {?>>}{{\texttt{?>>}}}3 + {!>>}{{\texttt{!>>}}}3 + {-||-}{{\texttt{-||-}}}4 + {.||.}{{\texttt{.||.}}}4 + {.&&.}{{\texttt{.\&\&.}}}4 +} + +\lstset{% + breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace + breaklines=true, % sets automatic line breaking + captionpos=b, % sets the caption-position to bottom + keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) + basicstyle=\footnotesize, % the size of the fonts that are used for the code + commentstyle=\itshape, % comment style + keywordstyle=\bfseries, % keyword style + stringstyle=\ttfamily, % string literal style + language=Clean, % the language of the code + showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' + showstringspaces=false, % underline spaces within strings only + showtabs=false, % show tabs within strings adding particular underscores + tabsize=4 % sets default tabsize to 2 spaces +} + \title{iTasks and the Internet of Things} \author{Mart Lubbers BSc.\\ {\small\href{mailto:mart@martlubbers.net}{mart@martlubbers.net}}} diff --git a/thesis.tex b/thesis.tex index 4390086..904c7e7 100644 --- a/thesis.tex +++ b/thesis.tex @@ -6,14 +6,18 @@ \newacronym{IoT}{IoT}{Internet of Things} \newacronym{TOP}{TOP}{Task Oriented Programming} \newacronym{DSL}{DSL}{Design Specific Language} +\newacronym{RISC}{RISC}{Reduced Instruction Set Computer} +\newacronym{ARM}{ARM}{Acorn \acrshort{RISC} Machine} \newglossaryentry{Clean}{name=Clean, description={is a pure lazy functional programming language based on graph rewriting}} \newglossaryentry{iTasks}{name=iTasks, description={is a \acrshort{TOP} implementation written as a \acrshort{DSL} in the \gls{Clean} programming language}} +\newglossaryentry{Task}{name=Task, + description={is the basic building block of a \acrshort{TOP} system}} \newglossaryentry{mTask}{name=mTask, - description={is an abstraction for tasks living on \acrshort{IoT} devices}} + description={is an abstraction for \glspl{Task} living on \acrshort{IoT} devices}} \begin{document} \frontmatter{} @@ -31,10 +35,16 @@ %Abstract \chapter*{\centering Abstract} \begin{quotation} - \centering\it\noindent + \centering\noindent \input{abstract.tex} \end{quotation} +\chapter*{\centering Acknowledgements} +\begin{quotation} + \centering\it\noindent + \input{acknowledgements.tex} +\end{quotation} + %Table of contents \tableofcontents @@ -59,6 +69,10 @@ \chapter{Communication protocol}\label{app:communication-protocol} \input{appendix-protocol.tex} +\lstlistoflistings{} +\listoffigures{} +\listoftables{} + \bibliographystyle{ieeetr} \bibliography{thesis} \end{document} -- 2.20.1