f963a2c5dad48b0a3c69aff903dd1f12c68fccca
[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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 = {Association for Computing Machinery},
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 url = {http://www.worldscientific.com/doi/abs/10.1142/9789813234079_0001},
1050 doi = {10.1142/9789813234079_0001},
1051 language = {en},
1052 urldate = {2022-03-02},
1053 booktitle = {Theory and {Practice} of {Computation}},
1054 publisher = {WORLD SCIENTIFIC},
1055 author = {Suzuki, Kohei and Nagayama, Kanato and Sawada, Kensuke and
1056 Watanabe, Takuo},
1057 month = dec,
1058 year = {2017},
1059 pages = {1--13},
1060 file = {Suzuki et al. - 2017 - CFRP A Functional Reactive
1061 Programming Language
1062 f.pdf:/home/mrl/.local/share/zotero/storage/XHPSZCJH/Suzuki
1063 et al. - 2017 - CFRP A Functional Reactive Programming
1064 Language f.pdf:application/pdf}
1065 }
1066
1067 @InProceedings{ shibanai_distributed_2018,
1068 address = {New York, NY, USA},
1069 series = {{AGERE} 2018},
1070 title = {Distributed {Functional} {Reactive} {Programming} on
1071 {Actor}-{Based} {Runtime}},
1072 isbn = {978-1-4503-6066-1},
1073 doi = {10.1145/3281366.3281370},
1074 abstract = {Reactive programming over a network is a challenging task
1075 because efficient elimination of temporary violations of
1076 data flow invariants, known as glitches, in a distributed
1077 setting is still an open issue. In this paper, we propose a
1078 method for constructing a distributed reactive programming
1079 system of which runtime guarantees the properties of single
1080 source glitch-freedom and the robustness against
1081 out-of-order messages. Based on the method, we developed a
1082 purely functional reactive programming language XFRP whose
1083 compiler produces Erlang code. Using some examples, we show
1084 that the proposed method is beneficial for constructing
1085 distributed reactive applications without suffering from
1086 inconsistencies.},
1087 booktitle = {Proceedings of the 8th {ACM} {SIGPLAN} {International}
1088 {Workshop} on {Programming} {Based} on {Actors}, {Agents},
1089 and {Decentralized} {Control}},
1090 publisher = {Association for Computing Machinery},
1091 author = {Shibanai, Kazuhiro and Watanabe, Takuo},
1092 year = {2018},
1093 note = {event-place: Boston, MA, USA},
1094 keywords = {Actor-Based Runtime System, Distributed Functional
1095 Reactive Programming, Erlang, Glitch Freedom,
1096 Synchronization},
1097 pages = {13--22},
1098 file = {Shibanai and Watanabe - 2018 - Distributed Functional
1099 Reactive Programming on
1100 Act.pdf:/home/mrl/.local/share/zotero/storage/UJ5IG7R4/Shibanai
1101 and Watanabe - 2018 - Distributed Functional Reactive
1102 Programming on Act.pdf:application/pdf}
1103 }
1104
1105 @InProceedings{ nilsson_functional_2002,
1106 address = {New York, NY, USA},
1107 series = {Haskell '02},
1108 title = {Functional {Reactive} {Programming}, {Continued}},
1109 isbn = {1-58113-605-6},
1110 doi = {10.1145/581690.581695},
1111 abstract = {Functional Reactive Programming (FRP) extends a host
1112 programming language with a notion of time flow. Arrowized
1113 FRP (AFRP) is a version of FRP embedded in Haskell based on
1114 the arrow combinators. AFRP is a powerful synchronous
1115 dataflow programming language with hybrid modeling
1116 capabilities, combining advanced synchronous dataflow
1117 features with the higher-order lazy functional abstractions
1118 of Haskell. In this paper, we describe the AFRP programming
1119 style and our Haskell-based implementation. Of particular
1120 interest are the AFRP combinators that support dynamic
1121 collections and continuation-based switching. We show how
1122 these combinators can be used to express systems with an
1123 evolving structure that are difficult to model in more
1124 traditional dataflow languages.},
1125 booktitle = {Proceedings of the 2002 {ACM} {SIGPLAN} {Workshop} on
1126 {Haskell}},
1127 publisher = {Association for Computing Machinery},
1128 author = {Nilsson, Henrik and Courtney, Antony and Peterson, John},
1129 year = {2002},
1130 note = {event-place: Pittsburgh, Pennsylvania},
1131 keywords = {functional programming, Haskell, domain-specific
1132 languages, FRP, hybrid modeling, synchronous dataflow
1133 languages},
1134 pages = {51--64},
1135 file = {Nilsson et al. - 2002 - Functional reactive programming,
1136 continued.pdf:/home/mrl/.local/share/zotero/storage/X79J47NP/Nilsson
1137 et al. - 2002 - Functional reactive programming,
1138 continued.pdf:application/pdf}
1139 }
1140
1141 @InProceedings{ 10.1145/2661136.2661146,
1142 author = {Philips, Laure and De Roover, Coen and Van Cutsem, Tom and
1143 De Meuter, Wolfgang},
1144 title = {Towards Tierless Web Development without Tierless
1145 Languages},
1146 year = {2014},
1147 isbn = {9781450332101},
1148 publisher = {Association for Computing Machinery},
1149 address = {New York, NY, USA},
1150 doi = {10.1145/2661136.2661146},
1151 abstract = {Tierless programming languages enable developing the
1152 typical server, client and database tiers of a web
1153 application as a single mono-linguistic program. This
1154 development style is in stark contrast to the current
1155 practice which requires combining multiple technologies and
1156 programming languages. A myriad of tierless programming
1157 languages has already been proposed, often featuring a
1158 JavaScript-like syntax. Instead of introducing yet another,
1159 we advocate that it should be possible to develop tierless
1160 web applications in existing general-purpose languages.
1161 This not only reduces the complexity that developers are
1162 exposed to, but also precludes the need for new development
1163 tools. We concretize this novel approach to tierless
1164 programming by discussing requirements on its future
1165 instantiations. We explore the design space of the program
1166 analysis for determining and the program transformation for
1167 realizing the tier split respectively. The former
1168 corresponds to new adaptations of an old familiar, program
1169 slicing, for tier splitting. The latter includes several
1170 strategies for handling cross-tier function calls and data
1171 accesses. Using a prototype instantiation for JavaScript,
1172 we demonstrate the feasibility of our approach on an
1173 example web application. We conclude with a discussion of
1174 open questions and challenges for future research.},
1175 booktitle = {Proceedings of the 2014 ACM International Symposium on New
1176 Ideas, New Paradigms, and Reflections on Programming \&
1177 Software},
1178 pages = {6981},
1179 numpages = {13},
1180 keywords = {tier splitting, program slicing, tierless programming,
1181 javascript},
1182 location = {Portland, Oregon, USA},
1183 series = {Onward! 2014}
1184 }
1185
1186 @Misc{ hess_arduino-copilot_2020,
1187 title = {arduino-copilot: {Arduino} programming in haskell using
1188 the {Copilot} stream {DSL}},
1189 shorttitle = {arduino-copilot},
1190 url = {//hackage.haskell.org/package/arduino-copilot},
1191 urldate = {2020-02-14},
1192 journal = {Hackage},
1193 author = {Hess, Joey},
1194 year = {2020},
1195 file = {Snapshot:/home/mrl/.local/share/zotero/storage/PSHYKF52/arduino-copilot.html:text/html}
1196 }
1197
1198 @Article{ sheetz2009understanding,
1199 title = {Understanding developer and manager perceptions of
1200 function points and source lines of code},
1201 author = {Sheetz, Steven D and Henderson, David and Wallace, Linda},
1202 journal = {Journal of Systems and Software},
1203 volume = {82},
1204 number = {9},
1205 pages = {1540--1549},
1206 year = {2009},
1207 publisher = {Elsevier}
1208 }
1209
1210 @InProceedings{ balat2006ocsigen,
1211 title = {Ocsigen: Typing web interaction with objective caml},
1212 author = {Balat, Vincent},
1213 booktitle = {Proceedings of the 2006 Workshop on ML},
1214 pages = {84--94},
1215 year = {2006}
1216 }
1217
1218 @InProceedings{ bjornson2010composing,
1219 title = {Composing reactive GUIs in F\# using WebSharper},
1220 author = {Bjornson, Joel and Tayanovskyy, Anton and Granicz, Adam},
1221 booktitle = {Symposium on Implementation and Application of Functional
1222 Languages},
1223 pages = {203--216},
1224 year = {2010},
1225 organization = {Springer}
1226 }
1227
1228 @Book{ strack2015getting,
1229 title = {Getting Started with Meteor. js JavaScript Framework},
1230 author = {Strack, Isaac},
1231 year = {2015},
1232 publisher = {Packt Publishing Ltd}
1233 }
1234
1235 @InCollection{ hall1993glasgow,
1236 title = {The Glasgow Haskell compiler: a retrospective},
1237 author = {Hall, Cordelia and Hammond, Kevin and Partain, Will and
1238 Peyton Jones, Simon L and Wadler, Philip},
1239 booktitle = {Functional Programming, Glasgow 1992},
1240 pages = {62--71},
1241 year = {1993},
1242 publisher = {Springer}
1243 }
1244
1245 @Misc{ diffmicro,
1246 title = "MicroPython Differences from CPython",
1247 author = {{Micropython Team}},
1248 year = "2022",
1249 note = "https://docs.micropython.org/en/latest/genrst/index.html"
1250 }
1251
1252 @Article{ weisenburger2020survey,
1253 title = {A survey of multitier programming},
1254 author = {Weisenburger, Pascal and Wirth, Johannes and Salvaneschi,
1255 Guido},
1256 journal = {ACM Computing Surveys (CSUR)},
1257 volume = {53},
1258 number = {4},
1259 pages = {1--35},
1260 year = {2020},
1261 publisher = {ACM New York, NY, USA}
1262 }
1263
1264 @InProceedings{ 203628,
1265 author = {Manos Antonakakis and Tim April and Michael Bailey and
1266 Matt Bernhard and Elie Bursztein and Jaime Cochran and
1267 Zakir Durumeric and J. Alex Halderman and Luca Invernizzi
1268 and Michalis Kallitsis and Deepak Kumar and Chaz Lever and
1269 Zane Ma and Joshua Mason and Damian Menscher and Chad
1270 Seaman and Nick Sullivan and Kurt Thomas and Yi Zhou},
1271 title = {Understanding the Mirai Botnet},
1272 booktitle = {26th USENIX Security Symposium (USENIX Security 17)},
1273 year = {2017},
1274 isbn = {978-1-931971-40-9},
1275 address = {Vancouver, BC},
1276 pages = {1093--1110},
1277 url = {https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/antonakakis},
1278 publisher = {USENIX Association},
1279 month = aug
1280 }
1281
1282 @InProceedings{ herwig_measurement_2019,
1283 address = {San Diego, CA, USA},
1284 title = {Measurement and {Analysis} of {Hajime}, a {Peer}-to-peer
1285 {IoT} {Botnet}},
1286 isbn = {1-891562-55-X},
1287 url = {https://par.nsf.gov/biblio/10096257},
1288 doi = {10.14722/ndss.2019.23488},
1289 booktitle = {Network and {Distributed} {Systems} {Security} ({NDSS})
1290 {Symposium} 2019},
1291 author = {Herwig, Stephen and Harvey, Katura and Hughey, George and
1292 Roberts, Richard and Levin, Dave},
1293 year = {2019},
1294 pages = {15},
1295 file = {Herwig et al. - Measurement and Analysis of Hajime, a
1296 Peer-to-peer.pdf:/home/mrl/.local/share/zotero/storage/YFB8C8CU/Herwig
1297 et al. - Measurement and Analysis of Hajime, a
1298 Peer-to-peer.pdf:application/pdf}
1299 }
1300
1301 @PhDThesis{ wijkhuizen_security_2018,
1302 address = {Nijmegen},
1303 type = {Bachelor's {Thesis}},
1304 title = {Security analysis of the {iTasks} framework},
1305 url = {http://www.ru.nl/publish/pages/769526/arjan_oortgiese.pdf},
1306 language = {English},
1307 urldate = {2017-04-08},
1308 school = {Radboud University},
1309 author = {Wijkhuizen, Mark},
1310 year = {2018},
1311 file = {Wijkhuizen - 2018 - Security analysis of the iTasks
1312 framework.pdf:/home/mrl/.local/share/zotero/storage/AWFT6PGL/Wijkhuizen
1313 - 2018 - Security analysis of the iTasks
1314 framework.pdf:application/pdf}
1315 }
1316
1317 @InProceedings{ steenvoorden2019tophat,
1318 author = {Steenvoorden, Tim and Naus, Nico and Klinik, Markus},
1319 title = {TopHat: A Formal Foundation for Task-Oriented
1320 Programming},
1321 year = {2019},
1322 isbn = {9781450372497},
1323 publisher = {Association for Computing Machinery},
1324 address = {New York, NY, USA},
1325 doi = {10.1145/3354166.3354182},
1326 booktitle = {Proceedings of the 21st International Symposium on
1327 Principles and Practice of Declarative Programming},
1328 articleno = {17},
1329 numpages = {13},
1330 location = {Porto, Portugal},
1331 series = {PPDP '19}
1332 }