701b15761e714307607acccb49dc1b421e11fc29
[phd-thesis.git] / bib / tiot.bib
1
2 @Article{ sethi2017internet,
3 title = {Internet of things: architectures, protocols, and
4 applications},
5 author = {Sethi, Pallavi and Sarangi, Smruti R},
6 journal = {Journal of Electrical and Computer Engineering},
7 volume = {2017},
8 year = {2017},
9 publisher = {Hindawi}
10 }
11
12 @InProceedings{ muccini2018iot,
13 author = "Muccini, Henry and Moghaddam, Mahyar Tourchi",
14 editor = "Cuesta, Carlos E. and Garlan, David and P{\'e}rez,
15 Jennifer",
16 title = "IoT Architectural Styles",
17 booktitle = "Software Architecture",
18 year = "2018",
19 publisher = "Springer International Publishing",
20 address = "Cham",
21 pages = "68--85",
22 abstract = "IoT components are becoming more and more ubiquitous.
23 Thus, the necessity of architecting IoT applications is
24 bringing a substantial attention towards software
25 engineering community. On this occasion, different styles
26 and patterns can facilitate shaping the IoT architectural
27 characteristics. This study aims at defining, identifying,
28 classifying, and re-designing a class of IoT styles and
29 patterns at the architectural level. Conforming a
30 systematic mapping study (SMS) selection procedure, we
31 picked out 63 papers among over 2,300 candidate studies. To
32 this end, we applied a rigorous classification and
33 extraction framework to select and analyze the most
34 influential domain-related information. Our analysis
35 revealed the following main findings: (i) facing by various
36 architectural styles that attempted to address various
37 aspects of IoT systems, cloud and fog are discerned as
38 their most important components. (ii) distributed patterns
39 are not widely discussed for IoT architecture, however,
40 there is foreseen a grow specially for their industrial
41 applications. (iii) starting from the last few years on,
42 there is still a growing scientific interest on IoT
43 architectural styles. This study gives a solid foundation
44 for classifying existing and future approaches for IoT
45 styles beneficial for academic and industrial researchers.
46 It provides a set of abstract IoT reference architectures
47 to be applicable on various architectural styles.",
48 isbn = "978-3-030-00761-4"
49 }
50
51 @InProceedings{ rosenberg1997some,
52 title = {Some misconceptions about lines of code},
53 author = {Rosenberg, Jarrett},
54 booktitle = {Proceedings fourth international software metrics
55 symposium},
56 pages = {137--142},
57 year = {1997},
58 organization = {IEEE},
59 publisher = {IEEE},
60 doi = {10.1109/METRIC.1997.637174},
61 address = {Albuquerque, NM, USA}
62 }
63
64 @InProceedings{ cooper2006links,
65 address = {Berlin, Heidelberg},
66 title = {Links: {Web} {Programming} {Without} {Tiers}},
67 isbn = {978-3-540-74792-5},
68 abstract = {Links is a programming language for web applications that
69 generates code for all three tiers of a web application
70 from a single source, compiling into JavaScript to run on
71 the client and into SQL to run on the database. Links
72 supports rich clients running in what has been dubbed
73 `Ajax' style, and supports concurrent processes with
74 statically-typed message passing. Links is scalable in the
75 sense that session state is preserved in the client rather
76 than the server, in contrast to other approaches such as
77 Java Servlets or PLT Scheme. Client-side concurrency in
78 JavaScript and transfer of computation between client and
79 server are both supported by translation into
80 continuation-passing style.},
81 booktitle = {Formal {Methods} for {Components} and {Objects}},
82 publisher = {Springer Berlin Heidelberg},
83 author = {Cooper, Ezra and Lindley, Sam and Wadler, Philip and
84 Yallop, Jeremy},
85 editor = {de Boer, Frank S. and Bonsangue, Marcello M. and Graf,
86 Susanne and de Roever, Willem-Paul},
87 year = {2007},
88 pages = {266--296}
89 }
90
91 @InProceedings{ serrano2006hop,
92 title = {Hop: a language for programming the web 2.0},
93 author = {Serrano, Manuel and Gallesio, Erick and Loitsch, Florian},
94 booktitle = {OOPSLA Companion},
95 pages = {975--985},
96 year = {2006},
97 publisher = {ACM},
98 address = {Portland, Oregon, USA}
99 }
100
101 @Article{ levis_mate_2002,
102 title = {Maté: {A} tiny virtual machine for sensor networks},
103 volume = {37},
104 number = {10},
105 journal = {ACM Sigplan Notices},
106 author = {Levis, Philip and Culler, David},
107 year = {2002},
108 publisher = {ACM},
109 pages = {85--95},
110 file = {Levis and Culler - Matd A Tiny Virtual Machine for Sensor
111 Networks.pdf:/home/mrl/.local/share/zotero/storage/RMPGY9NI/Levis
112 and Culler - Matd A Tiny Virtual Machine for Sensor
113 Networks.pdf:application/pdf}
114 }
115
116 @Article{ light2017mosquitto,
117 title = {Mosquitto: server and client implementation of the MQTT
118 protocol},
119 author = {Light, Roger},
120 journal = {Journal of Open Source Software},
121 volume = {2},
122 number = {13},
123 pages = {265},
124 year = {2017}
125 }
126
127 @Article{ hughes1989functional,
128 title = {Why functional programming matters},
129 author = {Hughes, John},
130 journal = {The computer journal},
131 volume = {32},
132 number = {2},
133 pages = {98--107},
134 year = {1989},
135 publisher = {Oxford University Press}
136 }
137
138 @InProceedings{ troyer_building_2018,
139 title = {Building {IoT} {Systems} {Using} {Distributed}
140 {First}-{Class} {Reactive} {Programming}},
141 booktitle = {2018 {IEEE} {International} {Conference} on {Cloud}
142 {Computing} {Technology} and {Science} ({CloudCom})},
143 author = {Troyer, de, Christophe and Nicolay, Jens and Meuter, de,
144 Wolfgang},
145 month = dec,
146 year = {2018},
147 pages = {185--192},
148 publisher = {IEEE},
149 address = {Nicosia, Cyprus}
150 }
151
152 @Article{ harth_predictive_2018,
153 author = {Natascha Harth and Christos Anagnostopoulos and Dimitrios
154 Pezaros},
155 title = {Predictive intelligence to the edge: impact on edge
156 analytics},
157 journal = {Evolving Systems},
158 volume = {9},
159 number = {2},
160 pages = {95--118},
161 year = {2018}
162 }
163
164 @Book{ guinard_building_2016,
165 address = {USA},
166 edition = {1st},
167 title = {Building the {Web} of {Things}: {With} {Examples} in
168 {Node}.{Js} and {Raspberry} {Pi}},
169 isbn = {1-61729-268-0},
170 publisher = {Manning Publications Co.},
171 author = {Guinard, Dominique and Trifa, Vlad},
172 year = {2016}
173 }
174
175 @Article{ maccormack2007impact,
176 title = {The impact of component modularity on design evolution:
177 Evidence from the software industry},
178 author = {MacCormack, Alan and Rusnak, John and Baldwin, Carliss Y},
179 journal = {Harvard Business School Technology \& Operations Mgt. Unit
180 Research Paper},
181 number = {038},
182 volume = {08},
183 year = {2007},
184 month = {dec},
185 doi = {10.2139/ssrn.1071720}
186 }
187
188 @InProceedings{ belle2013layered,
189 address = {Boston, MA, USA},
190 title = {The layered architecture revisited: {Is} it an
191 optimization problem?},
192 volume = {1},
193 isbn = {978-1-5108-4159-8},
194 shorttitle = {{SEKE} 2013},
195 booktitle = {Proceedings of the {Twenty}-{Fifth} {International}
196 {Conference} on {Software} {Engineering} \& {Knowledge}
197 {E}},
198 publisher = {KSI Research Inc},
199 author = {Belle, Alvine Boaye and El-Boussaidi, Ghizlane and
200 Desrosiers, Christian and Mili, Hafedh},
201 year = {2013},
202 pages = {344--349}
203 }
204
205 @InProceedings{ lee2001component,
206 title = {Component identification method with coupling and
207 cohesion},
208 author = {Lee, Jong Kook and Jung, Seung Jae and Kim, Soo Dong and
209 Jang, Woo Hyun and Ham, Dong Han},
210 booktitle = {Proceedings Eighth Asia-Pacific Software Engineering
211 Conference},
212 pages = {79--86},
213 year = {2001},
214 organization = {IEEE},
215 publisher = {IEEE},
216 address = {Macao, China}
217 }
218
219 @Article{ mazzei2018full,
220 title = {A full stack for quick prototyping of IoT solutions},
221 author = {Mazzei, Daniele and Baldi, Giacomo and Montelisciani,
222 Gabriele and Fantoni, Gualtiero},
223 journal = {Annals of Telecommunications},
224 volume = {73},
225 number = {7-8},
226 pages = {439--449},
227 year = {2018},
228 publisher = {Springer}
229 }
230
231 @Article{ mayer2017multi,
232 title = {On multi-language software development, cross-language
233 links and accompanying tools: a survey of professional
234 software developers},
235 author = {Mayer, Philip and Kirsch, Michael and Le, Minh Anh},
236 journal = {Journal of Software Engineering Research and Development},
237 volume = {5},
238 number = {1},
239 pages = {1},
240 year = {2017},
241 publisher = {Springer}
242 }
243
244 @InProceedings{ mayer2015empirical,
245 author = {Mayer, Philip and Bauer, Alexander},
246 title = {An Empirical Analysis of the Utilization of Multiple
247 Programming Languages in Open Source Projects},
248 year = {2015},
249 isbn = {9781450333504},
250 publisher = {ACM},
251 address = {New York, NY, USA},
252 doi = {10.1145/2745802.2745805},
253 abstract = {Background: Anecdotal evidence suggests that software
254 applications are usually implemented using a combination of
255 (programming) languages. Aim: We want to provide empirical
256 evidence on the phenomenon of multi-language programming.
257 Methods: We use data mining of 1150 open source projects
258 selected for diversity from a public repository to a)
259 investigate the projects for number and type of languages
260 found and the relative sizes of the languages; b) report on
261 associations between the number of languages found and the
262 size, age, number of contributors, and number of commits of
263 a project using a (Quasi-)Poisson regression model, and c)
264 discuss concrete associations between the general-purpose
265 languages and domain-specific languages found using
266 frequent item set mining. Results: We found a) a mean
267 number of 5 languages per project with a clearly dominant
268 main general-purpose language and 5 often-used DSL types,
269 b) a significant influence of the size, number of commits,
270 and the main language on the number of languages as well as
271 no significant influence of age and number of contributors,
272 and c) three language ecosystems grouped around XML,
273 Shell/Make, and HTML/CSS. Conclusions: Multi-language
274 programming seems to be common in open-source projects and
275 is a factor which must be dealt with in tooling and when
276 assessing development and maintenance of such software
277 systems.},
278 booktitle = {Proceedings of the 19th International Conference on
279 Evaluation and Assessment in Software Engineering},
280 articleno = {4},
281 numpages = {10},
282 location = {Nanjing, China},
283 series = {EASE '15}
284 }
285
286 @InProceedings{ motta2018challenges,
287 author = {Motta, Rebeca C. and de Oliveira, K\'{a}thia M. and
288 Travassos, Guilherme H.},
289 title = {On Challenges in Engineering IoT Software Systems},
290 year = {2018},
291 isbn = {9781450365031},
292 publisher = {ACM},
293 address = {New York, NY, USA},
294 doi = {10.1145/3266237.3266263},
295 abstract = {Contemporary software systems, such as the Internet of
296 Things (IoT), Industry 4.0, and Smart Cities are new
297 technology paradigms that offer challenges for their
298 construction since they are calling into question our
299 traditional form of developing software. They are a
300 promising paradigm for the integration of devices and
301 communications technologies. It is leading to a shift from
302 the classical monolithic view of development where
303 stakeholder receive a software product at the end (that we
304 have been doing for decades), to software systems
305 materialized through physical objects interconnected by
306 networks and with embedded software to support daily
307 activities. We need therefore to revisit our way of
308 developing software systems and start to consider the
309 particularities required by these new sorts of
310 applications. This paper presents research toward the
311 definition of a framework to support the systems
312 engineering of IoT applications, where we evolved the
313 Zachman's Framework as an alternative to the organization
314 of this architecture. The activities were two folded to
315 address this goal: a) we identified leading concerns of IoT
316 applications, recovered from technical literature,
317 practitioners and a Government Report, in different
318 studies; b) we structured the IoT paradigm in different
319 facets. These activities provided 14 significant concerns
320 and seven facets that together represent the engineering
321 challenges to be faced both by research and practice
322 towards the advancement of IoT in practice.},
323 booktitle = {Proceedings of the XXXII Brazilian Symposium on Software
324 Engineering},
325 pages = {4251},
326 numpages = {10},
327 keywords = {challenges, concerns, internet of things, IoT, literature
328 review, empirical software engineering},
329 location = {Sao Carlos, Brazil},
330 series = {SBES '18}
331 }
332
333 @InProceedings{ kodali2016low,
334 title = {Low cost ambient monitoring using ESP8266},
335 author = {Kodali, Ravi Kishore and Mahesh, Kopulwar Shishir},
336 booktitle = {2016 2nd International Conference on Contemporary
337 Computing and Informatics (IC3I)},
338 pages = {779--782},
339 year = {2016},
340 organization = {IEEE},
341 publisher = {IEEE},
342 address = {Greater Noida, India}
343 }
344
345 @InProceedings{ alpernaswonderful,
346 author = {Alpernas, Kalev and Feldman, Yotam M. Y. and Peleg, Hila},
347 title = {The Wonderful Wizard of LoC: Paying Attention to the Man
348 behind the Curtain of Lines-of-Code Metrics},
349 year = {2020},
350 isbn = {9781450381789},
351 publisher = {ACM},
352 address = {New York, NY, USA},
353 doi = {10.1145/3426428.3426921},
354 abstract = {Lines-of-code metrics (loc) are commonly reported in
355 Programming Languages (PL), Software Engineering (SE), and
356 Systems papers. This convention has several different,
357 often contradictory, goals, including demonstrating the
358 `hardness' of a problem, and demonstrating the `easiness'
359 of a problem. In many cases, the reporting of loc metrics
360 is done not with a clearly communicated intention, but
361 instead in an automatic, checkbox-ticking, manner. In this
362 paper we investigate the uses of code metrics in PL, SE,
363 and System papers. We consider the different goals that
364 reporting metrics aims to achieve, several various domains
365 wherein metrics are relevant, and various alternative
366 metrics and their pros and cons for the different goals and
367 domains. We argue that communicating claims about research
368 software is usually best achieved not by reporting
369 quantitative metrics, but by reporting the qualitative
370 experience of researchers, and propose guidelines for the
371 cases when quantitative metrics are appropriate. We end
372 with a case study of the one area in which lines of code
373 are not the default measurement---code produced by papers'
374 solutions---and identify how measurements offered are used
375 to support an explicit claim about the algorithm. Inspired
376 by this positive example, we call for other cogent measures
377 to be developed to support other claims authors wish to
378 make.},
379 booktitle = {Proceedings of the 2020 ACM SIGPLAN International
380 Symposium on New Ideas, New Paradigms, and Reflections on
381 Programming and Software},
382 pages = {146156},
383 numpages = {11},
384 keywords = {research papers, loc, lines of code},
385 location = {Virtual, USA},
386 series = {Onward! 2020}
387 }
388
389 @InProceedings{ epstein2011towards,
390 author = {Epstein, Jeff and Black, Andrew P. and Peyton Jones,
391 Simon},
392 title = {Towards Haskell in the Cloud},
393 year = {2011},
394 isbn = {9781450308601},
395 publisher = {ACM},
396 address = {New York, NY, USA},
397 doi = {10.1145/2034675.2034690},
398 abstract = {We present Cloud Haskell, a domain-specific language for
399 developing programs for a distributed computing
400 environment. Implemented as a shallow embedding in Haskell,
401 it provides a message-passing communication model, inspired
402 by Erlang, without introducing incompatibility with
403 Haskell's established shared-memory concurrency. A key
404 contribution is a method for serializing function closures
405 for transmission across the network. Cloud Haskell has been
406 implemented; we present example code and some preliminary
407 performance measurements.},
408 booktitle = {Proceedings of the 4th ACM Symposium on Haskell},
409 pages = {118129},
410 numpages = {12},
411 keywords = {message-passing, haskell, erlang},
412 location = {Tokyo, Japan},
413 series = {Haskell '11}
414 }
415
416 @Book{ gupta2012akka,
417 title = {Akka essentials},
418 address = {Livery Place, 35 Livery Street, Birmingham B3 2PB, UK},
419 author = {Gupta, Munish},
420 year = {2012},
421 publisher = {Packt Publishing Ltd}
422 }
423
424 @Misc{ wiki:io,
425 author = "HaskellWiki",
426 title = "Introduction to IO --- HaskellWiki{,} ",
427 year = "2020",
428 url = "https://wiki.haskell.org/index.php?title=Introduction_to_IO&oldid=63493",
429 note = "[Online; accessed 19-January-2021]"
430 }
431
432 @Misc{ circuitpython,
433 author = {{CircuitPython Team}},
434 title = "CircuitPython",
435 year = "2022",
436 url = "https://circuitpython.org/",
437 note = "[Online; accessed 2-March-2022]"
438 }
439
440 @InProceedings{ genericprogrammingextensionforclean,
441 author = "Alimarine, Artem and Plasmeijer, Rinus",
442 editor = "Arts, Thomas and Mohnen, Markus",
443 title = "A Generic Programming Extension for Clean",
444 booktitle = "Implementation of Functional Languages",
445 year = "2002",
446 publisher = "Springer Berlin Heidelberg",
447 address = "Berlin, Heidelberg",
448 pages = "168--185",
449 abstract = "Generic programming enables the programmer to define
450 functions by induction on the structure of types. Defined
451 once, such a generic function can be used to generate a
452 specialized function for any user defined data type.
453 Several ways to support generic programming in functional
454 languages have been proposed, each with its own pros and
455 cons. In this paper we describe a combination of two
456 existing approaches, which has the advantages of both of
457 them. In our approach overloaded functions with class
458 variables of an arbitrary kind can be defined generically.
459 A single generic definition defines a kind-indexed family
460 of overloaded functions, one for each kind. For instance,
461 the generic mapping function generates an overloaded
462 mapping function for each kind.",
463 isbn = "978-3-540-46028-2"
464 }
465
466 @InProceedings{ hinzegenericfunctionalprogramming,
467 author = {Hinze, Ralf},
468 title = {A New Approach to Generic Functional Programming},
469 year = {2000},
470 isbn = {1581131259},
471 publisher = {ACM},
472 address = {New York, NY, USA},
473 doi = {10.1145/325694.325709},
474 abstract = {This paper describes a new approach to generic functional
475 programming, which allows us to define functions
476 generically for all datatypes expressible in Haskell. A
477 generic function is one that is defined by induction on the
478 structure of types. Typical examples include pretty
479 printers, parsers, and comparison functions. The advanced
480 type system of Haskell presents a real challenge: datatypes
481 may be parameterized not only by types but also by type
482 constructors, type definitions may involve mutual
483 recursion, and recursive calls of type constructors can be
484 arbitrarily nested. We show that—despite this
485 complexity—a generic function is uniquely defined by
486 giving cases for primitive types and type constructors
487 (such as disjoint unions and cartesian products). Given
488 this information a generic function can be specialized to
489 arbitrary Haskell datatypes. The key idea of the approach
490 is to model types by terms of the simply typed
491 $\lambda-calculus augmented by a family of recursion
492 operators. While conceptually simple, our approach places
493 high demands on the type system: it requires polymorphic
494 recursion, rank-n types, and a strong form of type
495 constructor polymorphism. Finally, we point out connections
496 to Haskell's class system and show that our approach
497 generalizes type classes in some respects.},
498 booktitle = {Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on
499 Principles of Programming Languages},
500 pages = {119132},
501 numpages = {14},
502 location = {Boston, MA, USA},
503 series = {POPL '00}
504 }
505
506 @InProceedings{ top-icfp07,
507 author = {Plasmeijer, Rinus and Achten, Peter and Koopman, Pieter},
508 title = {{iTasks}: {E}xecutable {S}pecifications of {I}nteractive
509 {W}ork {F}low {S}ystems for the {W}eb},
510 booktitle = {{P}roceedings of the 12th {ACM SIGPLAN} {I}nternational
511 {C}onference on {F}unctional {P}rogramming ({ICFP} 2007)},
512 address = {{F}reiburg, {G}ermany},
513 year = 2007,
514 month = {Oct 1--3},
515 publisher = {ACM},
516 isbn = "978-1-59593-815-2",
517 pages = {141-152}
518 }
519
520 @InProceedings{ oortgiese_distributed_2017,
521 title = {A {Distributed} {Dynamic} {Architecture} for {Task}
522 {Oriented} {Programming}},
523 booktitle = {Proceedings of the 29th {Symposium} on {Implementation}
524 and {Application} of {Functional} {Programming}
525 {Languages}},
526 publisher = {ACM},
527 author = {Oortgiese, Arjan and van Groningen, John and Achten, Peter
528 and Plasmeijer, Rinus},
529 year = {2017},
530 pages = {7},
531 address = {Bristol, UK}
532 }
533
534 @InProceedings{ parametriclenses,
535 author = {Domoszlai, L\'{a}szl\'{o} and Lijnse, Bas and Plasmeijer,
536 Rinus},
537 title = {Parametric Lenses: Change Notification for Bidirectional
538 Lenses},
539 year = {2014},
540 isbn = {9781450332842},
541 publisher = {ACM},
542 address = {New York, NY, USA},
543 doi = {10.1145/2746325.2746333},
544 abstract = {Most complex applications inevitably need to maintain
545 dependencies between subsystems based on some shared data.
546 The dependent parts must be informed that the shared
547 information is changed. As every actual notification has
548 some communication cost, and every triggered task has
549 associated computation cost, it is crucial for the overall
550 performance of the application to reduce the number of
551 notifications as much as possible. To achieve this, one
552 must be able to define, with arbitrary precision, which
553 party is depending on which data. In this paper we offer a
554 general solution to this general problem. The solution is
555 based on an extension to bidirectional lenses, called
556 parametric lenses. With the help of parametric lenses one
557 can define compositional parametric views in a declarative
558 way to access some shared data. Parametric views, besides
559 providing read/write access to the shared data, also enable
560 to observe changes of some parts, given by an explicit
561 parameter, the focus domain. The focus domain can be
562 specified as a type-based query language defined over one
563 or more resources using predefined combinators of
564 parametric views.},
565 booktitle = {Proceedings of the 26th International Symposium on
566 Implementation and Application of Functional Languages},
567 articleno = {9},
568 numpages = {11},
569 keywords = {notification systems, parametric views, lenses, parametric
570 lenses, Bi-directional programming},
571 location = {Boston, MA, USA},
572 series = {IFL '14}
573 }
574
575 @InProceedings{ comparinggenericprogramming,
576 author = {Rodriguez, Alexey and Jeuring, Johan and Jansson, Patrik
577 and Gerdes, Alex and Kiselyov, Oleg and Oliveira, Bruno C.
578 d. S.},
579 title = {Comparing Libraries for Generic Programming in Haskell},
580 year = {2008},
581 isbn = {9781605580647},
582 publisher = {ACM},
583 address = {New York, NY, USA},
584 doi = {10.1145/1411286.1411301},
585 abstract = {Datatype-generic programming is defining functions that
586 depend on the structure, or "shape", of datatypes. It has
587 been around for more than 10 years, and a lot of progress
588 has been made, in particular in the lazy functional
589 programming language Haskell. There are morethan 10
590 proposals for generic programming libraries orlanguage
591 extensions for Haskell. To compare and characterise the
592 many generic programming libraries in atyped functional
593 language, we introduce a set of criteria and develop a
594 generic programming benchmark: a set of characteristic
595 examples testing various facets of datatype-generic
596 programming. We have implemented the benchmark for nine
597 existing Haskell generic programming libraries and present
598 the evaluation of the libraries. The comparison is useful
599 for reaching a common standard for generic programming, but
600 also for a programmer who has to choose a particular
601 approach for datatype-generic programming.},
602 booktitle = {Proceedings of the First ACM SIGPLAN Symposium on
603 Haskell},
604 pages = {111122},
605 numpages = {12},
606 keywords = {datatype-generic programming, libraries comparison},
607 location = {Victoria, BC, Canada},
608 series = {Haskell '08}
609 }
610
611 @InProceedings{ kochhar2016large,
612 author = {P. S. {Kochhar} and D. {Wijedasa} and D. {Lo}},
613 booktitle = {23rd International Conference on Software Analysis,
614 Evolution, and Reengineering},
615 title = {A Large Scale Study of Multiple Programming Languages and
616 Code Quality},
617 year = {2016},
618 pages = {563--573},
619 doi = {10.1109/SANER.2016.112},
620 address = {Osaka, Japan},
621 publisher = {IEEE}
622 }
623
624 @Article{ cass2020top,
625 title = {The top programming languages: Our latest rankings put
626 Python on top-again-[Careers]},
627 author = {Cass, Stephen},
628 journal = {IEEE Spectrum},
629 volume = {57},
630 number = {8},
631 pages = {22--22},
632 year = {2020},
633 publisher = {IEEE}
634 }
635
636 @InProceedings{ tanganelli2015coapthon,
637 title = {CoAPthon: Easy development of CoAP-based IoT applications
638 with Python},
639 author = {Tanganelli, Giacomo and Vallati, Carlo and Mingozzi,
640 Enzo},
641 booktitle = {2015 IEEE 2nd World Forum on Internet of Things (WF-IoT)},
642 pages = {63--68},
643 year = {2015},
644 publisher = {IEEE},
645 address = {Milan, Italy}
646 }
647
648 @Article{ jinn,
649 author = {Lee, Byeongcheol and Wiedermann, Ben and Hirzel, Martin
650 and Grimm, Robert and McKinley, Kathryn S.},
651 title = {Jinn: Synthesizing Dynamic Bug Detectors for Foreign
652 Language Interfaces},
653 year = {2010},
654 issue_date = {June 2010},
655 publisher = {ACM},
656 address = {New York, NY, USA},
657 volume = {45},
658 number = {6},
659 issn = {0362-1340},
660 doi = {10.1145/1809028.1806601},
661 abstract = {Programming language specifications mandate static and
662 dynamic analyses to preclude syntactic and semantic errors.
663 Although individual languages are usually well-specified,
664 composing languages is not, and this poor specification is
665 a source of many errors in multilingual programs. For
666 example, virtually all Java programs compose Java and C
667 using the Java Native Interface (JNI). Since JNI is
668 informally specified, developers have difficulty using it
669 correctly, and current Java compilers and virtual machines
670 (VMs) inconsistently check only a subset of JNI
671 constraints.This paper's most significant contribution is
672 to show how to synthesize dynamic analyses from state
673 machines to detect foreign function interface (FFI)
674 violations. We identify three classes of FFI constraints
675 encoded by eleven state machines that capture thousands of
676 JNI and Python/C FFI rules. We use a mapping function to
677 specify which state machines, transitions, and program
678 entities (threads, objects, references) to check at each
679 FFI call and return. From this function, we synthesize a
680 context-specific dynamic analysis to find FFI bugs. We
681 build bug detection tools for JNI and Python/C using this
682 approach. For JNI, we dynamically and transparently
683 interpose the analysis on Java and C language transitions
684 through the JVM tools interface. The resulting tool, called
685 Jinn, is compiler and virtual machine independent. It
686 detects and diagnoses a wide variety of FFI bugs that other
687 tools miss. This approach greatly reduces the annotation
688 burden by exploiting common FFI constraints: whereas the
689 generated Jinn code is 22,000+ lines, we wrote only 1,400
690 lines of state machine and mapping code. Overall, this
691 paper lays the foundation for a more principled approach to
692 developing correct multilingual software and a more concise
693 and automated approach to FFI specification.},
694 journal = {SIGPLAN Not.},
695 month = jun,
696 pages = {3649},
697 numpages = {14},
698 keywords = {specification generation, specification, python/C, dynamic
699 analysis, multilingual programs, java native interface
700 (jni), foreign function interfaces (FFI), ffi bugs}
701 }
702
703 @Article{ furr2005,
704 author = {Furr, Michael and Foster, Jeffrey S.},
705 title = {Checking Type Safety of Foreign Function Calls},
706 year = {2005},
707 issue_date = {June 2005},
708 publisher = {ACM},
709 address = {New York, NY, USA},
710 volume = {40},
711 number = {6},
712 issn = {0362-1340},
713 doi = {10.1145/1064978.1065019},
714 abstract = {We present a multi-lingual type inference system for
715 checking type safety across a foreign function interface.
716 The goal of our system is to prevent foreign function calls
717 from introducing type and memory safety violations into an
718 otherwise safe language. Our system targets OCaml's FFI to
719 C, which is relatively lightweight and illustrates some
720 interesting challenges in multi-lingual type inference. The
721 type language in our system embeds OCaml types in C types
722 and vice-versa, which allows us to track type information
723 accurately even through the foreign language, where the
724 original types are lost. Our system uses representational
725 types that can model multiple OCaml types, because C
726 programs can observe that many OCaml types have the same
727 physical representation. Furthermore, because C has a
728 low-level view of OCaml data, our inference system includes
729 a dataflow analysis to track memory offsets and tag
730 information. Finally, our type system includes garbage
731 collection information to ensure that pointers from the FFI
732 to the OCaml heap are tracked properly. We have implemented
733 our inference system and applied it to a small set of
734 benchmarks. Our results show that programmers do misuse
735 these interfaces, and our implementation has found several
736 bugs and questionable coding practices in our benchmarks.},
737 journal = {SIGPLAN Not.},
738 month = jun,
739 pages = {6272},
740 numpages = {11},
741 keywords = {foreign function calls, multi-lingual type system, OCaml,
742 multi-lingual type inference, flow-sensitive type system,
743 FFI, foreign function interface, dataflow analysis,
744 representational type}
745 }
746
747 @InProceedings{ plamauer2017evaluation,
748 title = {Evaluation of micropython as application layer programming
749 language on cubesats},
750 author = {Plamauer, Sebastian and Langer, Martin},
751 booktitle = {ARCS 2017; 30th International Conference on Architecture
752 of Computing Systems},
753 pages = {1--9},
754 year = {2017},
755 organization = {VDE},
756 publisher = {VDE},
757 address = {Vienna, Austria}
758 }
759
760 @Book{ ravulavaru18,
761 author = {Ravulavaru, Arvind},
762 isbn = {1-78883-378-3},
763 language = {eng},
764 publisher = {Packt Publishing},
765 title = {Enterprise internet of things handbook : build end-to-end
766 IoT solutions using popular IoT platforms},
767 year = {2018},
768 address = {Birmingham, UK}
769 }
770
771 @InProceedings{ alphonsa20,
772 author = "Alphonsa, Mandla",
773 editor = "Kumar, Amit and Mozar, Stefan",
774 title = "A Review on IOT Technology Stack, Architecture and Its
775 Cloud Applications in Recent Trends",
776 booktitle = "ICCCE 2020",
777 year = "2021",
778 publisher = "Springer Singapore",
779 address = "Singapore",
780 pages = "703--711",
781 abstract = "The Internet of Things (IoT) senses, gather and transmit
782 data over the internet without any human interference. This
783 technology is a mixture of embedded technology, network
784 technology and information technology. On various
785 advancement of huge network and the broadcasting of (IoT),
786 wireless sensored networks are considered to be part of the
787 huge heterogeneous network. IoT architecture is the system
788 of various rudiments like sensored networks, protocol,
789 actuators, cloud service and layers. Internet of Things can
790 also be called as an event-driven model. The IOT device is
791 connected to gateway through Radio Frequency, LORA-WAN,
792 Node MCU Pin-out. This review paper describes all protocol
793 stack including its types of sensors in IOT their
794 applications in real time environment and its architecture.
795 In this paper we come together with the two different
796 technologies Cloud Computing and IoT to observe the most
797 common features, and to determine the benefits of their
798 integration. The Cloud IoT prototype involves various
799 applications, research issues and challenges.",
800 isbn = "978-981-15-7961-5"
801 }
802
803 @InProceedings{ sivieri2012drop,
804 title = {Drop the phone and talk to the physical world: Programming
805 the internet of things with Erlang},
806 author = {Sivieri, Alessandro and Mottola, Luca and Cugola,
807 Gianpaolo},
808 booktitle = {2012 Third International Workshop on Software Engineering
809 for Sensor Network Applications (SESENA)},
810 pages = {8--14},
811 year = {2012},
812 organization = {IEEE}
813 }
814
815 @Article{ chong2007secure,
816 title = {Secure web applications via automatic partitioning},
817 author = {Chong, Stephen and Liu, Jed and Myers, Andrew C and Qi,
818 Xin and Vikram, Krishnaprasad and Zheng, Lantian and Zheng,
819 Xin},
820 journal = {ACM SIGOPS Operating Systems Review},
821 volume = {41},
822 number = {6},
823 pages = {31--44},
824 year = {2007},
825 publisher = {ACM New York, NY, USA}
826 }
827
828 @Article{ zdancewic2002secure,
829 title = {Secure program partitioning},
830 author = {Zdancewic, Steve and Zheng, Lantian and Nystrom, Nathaniel
831 and Myers, Andrew C},
832 journal = {ACM Transactions on Computer Systems (TOCS)},
833 volume = {20},
834 number = {3},
835 pages = {283--328},
836 year = {2002},
837 publisher = {ACM New York, NY, USA}
838 }
839
840 @Article{ 10.1145/2775050.2633367,
841 author = {Ekblad, Anton and Claessen, Koen},
842 title = {A Seamless, Client-Centric Programming Model for Type Safe
843 Web Applications},
844 year = {2014},
845 issue_date = {December 2014},
846 publisher = {ACM},
847 address = {New York, NY, USA},
848 volume = {49},
849 number = {12},
850 issn = {0362-1340},
851 doi = {10.1145/2775050.2633367},
852 abstract = {We propose a new programming model for web applications
853 which is (1) seamless; one program and one language is used
854 to produce code for both client and server, (2)
855 client-centric; the programmer takes the viewpoint of the
856 client that runs code on the server rather than the other
857 way around, (3) functional and type-safe, and (4) portable;
858 everything is implemented as a Haskell library that
859 implicitly takes care of all networking code. Our aim is to
860 improve the painful and error-prone experience of today's
861 standard development methods, in which clients and servers
862 are coded in different languages and communicate with each
863 other using ad-hoc protocols. We present the design of our
864 library called Haste.App, an example web application that
865 uses it, and discuss the implementation and the compiler
866 technology on which it depends.},
867 journal = {SIGPLAN Not.},
868 month = {sep},
869 pages = {7989},
870 numpages = {11},
871 keywords = {distributed systems, web applications, network
872 communication}
873 }
874
875 @InProceedings{ elliott_guilt_2015,
876 title = {Guilt free ivory},
877 volume = {50},
878 booktitle = {{ACM} {SIGPLAN} {Notices}},
879 publisher = {ACM},
880 author = {Elliott, Trevor and Pike, Lee and Winwood, Simon and
881 Hickey, Pat and Bielman, James and Sharp, Jamey and Seidel,
882 Eric and Launchbury, John},
883 year = {2015},
884 pages = {189--200},
885 file = {5678351608ae125516ee79c6.pdf:/home/mrl/.local/share/zotero/storage/KJMFUH7T/5678351608ae125516ee79c6.pdf:application/pdf}
886 }
887
888 @InProceedings{ sawada_emfrp:_2016,
889 title = {Emfrp: a functional reactive programming language for
890 small-scale embedded systems},
891 booktitle = {Companion {Proceedings} of the 15th {International}
892 {Conference} on {Modularity}},
893 publisher = {ACM},
894 author = {Sawada, Kensuke and Watanabe, Takuo},
895 year = {2016},
896 pages = {36--44},
897 file = {Sawada and Watanabe - 2016 - Emfrp a functional reactive
898 programming language
899 .pdf:/home/mrl/.local/share/zotero/storage/9U95ER5P/Sawada
900 and Watanabe - 2016 - Emfrp a functional reactive
901 programming language .pdf:application/pdf}
902 }
903
904 @InProceedings{ helbling_juniper:_2016,
905 title = {Juniper: a functional reactive programming language for
906 the {Arduino}},
907 booktitle = {Proceedings of the 4th {International} {Workshop} on
908 {Functional} {Art}, {Music}, {Modelling}, and {Design}},
909 publisher = {ACM},
910 author = {Helbling, Caleb and Guyer, Samuel Z},
911 year = {2016},
912 pages = {8--16},
913 file = {Helbling and Guyer - 2016 - Juniper a functional reactive
914 programming
915 languag.pdf:/home/mrl/.local/share/zotero/storage/M4UWK57F/Helbling
916 and Guyer - 2016 - Juniper a functional reactive
917 programming languag.pdf:application/pdf}
918 }
919
920 @InCollection{ valliappan_towards_2020,
921 address = {New York, NY, USA},
922 title = {Towards {Secure} {IoT} {Programming} in {Haskell}},
923 isbn = {978-1-4503-8050-8},
924 abstract = {IoT applications are often developed in programming
925 languages with low-level abstractions, where a seemingly
926 innocent mistake might lead to severe security
927 vulnerabilities. Current IoT development tools make it hard
928 to identify these vulnerabilities as they do not provide
929 end-to-end guarantees about how data flows within and
930 between appliances. In this work we present Haski, an
931 embedded domain specific language in Haskell (eDSL) for
932 secure programming of IoT devices. Haski enables developers
933 to write Haskell programs that generate C code without
934 falling into many of C’s pitfalls. Haski is designed
935 after the synchronous programming language Lustre, and
936 sports a backwards compatible information-flow control
937 extension to restrict how sensitive data is propagated and
938 modified within the application. We present a novel eDSL
939 design which uses recursive monadic bindings and allows a
940 natural use of functions and pattern-matching in Haskell to
941 write Haski programs. To showcase Haski, we implement a
942 simple smart house controller where communication is done
943 via low-energy Bluetooth on Zephyr OS.},
944 booktitle = {Proceedings of the 13th {ACM} {SIGPLAN} {International}
945 {Symposium} on {Haskell}},
946 publisher = {ACM},
947 author = {Valliappan, Nachiappan and Krook, Robert and Russo,
948 Alejandro and Claessen, Koen},
949 year = {2020},
950 pages = {136--150},
951 file = {Valliappan et al. - 2020 - Towards Secure IoT Programming
952 in
953 Haskell.pdf:/home/mrl/.local/share/zotero/storage/BF6YIT2S/Valliappan
954 et al. - 2020 - Towards Secure IoT Programming in
955 Haskell.pdf:application/pdf}
956 }
957
958 @InProceedings{ sarkar_hailstorm_2020,
959 address = {New York, NY, USA},
960 series = {{PPDP} '20},
961 title = {Hailstorm: {A} {Statically}-{Typed}, {Purely} {Functional}
962 {Language} for {IoT} {Applications}},
963 isbn = {978-1-4503-8821-4},
964 doi = {10.1145/3414080.3414092},
965 abstract = {With the growing ubiquity of Internet of Things (IoT),
966 more complex logic is being programmed on
967 resource-constrained IoT devices, almost exclusively using
968 the C programming language. While C provides low-level
969 control over memory, it lacks a number of high-level
970 programming abstractions such as higher-order functions,
971 polymorphism, strong static typing, memory safety, and
972 automatic memory management. We present Hailstorm, a
973 statically-typed, purely functional programming language
974 that attempts to address the above problem. It is a
975 high-level programming language with a strict typing
976 discipline. It supports features like higher-order
977 functions, tail-recursion, and automatic memory management,
978 to program IoT devices in a declarative manner.
979 Applications running on these devices tend to be heavily
980 dominated by I/O. Hailstorm tracks side effects like I/O in
981 its type system using resource types. This choice allowed
982 us to explore the design of a purely functional standalone
983 language, in an area where it is more common to embed a
984 functional core in an imperative shell. The language
985 borrows the combinators of arrowized FRP, but has
986 discrete-time semantics. The design of the full set of
987 combinators is work in progress, driven by examples. So
988 far, we have evaluated Hailstorm by writing standard
989 examples from the literature (earthquake detection, a
990 railway crossing system and various other clocked systems),
991 and also running examples on the GRiSP embedded systems
992 board, through generation of Erlang.},
993 booktitle = {Proceedings of the 22nd {International} {Symposium} on
994 {Principles} and {Practice} of {Declarative}
995 {Programming}},
996 publisher = {ACM},
997 author = {Sarkar, Abhiroop and Sheeran, Mary},
998 year = {2020},
999 note = {event-place: Bologna, Italy},
1000 keywords = {functional programming, compilers, embedded systems, IoT},
1001 file = {Sarkar and Sheeran - 2020 - Hailstorm A Statically-Typed,
1002 Purely Functional
1003 L.pdf:/home/mrl/.local/share/zotero/storage/BKFJKGQP/Sarkar
1004 and Sheeran - 2020 - Hailstorm A Statically-Typed, Purely
1005 Functional L.pdf:application/pdf}
1006 }
1007
1008 @InProceedings{ 10.1145/3281366.3281370,
1009 author = {Shibanai, Kazuhiro and Watanabe, Takuo},
1010 title = {Distributed Functional Reactive Programming on Actor-Based
1011 Runtime},
1012 year = {2018},
1013 isbn = {9781450360661},
1014 publisher = {ACM},
1015 address = {New York, NY, USA},
1016 doi = {10.1145/3281366.3281370},
1017 abstract = {Reactive programming over a network is a challenging task
1018 because efficient elimination of temporary violations of
1019 data flow invariants, known as glitches, in a distributed
1020 setting is still an open issue. In this paper, we propose a
1021 method for constructing a distributed reactive programming
1022 system of which runtime guarantees the properties of single
1023 source glitch-freedom and the robustness against
1024 out-of-order messages. Based on the method, we developed a
1025 purely functional reactive programming language XFRP whose
1026 compiler produces Erlang code. Using some examples, we show
1027 that the proposed method is beneficial for constructing
1028 distributed reactive applications without suffering from
1029 inconsistencies.},
1030 booktitle = {Proceedings of the 8th ACM SIGPLAN International Workshop
1031 on Programming Based on Actors, Agents, and Decentralized
1032 Control},
1033 pages = {1322},
1034 numpages = {10},
1035 keywords = {Distributed Functional Reactive Programming, Erlang,
1036 Glitch Freedom, Synchronization, Actor-Based Runtime
1037 System},
1038 location = {Boston, MA, USA},
1039 series = {AGERE 2018}
1040 }
1041
1042 @InProceedings{ suzuki_cfrp_2017,
1043 address = {The University of The Philippines Cebu, Cebu City, The
1044 Philippines},
1045 title = {{CFRP}: {A} {Functional} {Reactive} {Programming}
1046 {Language} for {Small}-{Scale} {Embedded} {Systems}},
1047 isbn = {978-981-323-406-2 978-981-323-407-9},
1048 shorttitle = {{CFRP}},
1049 doi = {10.1142/9789813234079_0001},
1050 language = {en},
1051 urldate = {2022-03-02},
1052 booktitle = {Theory and {Practice} of {Computation}},
1053 publisher = {WORLD SCIENTIFIC},
1054 author = {Suzuki, Kohei and Nagayama, Kanato and Sawada, Kensuke and
1055 Watanabe, Takuo},
1056 month = dec,
1057 year = {2017},
1058 pages = {1--13},
1059 file = {Suzuki et al. - 2017 - CFRP A Functional Reactive
1060 Programming Language
1061 f.pdf:/home/mrl/.local/share/zotero/storage/XHPSZCJH/Suzuki
1062 et al. - 2017 - CFRP A Functional Reactive Programming
1063 Language f.pdf:application/pdf}
1064 }
1065
1066 @InProceedings{ shibanai_distributed_2018,
1067 address = {New York, NY, USA},
1068 series = {{AGERE} 2018},
1069 title = {Distributed {Functional} {Reactive} {Programming} on
1070 {Actor}-{Based} {Runtime}},
1071 isbn = {978-1-4503-6066-1},
1072 doi = {10.1145/3281366.3281370},
1073 abstract = {Reactive programming over a network is a challenging task
1074 because efficient elimination of temporary violations of
1075 data flow invariants, known as glitches, in a distributed
1076 setting is still an open issue. In this paper, we propose a
1077 method for constructing a distributed reactive programming
1078 system of which runtime guarantees the properties of single
1079 source glitch-freedom and the robustness against
1080 out-of-order messages. Based on the method, we developed a
1081 purely functional reactive programming language XFRP whose
1082 compiler produces Erlang code. Using some examples, we show
1083 that the proposed method is beneficial for constructing
1084 distributed reactive applications without suffering from
1085 inconsistencies.},
1086 booktitle = {Proceedings of the 8th {ACM} {SIGPLAN} {International}
1087 {Workshop} on {Programming} {Based} on {Actors}, {Agents},
1088 and {Decentralized} {Control}},
1089 publisher = {ACM},
1090 author = {Shibanai, Kazuhiro and Watanabe, Takuo},
1091 year = {2018},
1092 note = {event-place: Boston, MA, USA},
1093 keywords = {Actor-Based Runtime System, Distributed Functional
1094 Reactive Programming, Erlang, Glitch Freedom,
1095 Synchronization},
1096 pages = {13--22},
1097 file = {Shibanai and Watanabe - 2018 - Distributed Functional
1098 Reactive Programming on
1099 Act.pdf:/home/mrl/.local/share/zotero/storage/UJ5IG7R4/Shibanai
1100 and Watanabe - 2018 - Distributed Functional Reactive
1101 Programming on Act.pdf:application/pdf}
1102 }
1103
1104 @InProceedings{ nilsson_functional_2002,
1105 address = {New York, NY, USA},
1106 series = {Haskell '02},
1107 title = {Functional {Reactive} {Programming}, {Continued}},
1108 isbn = {1-58113-605-6},
1109 doi = {10.1145/581690.581695},
1110 abstract = {Functional Reactive Programming (FRP) extends a host
1111 programming language with a notion of time flow. Arrowized
1112 FRP (AFRP) is a version of FRP embedded in Haskell based on
1113 the arrow combinators. AFRP is a powerful synchronous
1114 dataflow programming language with hybrid modeling
1115 capabilities, combining advanced synchronous dataflow
1116 features with the higher-order lazy functional abstractions
1117 of Haskell. In this paper, we describe the AFRP programming
1118 style and our Haskell-based implementation. Of particular
1119 interest are the AFRP combinators that support dynamic
1120 collections and continuation-based switching. We show how
1121 these combinators can be used to express systems with an
1122 evolving structure that are difficult to model in more
1123 traditional dataflow languages.},
1124 booktitle = {Proceedings of the 2002 {ACM} {SIGPLAN} {Workshop} on
1125 {Haskell}},
1126 publisher = {ACM},
1127 author = {Nilsson, Henrik and Courtney, Antony and Peterson, John},
1128 year = {2002},
1129 note = {event-place: Pittsburgh, Pennsylvania},
1130 keywords = {functional programming, Haskell, domain-specific
1131 languages, FRP, hybrid modeling, synchronous dataflow
1132 languages},
1133 pages = {51--64},
1134 file = {Nilsson et al. - 2002 - Functional reactive programming,
1135 continued.pdf:/home/mrl/.local/share/zotero/storage/X79J47NP/Nilsson
1136 et al. - 2002 - Functional reactive programming,
1137 continued.pdf:application/pdf}
1138 }
1139
1140 @InProceedings{ 10.1145/2661136.2661146,
1141 author = {Philips, Laure and De Roover, Coen and Van Cutsem, Tom and
1142 De Meuter, Wolfgang},
1143 title = {Towards Tierless Web Development without Tierless
1144 Languages},
1145 year = {2014},
1146 isbn = {9781450332101},
1147 publisher = {ACM},
1148 address = {New York, NY, USA},
1149 doi = {10.1145/2661136.2661146},
1150 abstract = {Tierless programming languages enable developing the
1151 typical server, client and database tiers of a web
1152 application as a single mono-linguistic program. This
1153 development style is in stark contrast to the current
1154 practice which requires combining multiple technologies and
1155 programming languages. A myriad of tierless programming
1156 languages has already been proposed, often featuring a
1157 JavaScript-like syntax. Instead of introducing yet another,
1158 we advocate that it should be possible to develop tierless
1159 web applications in existing general-purpose languages.
1160 This not only reduces the complexity that developers are
1161 exposed to, but also precludes the need for new development
1162 tools. We concretize this novel approach to tierless
1163 programming by discussing requirements on its future
1164 instantiations. We explore the design space of the program
1165 analysis for determining and the program transformation for
1166 realizing the tier split respectively. The former
1167 corresponds to new adaptations of an old familiar, program
1168 slicing, for tier splitting. The latter includes several
1169 strategies for handling cross-tier function calls and data
1170 accesses. Using a prototype instantiation for JavaScript,
1171 we demonstrate the feasibility of our approach on an
1172 example web application. We conclude with a discussion of
1173 open questions and challenges for future research.},
1174 booktitle = {Proceedings of the 2014 ACM International Symposium on New
1175 Ideas, New Paradigms, and Reflections on Programming \&
1176 Software},
1177 pages = {6981},
1178 numpages = {13},
1179 keywords = {tier splitting, program slicing, tierless programming,
1180 javascript},
1181 location = {Portland, Oregon, USA},
1182 series = {Onward! 2014}
1183 }
1184
1185 @Misc{ hess_arduino-copilot_2020,
1186 title = {arduino-copilot: {Arduino} programming in haskell using
1187 the {Copilot} stream {DSL}},
1188 shorttitle = {arduino-copilot},
1189 url = {https://hackage.haskell.org/package/arduino-copilot},
1190 urldate = {2020-02-14},
1191 journal = {Hackage},
1192 author = {Hess, Joey},
1193 year = {2020},
1194 file = {Snapshot:/home/mrl/.local/share/zotero/storage/PSHYKF52/arduino-copilot.html:text/html}
1195 }
1196
1197 @Article{ sheetz2009understanding,
1198 title = {Understanding developer and manager perceptions of
1199 function points and source lines of code},
1200 author = {Sheetz, Steven D and Henderson, David and Wallace, Linda},
1201 journal = {Journal of Systems and Software},
1202 volume = {82},
1203 number = {9},
1204 pages = {1540--1549},
1205 year = {2009},
1206 publisher = {Elsevier}
1207 }
1208
1209 @InProceedings{ balat2006ocsigen,
1210 title = {Ocsigen: Typing web interaction with objective caml},
1211 author = {Balat, Vincent},
1212 booktitle = {Proceedings of the 2006 Workshop on ML},
1213 pages = {84--94},
1214 year = {2006}
1215 }
1216
1217 @InProceedings{ bjornson2010composing,
1218 title = {Composing reactive GUIs in F\# using WebSharper},
1219 author = {Bjornson, Joel and Tayanovskyy, Anton and Granicz, Adam},
1220 booktitle = {Symposium on Implementation and Application of Functional
1221 Languages},
1222 pages = {203--216},
1223 year = {2010},
1224 organization = {Springer}
1225 }
1226
1227 @Book{ strack2015getting,
1228 title = {Getting Started with Meteor.js JavaScript Framework},
1229 author = {Strack, Isaac},
1230 year = {2015},
1231 publisher = {Packt Publishing Ltd}
1232 }
1233
1234 @InCollection{ hall1993glasgow,
1235 title = {The Glasgow Haskell compiler: a retrospective},
1236 author = {Hall, Cordelia and Hammond, Kevin and Partain, Will and
1237 Peyton Jones, Simon L and Wadler, Philip},
1238 booktitle = {Functional Programming, Glasgow 1992},
1239 pages = {62--71},
1240 year = {1993},
1241 publisher = {Springer}
1242 }
1243
1244 @Misc{ diffmicro,
1245 title = "MicroPython Differences from CPython",
1246 author = {{Micropython Team}},
1247 year = "2022",
1248 note = "https://docs.micropython.org/en/latest/genrst/index.html"
1249 }
1250
1251 @Article{ weisenburger2020survey,
1252 title = {A survey of multitier programming},
1253 author = {Weisenburger, Pascal and Wirth, Johannes and Salvaneschi,
1254 Guido},
1255 journal = {ACM Computing Surveys (CSUR)},
1256 volume = {53},
1257 number = {4},
1258 pages = {1--35},
1259 year = {2020},
1260 publisher = {ACM New York, NY, USA}
1261 }
1262
1263 @InProceedings{ 203628,
1264 author = {Manos Antonakakis and Tim April and Michael Bailey and
1265 Matt Bernhard and Elie Bursztein and Jaime Cochran and
1266 Zakir Durumeric and J. Alex Halderman and Luca Invernizzi
1267 and Michalis Kallitsis and Deepak Kumar and Chaz Lever and
1268 Zane Ma and Joshua Mason and Damian Menscher and Chad
1269 Seaman and Nick Sullivan and Kurt Thomas and Yi Zhou},
1270 title = {Understanding the Mirai Botnet},
1271 booktitle = {26th USENIX Security Symposium (USENIX Security 17)},
1272 year = {2017},
1273 isbn = {978-1-931971-40-9},
1274 address = {Vancouver, BC},
1275 pages = {1093--1110},
1276 url = {https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/antonakakis},
1277 publisher = {USENIX Association},
1278 month = aug
1279 }
1280
1281 @InProceedings{ herwig_measurement_2019,
1282 address = {San Diego, CA, USA},
1283 title = {Measurement and {Analysis} of {Hajime}, a {Peer}-to-peer
1284 {IoT} {Botnet}},
1285 isbn = {1-891562-55-X},
1286 doi = {10.14722/ndss.2019.23488},
1287 booktitle = {Network and {Distributed} {Systems} {Security} ({NDSS})
1288 {Symposium} 2019},
1289 author = {Herwig, Stephen and Harvey, Katura and Hughey, George and
1290 Roberts, Richard and Levin, Dave},
1291 year = {2019},
1292 pages = {15},
1293 file = {Herwig et al. - Measurement and Analysis of Hajime, a
1294 Peer-to-peer.pdf:/home/mrl/.local/share/zotero/storage/YFB8C8CU/Herwig
1295 et al. - Measurement and Analysis of Hajime, a
1296 Peer-to-peer.pdf:application/pdf}
1297 }
1298
1299 @PhDThesis{ wijkhuizen_security_2018,
1300 address = {Nijmegen},
1301 type = {Bachelor's {Thesis}},
1302 title = {Security analysis of the {iTasks} framework},
1303 language = {English},
1304 urldate = {2017-04-08},
1305 school = {Radboud University},
1306 author = {Wijkhuizen, Mark},
1307 year = {2018},
1308 file = {Wijkhuizen - 2018 - Security analysis of the iTasks
1309 framework.pdf:/home/mrl/.local/share/zotero/storage/AWFT6PGL/Wijkhuizen
1310 - 2018 - Security analysis of the iTasks
1311 framework.pdf:application/pdf}
1312 }
1313
1314 @InProceedings{ steenvoorden2019tophat,
1315 author = {Steenvoorden, Tim and Naus, Nico and Klinik, Markus},
1316 title = {TopHat: A Formal Foundation for Task-Oriented
1317 Programming},
1318 year = {2019},
1319 isbn = {9781450372497},
1320 publisher = {ACM},
1321 address = {New York, NY, USA},
1322 doi = {10.1145/3354166.3354182},
1323 booktitle = {Proceedings of the 21st International Symposium on
1324 Principles and Practice of Declarative Programming},
1325 articleno = {17},
1326 numpages = {13},
1327 location = {Porto, Portugal},
1328 series = {PPDP '19}
1329 }