add parametric lens reference and todo
authorMart Lubbers <mart@martlubbers.net>
Sun, 11 Jun 2017 07:56:47 +0000 (09:56 +0200)
committerMart Lubbers <mart@martlubbers.net>
Sun, 11 Jun 2017 07:56:47 +0000 (09:56 +0200)
glossaries.tex
methods.top.tex
results.arch.tex
results.mtask.tex
thesis.bib

index c84b0b8..748a3c6 100644 (file)
        first={#2 (#1)},%
        firstplural={#2\glspluralsuffix{} (#1\glspluralsuffix)},
        description={#2}}}
-\newglossacr{GADT}{Generalized Algebraic Data type}
-\newglossacr{GPIO}   {General-Purpose Input/Output}
 \newglossacr{ADT}    {Algebraic Datatype}
-\newglossacr{SDS}    {Shared Data Source}
-\newglossacr{IoT}    {Internet of Things}
-\newglossacr{TOP}    {Task Oriented Programming}
-\newglossacr{EDSL}   {Embedded Domain Specific Language}
-\newglossacr{RISC}   {Reduced Instruction Set Computer}
 \newglossacr{ARM}    {Acorn \glsentryname{RISC} Machine}
-\newglossacr{LTN}    {Low Throughput Network}
-\newglossacr{IDE}    {Integrated Development Environment}
-\newglossacr{TCP}    {Transmission Control Protocol}
-\newglossacr{RFID}   {Radio-Frequency Identification}
-\newglossacr{GNSS}   {Global Navigation Satellite System}
-\newglossacr{LCD}    {Liquid Crystal Display}
 \newglossacr{AST}    {Abstract Syntax Tree}
-\newglossacr{GPS}    {Global Positioning System}
+\newglossacr{EDSL}   {Embedded Domain Specific Language}
+\newglossacr{GADT}   {Generalized Algebraic Data type}
 \newglossacr{GLONASS}{Global Navigation Satellite System}
-\newglossacr{RWST}{Reader Writer State Transformer Monad}
+\newglossacr{GNSS}   {Global Navigation Satellite System}
+\newglossacr{GPIO}   {General-Purpose Input/Output}
+\newglossacr{GPS}    {Global Positioning System}
+\newglossacr{IDE}    {Integrated Development Environment}
+\newglossacr{IoT}    {Internet of Things}
+\newglossacr{JSON}   {JavaScript Object Notation}
+\newglossacr{LCD}    {Liquid Crystal Display}
+\newglossacr{LTN}    {Low Throughput Network}
+\newglossacr{RFID}   {Radio-Frequency Identification}
+\newglossacr{RISC}   {Reduced Instruction Set Computer}
+\newglossacr{RWST}   {Reader Writer State Transformer Monad}
+\newglossacr{SDS}    {Shared Data Source}
+\newglossacr{TCP}    {Transmission Control Protocol}
+\newglossacr{TOP}    {Task Oriented Programming}
index cb951a1..b54b50f 100644 (file)
@@ -124,19 +124,33 @@ Listing~\ref{lst:combinators}.
 or in the \gls{iTasks} system. The shared data can be a file on disk, it can be
 the time, a random integer or just some data stored in memory. The actual
 \gls{SDS} is just a record containing functions on how to read and write the
-source. In these functions the \CI{*World} is available and therefore it can
-interact with the outside world. The \CI{*IWorld} is also available and
-therefore the functions can also access other shares, possibly combining them.
+source. In these functions the \CI{*IWorld} which in turn contains the real
+program \CI{*World}. Accessing the outside world is required for interacting
+with it and thus the functions can access files on disk, raw memory, other
+shares and combine shares.
 
 The basic operations for \glspl{SDS} are get, set and update. The signatures
-for these functions are shown in Listing~\ref{lst:shares}. All of the
-operations are atomic in the sense that during reading no other tasks are
-executed.
+for these functions are shown in Listing~\ref{lst:shares}. By default, all
+shares are files containing a \gls{JSON} encoded version of the object and thus
+are persistent between restarts of the program. Library functions for shares
+residing in memory are available as well. The three main operations on shares
+are atomic in the sense that during reading no other tasks are executed.
+
+The basic type for \glspl{SDS} has three \todo{parametric
+lenses}\cite{domoszlai_parametric_2014}.
 
 \begin{lstlisting}[%
        label={lst:shares},caption={\Gls{SDS} functions}]
+:: RWShared p r w = ... 
+:: ReadWriteShared r w :== RWShared () r w
+:: ROShared p r :== RWShared p () r
+:: ReadOnlyShared r :== ROShared () r
+
+:: Shared r :== ReadWriteShared r r
+
 get ::          (ReadWriteShared r w)           -> Task r | iTask r
 set :: w        (ReadWriteShared r w)           -> Task w | iTask w
 upd :: (r -> w) (ReadWriteShared r w)           -> Task w | iTask r & iTask w
 
+sharedStore :: String a -> Shared a | JSONEncode{|*|}, JSONDecode{|*|}
 \end{lstlisting}
index cbef26c..24abb0f 100644 (file)
@@ -34,7 +34,7 @@ the device software.
 \section{Specification}
 Devices are stored in a record type and all devices in the system are stored in
 a \gls{SDS} containing all devices. From the macro settings in the interface
-file a profile is created for the device that describes the specification. When
+file, a profile is created for the device that describes the specification. When
 a connection between the server and a client is established the server will
 send a request for specification. The client will serialize his specification
 and send it to the server so that the server knows what the client is capable
@@ -68,16 +68,18 @@ device type the \gls{Task} is just a simple wrapper around the existing
 uses the newly developed serial port library of \gls{Clean}\footnote{\url{%
 https://gitlab.science.ru.nl/mlubbers/CleanSerial}}.
 
-Besides all the communication information the record also keeps track of the
-\glspl{Task} currently on the device and the according \glspl{SDS}. Finally it
-stores the specification of the device that is received when connecting.
-All of this is listed in Listing~\ref{lst:mtaskdevice}. The definitions of the
-message format are explained in the following section.
+Besides all the communication information, the record also keeps track of the
+\glspl{Task} currently on the device, the compiler state (see
+Section~\ref{sec:compiler}) and the according \glspl{SDS}. Finally it stores
+the specification of the device that is received when connecting.  All of this
+is listed in Listing~\ref{lst:mtaskdevice}. The definitions of the message
+format are explained in the following section.
 
 \begin{lstlisting}[caption={Device type},label={lst:mtaskdevice}]
 deviceStore :: Shared [MTaskDevice]
 
 :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool)
+:: BCState = ... // Compiler state, explained in later sections
 :: MTaskResource 
        = TCPDevice TCPSettings
        | SerialDevice TTYSettings
@@ -86,6 +88,7 @@ deviceStore :: Shared [MTaskDevice]
                , deviceError :: Maybe String
                , deviceChannels :: String
                , deviceName :: String
+               , deviceState :: BCState
                , deviceTasks :: [MTaskTask]
                , deviceData :: MTaskResource
                , deviceSpec :: Maybe MTaskDeviceSpec
@@ -160,4 +163,4 @@ function and the record is updated accordingly.
 
 \subsection{\glspl{Task}}
 \subsection{\glspl{SDS}}
-\todo{Connectie, hoe gaat dat in zijn werk}
+\todo{Connectie, hoe gaat dat in zijn werk, andere berichtenuitwisselingen}
index a702432..c32f7ac 100644 (file)
@@ -23,7 +23,7 @@ might not be the final value it will get. Therefore a device must publish the
 added to the \CI{sds} class that adds the \CI{pub} function.
 \todo{elaborate}
 
-\section{Bytecode compilation}
+\section{Bytecode compilation}\label{sec:compiler}
 The \glspl{mTask} are sent to the device in bytecode and are saved in the
 memory of the device. To compile the \gls{EDSL} code to bytecode, a view is
 added to the \gls{mTask}-system called \CI{ByteCode}. As shown in
index aad442e..9eb4dbe 100644 (file)
@@ -1,28 +1,25 @@
 
-@incollection{achten_introduction_2015,
-       title = {An {Introduction} to {Task} {Oriented} {Programming}},
-       booktitle = {Central {European} {Functional} {Programming} {School}},
-       publisher = {Springer},
-       author = {Achten, Peter and Koopman, Pieter and Plasmeijer, Rinus},
-       year = {2015},
-       pages = {187--245},
-       file = {chp%3A10.1007%2F978-3-319-15940-9_5.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/ZSDSIIT7/chp%3A10.1007%2F978-3-319-15940-9_5.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/a614qfce.default/zotero/storage/EJHG7M8I/IOT industrial survey.pdf:application/pdf}
 }
 
-@incollection{plasmeijer_shallow_2016,
-       address = {Cham},
-       series = {Lecture {Notes} in {Computer} {Science}},
-       title = {A {Shallow} {Embedded} {Type} {Safe} {Extendable} {DSL} for the {Arduino}},
-       volume = {9547},
-       isbn = {978-3-319-39109-0 978-3-319-39110-6},
-       url = {http://link.springer.com/10.1007/978-3-319-39110-6},
-       urldate = {2017-02-22},
-       booktitle = {Trends in {Functional} {Programming}},
-       publisher = {Springer International Publishing},
-       author = {Plasmeijer, Rinus and Koopman, Pieter},
-       year = {2016},
-       note = {DOI: 10.1007/978-3-319-39110-6},
-       file = {chp%3A10.1007%2F978-3-319-39110-6_6.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/TJVP6FHF/chp%3A10.1007%2F978-3-319-39110-6_6.pdf:application/pdf}
+@inproceedings{svenningsson_combining_2012,
+       title = {Combining deep and shallow embedding for {EDSL}},
+       url = {http://link.springer.com/chapter/10.1007/978-3-642-40447-4_2},
+       urldate = {2017-05-10},
+       booktitle = {International {Symposium} on {Trends} in {Functional} {Programming}},
+       publisher = {Springer},
+       author = {Svenningsson, Josef and Axelsson, Emil},
+       year = {2012},
+       pages = {21--36},
+       file = {svenningsson2013combining.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/NFBGZCZT/svenningsson2013combining.pdf:application/pdf}
 }
 
 @article{koopman_type-safe_nodate,
        url = {https://tfp2016.org/papers/TFP_2016_paper_7.pdf},
        urldate = {2017-02-22},
        author = {Koopman, Pieter and Plasmeijer, Rinus},
-       file = {TFP_2016_paper_7.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/WR3PZNTT/TFP_2016_paper_7.pdf:application/pdf}
+       file = {TFP_2016_paper_7.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/WR3PZNTT/TFP_2016_paper_7.pdf:application/pdf}
 }
 
-@inproceedings{brus_cleanlanguage_1987,
-       title = {Clean—a language for functional graph rewriting},
-       url = {http://link.springer.com/chapter/10.1007/3-540-18317-5_20},
-       urldate = {2017-02-24},
-       booktitle = {Conference on {Functional} {Programming} {Languages} and {Computer} {Architecture}},
-       publisher = {Springer},
-       author = {Brus, T. H. and van Eekelen, Marko CJD and Van Leer, M. O. and Plasmeijer, Marinus J.},
-       year = {1987},
-       pages = {364--384},
-       file = {Clean &#x2014\; 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}
+@phdthesis{oortgiese_distributed_2017,
+       address = {Nijmegen},
+       type = {Master},
+       title = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
+       shorttitle = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
+       url = {http://www.ru.nl/publish/pages/769526/arjan_oortgiese.pdf},
+       language = {English},
+       urldate = {2017-04-08},
+       school = {Radboud University},
+       author = {Oortgiese, Arjan},
+       year = {2017},
+       file = {arjan_oortgiese.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/J4WXQXU4/arjan_oortgiese.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}
+@incollection{achten_introduction_2015,
+       title = {An {Introduction} to {Task} {Oriented} {Programming}},
+       booktitle = {Central {European} {Functional} {Programming} {School}},
+       publisher = {Springer},
+       author = {Achten, Peter and Koopman, Pieter and Plasmeijer, Rinus},
+       year = {2015},
+       pages = {187--245},
+       file = {chp%3A10.1007%2F978-3-319-15940-9_5.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/ZSDSIIT7/chp%3A10.1007%2F978-3-319-15940-9_5.pdf:application/pdf}
 }
 
 @book{lijnse_top_2013,
        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}
+       file = {103931.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/9KZ9I6N9/103931.pdf:application/pdf}
 }
 
-@phdthesis{oortgiese_distributed_2017,
-       address = {Nijmegen},
-       type = {Master},
-       title = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
-       shorttitle = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
-       url = {http://www.ru.nl/publish/pages/769526/arjan_oortgiese.pdf},
-       language = {English},
-       urldate = {2017-04-08},
-       school = {Radboud University},
-       author = {Oortgiese, Arjan},
-       year = {2017},
-       file = {arjan_oortgiese.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/J4WXQXU4/arjan_oortgiese.pdf:application/pdf}
+@inproceedings{pike_programming_2014,
+       title = {Programming languages for high-assurance autonomous vehicles: extended abstract},
+       isbn = {978-1-4503-2567-7},
+       shorttitle = {Programming languages for high-assurance autonomous vehicles},
+       url = {http://dl.acm.org/citation.cfm?doid=2541568.2541570},
+       doi = {10.1145/2541568.2541570},
+       language = {en},
+       urldate = {2017-05-10},
+       publisher = {ACM Press},
+       author = {Pike, Lee and Hickey, Patrick and Bielman, James and Elliott, Trevor and DuBuisson, Thomas and Launchbury, John},
+       year = {2014},
+       pages = {1--2},
+       file = {pike-plpv14.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/MTUSHBNF/pike-plpv14.pdf:application/pdf}
+}
+
+@inproceedings{brus_cleanlanguage_1987,
+       title = {Clean—a language for functional graph rewriting},
+       url = {http://link.springer.com/chapter/10.1007/3-540-18317-5_20},
+       urldate = {2017-02-24},
+       booktitle = {Conference on {Functional} {Programming} {Languages} and {Computer} {Architecture}},
+       publisher = {Springer},
+       author = {Brus, T. H. and van Eekelen, Marko CJD and Van Leer, M. O. and Plasmeijer, Marinus J.},
+       year = {1987},
+       pages = {364--384},
+       file = {Clean &#x2014\; A language for functional graph rewriting - chp%3A10.1007%2F3-540-18317-5_20.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/GCEPPRUJ/chp%3A10.1007%2F3-540-18317-5_20.pdf:application/pdf}
 }
 
 @incollection{havelund_practical_2015,
        editor = {Havelund, Klaus and Holzmann, Gerard and Joshi, Rajeev},
        year = {2015},
        note = {DOI: 10.1007/978-3-319-17524-9},
-       file = {mart_paper.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/5SXR59GR/mart_paper.pdf:application/pdf}
-}
-
-@inproceedings{pike_programming_2014,
-       title = {Programming languages for high-assurance autonomous vehicles: extended abstract},
-       isbn = {978-1-4503-2567-7},
-       shorttitle = {Programming languages for high-assurance autonomous vehicles},
-       url = {http://dl.acm.org/citation.cfm?doid=2541568.2541570},
-       doi = {10.1145/2541568.2541570},
-       language = {en},
-       urldate = {2017-05-10},
-       publisher = {ACM Press},
-       author = {Pike, Lee and Hickey, Patrick and Bielman, James and Elliott, Trevor and DuBuisson, Thomas and Launchbury, John},
-       year = {2014},
-       pages = {1--2},
-       file = {pike-plpv14.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/MTUSHBNF/pike-plpv14.pdf:application/pdf}
+       file = {mart_paper.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/5SXR59GR/mart_paper.pdf:application/pdf}
 }
 
-@inproceedings{svenningsson_combining_2012,
-       title = {Combining deep and shallow embedding for {EDSL}},
-       url = {http://link.springer.com/chapter/10.1007/978-3-642-40447-4_2},
-       urldate = {2017-05-10},
-       booktitle = {International {Symposium} on {Trends} in {Functional} {Programming}},
-       publisher = {Springer},
-       author = {Svenningsson, Josef and Axelsson, Emil},
-       year = {2012},
-       pages = {21--36},
-       file = {svenningsson2013combining.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/NFBGZCZT/svenningsson2013combining.pdf:application/pdf}
+@incollection{plasmeijer_shallow_2016,
+       address = {Cham},
+       series = {Lecture {Notes} in {Computer} {Science}},
+       title = {A {Shallow} {Embedded} {Type} {Safe} {Extendable} {DSL} for the {Arduino}},
+       volume = {9547},
+       isbn = {978-3-319-39109-0 978-3-319-39110-6},
+       url = {http://link.springer.com/10.1007/978-3-319-39110-6},
+       urldate = {2017-02-22},
+       booktitle = {Trends in {Functional} {Programming}},
+       publisher = {Springer International Publishing},
+       author = {Plasmeijer, Rinus and Koopman, Pieter},
+       year = {2016},
+       note = {DOI: 10.1007/978-3-319-39110-6},
+       file = {chp%3A10.1007%2F978-3-319-39110-6_6.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/TJVP6FHF/chp%3A10.1007%2F978-3-319-39110-6_6.pdf:application/pdf}
 }
 
 @techreport{cheney_first-class_2003,
        institution = {Cornell University},
        author = {Cheney, James and Hinze, Ralf},
        year = {2003},
-       file = {https\://ecommons.cornell.edu/bitstream/handle/1813/5614/?sequence=1:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/R5IFMHTP/5614.pdf:application/pdf}
+       file = {https\://ecommons.cornell.edu/bitstream/handle/1813/5614/?sequence=1:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/R5IFMHTP/5614.pdf:application/pdf}
 }
 
 @inproceedings{cheney_lightweight_2002,
        author = {Cheney, James and Hinze, Ralf},
        year = {2002},
        pages = {90--104},
-       file = {HW02.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/A8Z49NK6/HW02.pdf:application/pdf}
+       file = {HW02.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/A8Z49NK6/HW02.pdf:application/pdf}
 }
 
-@misc{noauthor_arduino_nodate,
-       title = {Arduino - {Open} {Source} {Products} for {Electronic} {Projects}},
-       url = {http://www.arduino.org/},
+@article{domoszlai_implementing_2011,
+       title = {Implementing a non-strict purely functional language in {JavaScript}},
+       volume = {3},
+       url = {https://www.researchgate.net/profile/Jan_Martin_Jansen2/publication/230607075_Implementing_a_non-strict_purely_functional_language_in_JavaScript/links/53fc40190cf22f21c2f3b28a.pdf},
        urldate = {2017-05-23},
-       file = {Arduino - Open Source Products for Electronic Projects:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/FPPFH7D2/www.arduino.org.html:text/html}
+       journal = {Acta Universitatis Sapientiae},
+       author = {Domoszlai, Laszlo and Bruel, Eddy and Jansen, Jan Martin},
+       year = {2011},
+       pages = {76--98},
+       file = {53fc40190cf22f21c2f3b28a.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/2EVHREI3/53fc40190cf22f21c2f3b28a.pdf:application/pdf}
 }
 
-@article{riazul_islam_internet_2015,
-       title = {The {Internet} of {Things} for {Health} {Care}: {A} {Comprehensive} {Survey}},
-       volume = {3},
-       issn = {2169-3536},
-       shorttitle = {The {Internet} of {Things} for {Health} {Care}},
-       url = {http://ieeexplore.ieee.org/document/7113786/},
-       doi = {10.1109/ACCESS.2015.2437951},
+@inproceedings{domoszlai_compiling_2012,
+       title = {Compiling {Haskell} to {JavaScript} through {Clean}’s core},
+       url = {http://ac.inf.elte.hu/Vol_036_2012/117_36.pdf},
        urldate = {2017-05-23},
-       journal = {IEEE Access},
-       author = {Riazul Islam, S. M. and {Daehan Kwak} and Humaun Kabir, Md and Hossain, Mahmud and {Kyung-Sup Kwak}},
-       year = {2015},
-       pages = {678--708},
-       file = {07113786.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/7FNMPTHJ/07113786.pdf:application/pdf}
+       booktitle = {Selected papers of 9th {Joint} {Conference} on {Mathematics} and {Computer} {Science} ({February} 2012)},
+       author = {Domoszlai, László and Plasmeijer, Rinus},
+       year = {2012},
+       file = {117_36.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/DMQC59C4/117_36.pdf:application/pdf}
 }
 
 @article{plasmeijer_itasks:_2007,
        author = {Plasmeijer, Rinus and Achten, Peter and Koopman, Pieter},
        year = {2007},
        pages = {141--152},
-       file = {plar2007-ICFP07-iTasks.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/N8EUZP7D/plar2007-ICFP07-iTasks.pdf:application/pdf}
-}
-
-@misc{noauthor_firmata/protocol:_nodate,
-       title = {firmata/protocol: {Documentation} of the {Firmata} protocol.},
-       url = {https://github.com/firmata/protocol},
-       urldate = {2017-05-23},
-       file = {firmata/protocol\: Documentation of the Firmata protocol.:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/98HIGKIS/protocol.html:text/html}
+       file = {plar2007-ICFP07-iTasks.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/N8EUZP7D/plar2007-ICFP07-iTasks.pdf:application/pdf}
 }
 
 @misc{noauthor_harduino_nodate,
        title = {{hArduino} by {LeventErkok}},
        url = {https://leventerkok.github.io/hArduino/},
        urldate = {2017-05-23},
-       file = {hArduino by LeventErkok:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/JUDWSMV9/hArduino.html:text/html}
+       file = {hArduino by LeventErkok:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/JUDWSMV9/hArduino.html:text/html}
+}
+
+@inproceedings{elliott_guilt_2015,
+       title = {Guilt free ivory},
+       volume = {50},
+       booktitle = {{ACM} {SIGPLAN} {Notices}},
+       publisher = {ACM},
+       author = {Elliott, Trevor and Pike, Lee and Winwood, Simon and Hickey, Pat and Bielman, James and Sharp, Jamey and Seidel, Eric and Launchbury, John},
+       year = {2015},
+       pages = {189--200},
+       file = {5678351608ae125516ee79c6.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/KJMFUH7T/5678351608ae125516ee79c6.pdf:application/pdf}
+}
+
+@article{riazul_islam_internet_2015,
+       title = {The {Internet} of {Things} for {Health} {Care}: {A} {Comprehensive} {Survey}},
+       volume = {3},
+       issn = {2169-3536},
+       shorttitle = {The {Internet} of {Things} for {Health} {Care}},
+       url = {http://ieeexplore.ieee.org/document/7113786/},
+       doi = {10.1109/ACCESS.2015.2437951},
+       urldate = {2017-05-23},
+       journal = {IEEE Access},
+       author = {Riazul Islam, S. M. and {Daehan Kwak} and Humaun Kabir, Md and Hossain, Mahmud and {Kyung-Sup Kwak}},
+       year = {2015},
+       pages = {678--708},
+       file = {07113786.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/7FNMPTHJ/07113786.pdf:application/pdf}
 }
 
 @article{jansen_efficient_2007,
        author = {Jansen, Jan Martin and Koopman, Pieter and Plasmeijer, Rinus},
        year = {2007},
        pages = {73},
-       file = {janj2007-TFP06-EfficientInterpretationOfSAPL.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/AQDI7QVE/janj2007-TFP06-EfficientInterpretationOfSAPL.pdf:application/pdf}
+       file = {janj2007-TFP06-EfficientInterpretationOfSAPL.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/AQDI7QVE/janj2007-TFP06-EfficientInterpretationOfSAPL.pdf:application/pdf}
 }
 
-@inproceedings{domoszlai_compiling_2012,
-       title = {Compiling {Haskell} to {JavaScript} through {Clean}’s core},
-       url = {http://ac.inf.elte.hu/Vol_036_2012/117_36.pdf},
+@misc{noauthor_firmata/protocol:_nodate,
+       title = {firmata/protocol: {Documentation} of the {Firmata} protocol.},
+       url = {https://github.com/firmata/protocol},
        urldate = {2017-05-23},
-       booktitle = {Selected papers of 9th {Joint} {Conference} on {Mathematics} and {Computer} {Science} ({February} 2012)},
-       author = {Domoszlai, László and Plasmeijer, Rinus},
-       year = {2012},
-       file = {117_36.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/DMQC59C4/117_36.pdf:application/pdf}
+       file = {firmata/protocol\: Documentation of the Firmata protocol.:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/98HIGKIS/protocol.html:text/html}
 }
 
-@article{domoszlai_implementing_2011,
-       title = {Implementing a non-strict purely functional language in {JavaScript}},
-       volume = {3},
-       url = {https://www.researchgate.net/profile/Jan_Martin_Jansen2/publication/230607075_Implementing_a_non-strict_purely_functional_language_in_JavaScript/links/53fc40190cf22f21c2f3b28a.pdf},
+@misc{noauthor_arduino_nodate,
+       title = {Arduino - {Open} {Source} {Products} for {Electronic} {Projects}},
+       url = {http://www.arduino.org/},
        urldate = {2017-05-23},
-       journal = {Acta Universitatis Sapientiae},
-       author = {Domoszlai, Laszlo and Bruel, Eddy and Jansen, Jan Martin},
-       year = {2011},
-       pages = {76--98},
-       file = {53fc40190cf22f21c2f3b28a.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/2EVHREI3/53fc40190cf22f21c2f3b28a.pdf:application/pdf}
-}
-
-@inproceedings{elliott_guilt_2015,
-       title = {Guilt free ivory},
-       volume = {50},
-       booktitle = {{ACM} {SIGPLAN} {Notices}},
-       publisher = {ACM},
-       author = {Elliott, Trevor and Pike, Lee and Winwood, Simon and Hickey, Pat and Bielman, James and Sharp, Jamey and Seidel, Eric and Launchbury, John},
-       year = {2015},
-       pages = {189--200},
-       file = {5678351608ae125516ee79c6.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/KJMFUH7T/5678351608ae125516ee79c6.pdf:application/pdf}
+       file = {Arduino - Open Source Products for Electronic Projects:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/FPPFH7D2/www.arduino.org.html:text/html}
 }
 
 @inproceedings{hickey_building_2014,
        author = {Hickey, Patrick C. and Pike, Lee and Elliott, Trevor and Bielman, James and Launchbury, John},
        year = {2014},
        pages = {3--9},
-       file = {embedded-experience.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/7IHBGC8H/embedded-experience.pdf:application/pdf}
+       file = {embedded-experience.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/7IHBGC8H/embedded-experience.pdf:application/pdf}
+}
+
+@inproceedings{domoszlai_parametric_2014,
+       title = {Parametric lenses: change notification for bidirectional lenses},
+       shorttitle = {Parametric lenses},
+       url = {http://dl.acm.org/citation.cfm?id=2746333},
+       urldate = {2017-05-29},
+       booktitle = {Proceedings of the 26nd 2014 {International} {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
+       publisher = {ACM},
+       author = {Domoszlai, László and Lijnse, Bas and Plasmeijer, Rinus},
+       year = {2014},
+       pages = {9},
+       file = {ifl2014_submission_20.pdf:/home/mrl/.mozilla/firefox/a614qfce.default/zotero/storage/3WI8PI5D/ifl2014_submission_20.pdf:application/pdf}
 }