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