Content deleted Content added
OrhanCharles (talk | contribs) ISBN checksum |
m Open access bot: arxiv, doi, hdl updated in citation with #oabot. |
||
Line 4:
In [[computer science]], '''macroprogramming''' is a [[programming paradigm]]
aimed at expressing the macroscopic, global behaviour of an entire system of agents or computing devices.<ref name="Casadei 2023">{{cite journal | last=Casadei | first=Roberto | title=Macroprogramming: Concepts, State of the Art, and Opportunities of Macroscopic Behaviour Modelling | journal=ACM Computing Surveys | publisher=Association for Computing Machinery (ACM) | date=2023-01-11 | issn=0360-0300 | doi=10.1145/3579353 | page=| s2cid=245837830 | arxiv=2201.03473 }}</ref>
In macroprogramming, the local programs for the individual components of a [[distributed system]] are compiled or interpreted from a ''macro-program'' typically expressed by a system-level perspective or in terms of the intended global goal.<ref name="Casadei 2023" />
The aim of macroprogramming approaches is to support expressing the macroscopic interactive behaviour of a whole distributed system of computing devices or [[software agent|agents]] in a single program.
Line 10:
Macroprogramming originated in the context of [[wireless sensor network]] programming<ref name="Newton Welsh 2004 p. ">{{cite conference | last1=Newton | first1=Ryan | last2=Welsh | first2=Matt | title=Proceeedings of the 1st international workshop on Data management for sensor networks in conjunction with VLDB 2004 - DMSN '04 | chapter=Region streams | publisher=ACM Press | publication-place=New York, New York, USA | year=2004 | doi=10.1145/1052199.1052213 | page=78}}</ref><ref name="Newton Morrisett Welsh 2007 p. ">{{cite conference | last1=Newton | first1=Ryan | last2=Morrisett | first2=Greg | last3=Welsh | first3=Matt | title=Proceedings of the 6th international conference on Information processing in sensor networks - IPSN '07 | chapter=The regiment macroprogramming system | publisher=ACM Press | publication-place=New York, New York, USA | year=2007 | doi=10.1145/1236360.1236422 | page=489| isbn=978-1-59593-638-7 }}</ref><ref name="Gummadi Gnawali Govindan 2005 pp. 126–140">{{cite book | last1=Gummadi | first1=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 | last1=Júnior | first1=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| s2cid=254365168 | doi-access=free }}</ref> and [[swarm robotics]].<ref name="Mottola Picco 2011 pp. 1–51">{{cite journal | last1=Mottola | first1=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| hdl=11311/635123 | s2cid=1837434 | hdl-access=free }}</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 22:
=== ScaFi ===
The following program in the ScaFi aggregate programming language <ref name="Casadei Viroli Aguzzi Pianini 2022 p=101248">{{cite journal | last1=Casadei | first1=Roberto | last2=Viroli | first2=Mirko | last3=Aguzzi | first3=Gianluca | last4=Pianini | first4=Danilo | title=ScaFi: A Scala DSL and Toolkit for Aggregate Programming | journal=SoftwareX | publisher=Elsevier BV | volume=20 | year=2022 | issn=2352-7110 | doi=10.1016/j.softx.2022.101248 | page=101248| hdl=11585/903248 | hdl-access=free }}</ref> [https://scafi.github.io/] defines the loop control logic needed to compute a channel (a Boolean field where the devices yielding <code>true</code> are those connecting, through a hop-by-hop path, a source device to a target device) across a large set of situated devices interacting with neighbours.
<syntaxhighlight lang="scala" line="1">
|