Macroprogramming: Difference between revisions

Content deleted Content added
mNo edit summary
m uncategorized
Line 7:
It has not to be confused with [[Macro (computer science)|macros]], the mechanism often found in programming languages (like [[C (programming language)|C]] or [[Scala (programming language)|Scala]]) to express substitution rules for program pieces.
 
Macroprogramming originated in the context of [[wireless sensor network]] programming<ref name="Newton Welsh 2004 p. ">{{cite conference | last=Newton | first=Ryan | last2=Welsh | first2=Matt | title=Region streams | publisher=ACM Press | publication-place=New York, New York, USA | year=2004 | doi=10.1145/1052199.1052213 | page=}}</ref> <ref name="Newton Morrisett Welsh 2007 p. ">{{cite conference | last=Newton | first=Ryan | last2=Morrisett | first2=Greg | last3=Welsh | first3=Matt | title=The regiment macroprogramming system | publisher=ACM Press | publication-place=New York, New York, USA | year=2007 | doi=10.1145/1236360.1236422 | page=}}</ref> <ref name="Gummadi Gnawali Govindan 2005 pp. 126–140">{{cite book | last=Gummadi | first=Ramakrishna | last2=Gnawali | first2=Omprakash | last3=Govindan | first3=Ramesh | title=Distributed Computing in Sensor Systems | chapter=Macro-programming Wireless Sensor Networks Using Kairos | publisher=Springer Berlin Heidelberg | publication-place=Berlin, Heidelberg | year=2005 | isbn=978-3-540-26422-4 | issn=0302-9743 | doi=10.1007/11502593_12 | pages=126–140}}</ref>
and found renewed interest in the context of the [[Internet of Things]] <ref name="Júnior Santana Bulcão-Neto Porter 2022 pp. 54–65">{{cite journal | last=Júnior | first=Iwens G. S. | last2=Santana | first2=Thalia S. de | last3=Bulcão-Neto | first3=Renato de F. | last4=Porter | first4=Barry F. | title=The state of the art of macroprogramming in IoT: An update | journal=Journal of Internet Services and Applications | publisher=Sociedade Brasileira de Computacao - SB | volume=13 | issue=1 | date=2022-11-18 | issn=1869-0238 | doi=10.5753/jisa.2022.2372 | pages=54–65}}</ref> and [[swarm robotics]] .<ref name="Mottola Picco 2011 pp. 1–51">{{cite journal | last=Mottola | first=Luca | last2=Picco | first2=Gian Pietro | title=Programming wireless sensor networks | journal=ACM Computing Surveys | publisher=Association for Computing Machinery (ACM) | volume=43 | issue=3 | year=2011 | issn=0360-0300 | doi=10.1145/1922649.1922656 | pages=1–51}}</ref> <ref name="Casadei 2023" />.
 
Macroprogramming shares similar goals (related to programming a system by a global perspective) with [[multitier programming]], [[choreographic programming]], and [[aggregate computing]].
Line 59:
=== Regiment ===
 
The following program in the Regiment language <ref name="Newton Morrisett Welsh 2007 p. ">{{cite conference | last=Newton | first=Ryan | last2=Morrisett | first2=Greg | last3=Welsh | first3=Matt | title=The regiment macroprogramming system | publisher=ACM Press | publication-place=New York, New York, USA | year=2007 | doi=10.1145/1236360.1236422 | page=}}</ref> can be used to compute the mean temperature perceived by the whole system:
 
<syntaxhighlight lang="prolog" line="1">
Line 73:
BASE <- avgSignal % move such information to the base station
</syntaxhighlight>
 
 
=== PyoT ===
Line 90 ⟶ 89:
=== TinyDB ===
 
In TinyDB ,<ref name="Madden Franklin Hellerstein Hong 2005 pp. 122–173">{{cite journal | last=Madden | first=Samuel R. | last2=Franklin | first2=Michael J. | last3=Hellerstein | first3=Joseph M. | last4=Hong | first4=Wei | title=TinyDB: an acquisitional query processing system for sensor networks | journal=ACM Transactions on Database Systems | publisher=Association for Computing Machinery (ACM) | volume=30 | issue=1 | year=2005 | issn=0362-5915 | doi=10.1145/1061318.1061322 | pages=122–173}}</ref>, a data-oriented macroprogramming approach is used where the programmer writes a query which turns into single-node operations and routing in a wireless sensor network.
 
<syntaxhighlight lang="sql" line="1">
Line 96 ⟶ 95:
2 SAMPLE PERIOD 5 minutes
</syntaxhighlight>
 
 
== See also ==
Line 108 ⟶ 106:
 
{{reflist}}
 
{{uncategorized|date=February 2023}}