@article {599, title = {Domains: Sharing state in the communicating event-loop actor model}, journal = {Computer Languages, Systems \& Structures}, volume = {45}, year = {2016}, pages = {132 - 160}, abstract = {

Abstract The actor model is a message-passing concurrency model that avoids deadlocks and low-level data races by construction. This facilitates concurrent programming, especially in the context of complex interactive applications where modularity, security and fault-tolerance are required. The tradeoff is that the actor model sacrifices expressiveness and safety guarantees with respect to parallel access to shared state. In this paper we present domains as a set of novel language abstractions for safely encapsulating and sharing state within the actor model. We introduce four types of domains, namely immutable, isolated, observable and shared domains that each is tailored to a certain access pattern on that shared state. The domains are characterized with an operational semantics. For each we discuss how the actor model{\~A}{\textemdash}{\^A}{\textthreesuperior}s safety guarantees are upheld even in the presence of conceptually shared state. Furthermore, the proposed language abstractions are evaluated with a case study in Scala comparing them to other synchronization mechanisms to demonstrate their benefits in deadlock freedom, parallel reads, and enforced isolation.

}, keywords = {Race-free mutation}, issn = {1477-8424}, doi = {http://dx.doi.org/10.1016/j.cl.2016.01.003}, url = {http://www.sciencedirect.com/science/article/pii/S147784241600004X}, author = {Joeri De Koster and Stefan Marr and Tom Van Cutsem and Theo D{\~A}{\textemdash}{\^A}{\textthreesuperior}Hondt} } @article {403, title = {Domains: Safe sharing among actors}, journal = {Science of Computer Programming}, volume = {98, Part 2}, year = {2015}, pages = {140 - 158}, keywords = {Race-free mutation}, issn = {0167-6423}, doi = {http://dx.doi.org/10.1016/j.scico.2014.02.008}, url = {http://www.sciencedirect.com/science/article/pii/S0167642314000495}, author = {Joeri De Koster and Stefan Marr and Theo D{\textquoteright}Hondt and Tom Van Cutsem} } @article {vantcutsem14ambienttalk, title = {AmbientTalk: programming responsive mobile peer-to-peer applications with actors}, journal = {Computer Languages, Systems and Structures, SCI Impact factor in 2013: 0.296, 5 year impact factor 0.329 (to appear)}, year = {2014}, publisher = {Elsevier}, abstract = {The rise of mobile computing platforms has given rise to a new class of applications: mobile applications that interact with peer applications running on neighbouring phones. Developing such applications is challenging because of problems inherent to concurrent and distributed programming, and because of problems inherent to mobile networks, such as the fact that wireless network connectivity is often intermittent, and the lack of centralized infrastructure to coordinate the peers. We present AmbientTalk, a distributed programming language designed specifically to develop mobile peer-to-peer applications. AmbientTalk aims to make it easy to develop mobile applications that are resilient to network failures by design. We describe the language{\textquoteright}s concurrency and distribution model in detail, as it lies at the heart of AmbientTalk{\textquoteright}s support for responsive, resilient application development. The model is based on communicating event loops, itself a descendant of the actor model. We contribute a small-step operational semantics for this model and use it to establish data race and deadlock freedom.}, issn = {1477-8424}, author = {Tom Van Cutsem and Elisa Gonzalez Boix and Christophe Scholliers and Andoni Lombide Carreton and Dries Harnie and Kevin Pinte and Wolfgang De Meuter}, editor = {Nick Benton} } @inbook {352, title = {Objects in Space}, booktitle = {Concurrent Objects and Beyond}, series = {Lecture Notes in Computer Science}, volume = {8665}, year = {2014}, pages = {317-340}, publisher = {Springer Berlin Heidelberg}, organization = {Springer Berlin Heidelberg}, abstract = {The paper presents a research agenda that we are currently executing for programming mobile applications that write and read information to and from passive RFID tags. Modern tags can host up to several kilobytes of information which makes it possible to store real software objects (in the object-oriented sense) that can even refer to each other. This gives the term {\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\"E}{\oe}spatial database{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\quotedblbase}{\textcent} an entirely new meaning. The paper motivates the need for new programming language constructs that are specifically targeted towards representing objects on tags, designating specific tags in the application{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\quotedblbase}{\textcent}s proximity and keeping the internal status of the mobile application causally connected to its physical surrounding.}, isbn = {978-3-662-44470-2}, doi = {10.1007/978-3-662-44471-9_14}, url = {http://dx.doi.org/10.1007/978-3-662-44471-9_14}, author = {Wolfgang De Meuter and Andoni Lombide Carreton and Kevin Pinte and Stijn Mostinckx and Tom Van Cutsem}, editor = {Agha, Gul and Igarashi, Atsushi and Kobayashi, Naoki and Masuhara, Hidehiko and Matsuoka, Satoshi and Shibayama, Etsuya and Taura, Kenjiro} } @conference {220, title = {An Open Implementation of Cloud Types for the Web}, booktitle = {Proceedings of the First Workshop on Principles and Practice of Eventual Consistency}, year = {2014}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, keywords = {authorization, cloud types, eventual consistency, javascript, web applications}, isbn = {978-1-4503-2716-9}, doi = {10.1145/2596631.2596640}, url = {http://doi.acm.org/10.1145/2596631.2596640}, author = {Coppieters, Tim and Laure Philips and Wolfgang De Meuter and Tom Van Cutsem} } @proceedings {175, title = {Towards Composable Concurrency Abstractions}, year = {2014}, month = {04/2014}, abstract = {

In the past decades, many different programming models for managing concurrency in applications have been proposed, such as the actor model, Communicating Sequential Processes, and Software Transactional Memory. The ubiquity of multi-core processors has made harnessing concurrency even more important. We observe that modern languages, such as Scala, Clojure, or F$\#$, provide not one, but multiple concurrency models that help developers manage concurrency. Large end-user applications are rarely built using just a single concurrency model. Programmers need to manage a responsive UI, deal with file or network I/O, asynchronous workflows, and shared resources. Different concurrency models facilitate different requirements. This raises the issue of how these concurrency models interact, and whether they are composable. After all, combining different concurrency models may lead to subtle bugs or inconsistencies. In this paper, we perform an in-depth study of the concurrency abstractions provided by the Clojure language. We study all pairwise combinations of the abstractions, noting which ones compose without issues, and which do not. We make an attempt to abstract from the specifics of Clojure, identifying the general properties of concurrency models that facilitate or hinder composition.

}, keywords = {actors, atoms, Clojure, concurrency, CSP, multicore, STM, transactions}, url = {http://soft.vub.ac.be/~jswalens/PLACES2014.pdf}, author = {Janwillem Swalens and Stefan Marr and Joeri De Koster and Tom Van Cutsem} } @conference {341, title = {Towards Tierless Web Development without Tierless Languages}, booktitle = {Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (SPLASH/OnWard!14)}, year = {2014}, keywords = {javascript, program dependence graph, program slicing, tierless programming}, doi = {10.1145/2661136.2661146}, author = {Laure Philips and Coen De Roover and Tom Van Cutsem and Wolfgang De Meuter} } @conference {389, title = {{A highly-parallel formulation of quantum computing simulation through fine-grained dataflow.}}, booktitle = {Third Workshop on Data-Flow Execution Models for Extreme Scale Computing (DFM 2014)}, year = {2013}, abstract = {

Quantum Computing lies at the frontier of computing, offering a radically different and unconventional model of computation. In the absence of practical quantum computers today, we must simulate their execution. This creates a performance problem, as quantum computing simulation is very costly. However, quantum computing simulation does contain an abundance of parallelism. The research question becomes: how to expose this parallelism? Although it is easy to show the problem inherently contains a large amount of parallelism, the type of parallelism is non-trivial to exploit in a scalable way using current mainstream parallelization techniques. This paper presents the formulation a virtual machine for quantum computing as a finegrained dataflow schema, which aims to expose and exploit the abundance of parallelism in a way that avoids the observed scalability issues. We present the formal mapping from the linear algebra description of elementary quantum operations to dataflow graphs, analyze its theoretical parallel characteristics and present experimental performance results of a prototype implementation.

}, url = {http://soft.vub.ac.be/Publications/2013/vub-soft-tr-13-13.pdf}, author = {Yves Vandriessche and Ellie D{\textquoteright}Hondt and Tom Van Cutsem and D{\textquoteright}Hondt, Theo} } @conference {126, title = {Tanks: Multiple Reader, Single Writer Actors}, booktitle = {Proceedings of the 2013 Workshop on Programming Based on Actors, Agents, and Decentralized Control}, year = {2013}, publisher = {ACM}, organization = {ACM}, keywords = {actor model, shared state, synchronisation}, isbn = {978-1-4503-2602-5}, doi = {10.1145/2541329.2541331}, url = {http://doi.acm.org/10.1145/2541329.2541331}, author = {Joeri De Koster and Stefan Marr and Theo D{\textquoteright}Hondt and Tom Van Cutsem} } @conference {100, title = {When Spatial and Temporal Locality Collide: The Case of the Missing Cache Hits}, booktitle = {Proceedings of the 4th ACM/SPEC International Conference on Performance Engineering}, year = {2013}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, abstract = {

Even the simplest hardware, running the simplest programs, can behave in the strangest of ways. Tracking down the cause of a performance anomaly without the complete hardware reference of a processor is a prime example of black-box architectural exploration. When doubling the work of a simple benchmark program, that was run on a single core of Tilera{\textquoteright}s TILEPro64 processor, did not double the number of consumed cycles, a mystery was unveiled. After ruling out different levels of optimization for the two programs, a cycle-accurate simulation attributed the sub-optimal performance to an abnormally high number of L1 data cache misses. Further investigation showed that the processor stalled on every Read-After-Write instruction sequence when the following two conditions were met: 1) there are 0 or 1 instructions between the write and the read instruction and 2) the read and the write instructions target distinct memory locations that share an L1 cache line. We call this performance pitfall a RAW hiccup. We describe two \ countermeasures, memory padding and the explicit introduction of pipeline bubbles, that sidestep the RAW hiccup.

}, keywords = {l1 data cache, padding, pipeline bubble, tilepro64}, isbn = {978-1-4503-1636-1}, doi = {10.1145/2479871.2479883}, url = {http://doi.acm.org/10.1145/2479871.2479883}, author = {De Wael, Mattias and Ungar, David and Tom Van Cutsem} } @conference {125, title = {Domains: safe sharing among actors}, booktitle = {Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions}, year = {2012}, publisher = {ACM}, organization = {ACM}, keywords = {actor model, synchronization}, isbn = {978-1-4503-1630-9}, doi = {10.1145/2414639.2414644}, author = {Joeri De Koster and Tom Van Cutsem and Theo D{\textquoteright}Hondt} } @proceedings {112, title = {How to Achieve Scalable Fork/Join on Many-core Architectures?}, year = {2012}, publisher = {ACM}, address = {New York, NY, USA}, abstract = {

Fork/Join is a parallel programming model that implicitly assumes uniform

memory access. The transition from multi- to many-core architectures will

render that assumption invalid, and consequently it is likely that Fork/Join

in its current form will not scale. This research investigates implementations

for Fork/Join to allow the transition to many-core.

}, keywords = {fork/join, many-core, work stealing}, isbn = {978-1-4503-1563-0}, doi = {10.1145/2384716.2384751}, url = {http://doi.acm.org/10.1145/2384716.2384751}, author = {De Wael, Mattias and Tom Van Cutsem} } @conference {gonzalezboix11flocks, title = {{Flocks: Enabling Dynamic Group Interactions in Mobile Social Networking Applications}}, booktitle = {Proceedings of the 2011 ACM Symposium on Applied Computing (SAC{\textquoteright}11)}, volume = {1}, year = {2011}, month = {March}, pages = {425{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}432}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, isbn = {978-1-4503-0113-8}, doi = {10.1145/1982185.1982277}, url = {http://doi.acm.org/10.1145/1982185.1982277}, author = {Elisa Gonzalez Boix and Andoni Lombide Carreton and Christophe Scholliers and Tom Van Cutsem and Wolfgang De Meuter and Theo D{\textquoteright}Hondt} } @conference {357, title = {Programming language support for routing in pervasive networks}, booktitle = {Pervasive Computing and Communications Workshops (PERCOM Workshops), 2011 IEEE International Conference on}, year = {2011}, month = {March}, abstract = {Managing communication in pervasive environments is a difficult challenge because of characteristics such as: no central server and frequent disconnections. Furthermore, services to be composed for coordination are sometimes distributed in multiple networks. In that case, intermediate nodes linking these networks have to route communication data toward appropriate destinations. However, incorporating such routing protocols into applications significantly increases complexity of the code. In this paper we propose AmbientTalk/M, a concurrent distributed programming language for coordination of services among multiple networks. The language provides powerful support for creating routing frameworks to hook up two or more networks. With the language support, we can express how service information is propagated or how messages are routed using high-level abstraction over underlying network technology. We show the language is flexible enough to express a variety of routing frameworks with respect to robustness, traffic efficiency, and security. Because the frameworks are installed reflectively, they are completely separated from application code. To the best of our knowledge, this is the first attempt to integrate routing semantics among multiple networks into a programming language using reflection.}, keywords = {Ad hoc networks, AmbientTalk/M programming language, distributed programming language, Encryption, Logic gates, pervasive network routing, Printers, programming language support, Programming languages, Protocols, Routing, routing frameworks, routing protocols, routing semantics, Ubiquitous computing, Virtual machining}, doi = {10.1109/PERCOMW.2011.5766874}, author = {Suzuki, T. and Kevin Pinte and Tom Van Cutsem and Wolfgang De Meuter and Yonezawa, A} } @conference {gonzalezboix11remed, title = {{REME-D: a Reflective, Epidemic Message-Oriented Debugger for Ambient-Oriented Applications}}, booktitle = {Proceedings of the 2011 ACM Symposium on Applied Computing (SAC{\textquoteright}11)}, volume = {2}, year = {2011}, month = {March}, pages = {1275{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}1281}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, isbn = {978-1-4503-0113-8}, doi = {10.1145/1982185.1982463}, url = {http://doi.acm.org/10.1145/1982185.1982463}, author = {Elisa Gonzalez Boix and Carlos Noguera and Tom Van Cutsem and Wolfgang De Meuter and Theo D{\textquoteright}Hondt} } @inbook {gonzalezboix10scripting, title = {{Scripting Mobile Devices with AmbientTalk}}, booktitle = {Handheld Computing for Mobile Commerce: Applications, Concepts and Technologies}, year = {2010}, pages = {202{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}224}, publisher = {IGI Global}, organization = {IGI Global}, isbn = {978-1-615-20761-9}, author = {Elisa Gonzalez Boix and Christophe Scholliers and Andoni Lombide Carreton and Tom Van Cutsem and Stijn Mostinckx and Wolfgang De Meuter}, editor = {J. Fagerberg and D.C. Mowery and R.R. Nelson} } @article {carreton10urbiflock, title = {{Urbiflock: An experiment in dynamic group management in Pervasive social applications}}, journal = {IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), First International Workshop on Communication, Collaboration and Social Networking in Pervasive Computing Environments (PerCol)}, year = {2010}, pages = {250{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}255}, publisher = {IEEE Computer Society Press}, author = {Andoni Lombide Carreton and Dries Harnie and Elisa Gonzalez Boix and Christophe Scholliers and Tom Van Cutsem and Wolfgang De Meuter} } @conference {gonzalezboix09leasing, title = {{A Leasing Model to Deal with Partial Failures in Mobile Ad Hoc Networks}}, booktitle = {In Proceedings of the 47th International Conference on Objects, Models, Components, Patterns (TOOLS Europe 2009)}, series = {Lecture Notes in Business Information Processing}, volume = {33}, year = {2009}, month = {June}, pages = {231{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}251}, publisher = {Springer-Verlag Berlin Heidelberg}, organization = {Springer-Verlag Berlin Heidelberg}, isbn = {978-3-642-02570-9}, author = {Elisa Gonzalez Boix and Tom Van Cutsem and Jorge Vallejos and Wolfgang De Meuter and Theo D{\textquoteright}Hondt}, editor = {Oriol, Manuel and Meyer, Bertrand} } @article {mostinckx09mirror, title = {Mirror-based reflection in AmbientTalk}, journal = {Software: Practice and Experience, SCI Impact factor in 2009: 0.667 (5-year impact factor: 1.035)}, volume = {39}, number = {7}, year = {2009}, pages = {661{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}699}, publisher = {John Wiley \& Sons, Inc.}, address = {New York, NY, USA}, issn = {0038-0644}, doi = {http://dx.doi.org/10.1002/spe.v39:7}, author = {Stijn Mostinckx and Tom Van Cutsem and Stijn Timbermont and Elisa Gonzalez Boix and {\~A}{\textflorin}{\^a}{\texteuro}{\textdegree}ric Tanter and Wolfgang De Meuter} } @conference {vancutsem07at2, title = {AmbientTalk: object-oriented event-driven programming in Mobile Ad hoc Networks}, booktitle = {Inter. Conf. of the Chilean Computer Science Society (SCCC)}, year = {2007}, pages = {3{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}12}, publisher = {IEEE Computer Society}, organization = {IEEE Computer Society}, author = {Tom Van Cutsem and Stijn Mostinckx and Elisa Gonzalez Boix and Jessie Dedecker and Wolfgang De Meuter} } @booklet {gonzalezboix07demoat, title = {AmbientTalk/2: Object-oriented Event-driven Programming in Mobile Ad hoc Networks}, howpublished = {Demostration at European Conference on Object- Oriented Programming (ECOOP07)}, year = {2007}, author = {Elisa Gonzalez Boix and Tom Van Cutsem and Stijn Mostinckx and Stijn Timbermont and Jorge Vallejos Vargas and Jessie Dedecker and Wolfgang De Meuter and Theo D{\textquoteright}Hondt} } @conference {gonzalezboix07context, title = {Context-Aware Leasing for Mobile Ad hoc Networks}, booktitle = {3rd Workshop on Object-Oriented technology for Ambient Intelligence and Pervasive Computing (OT4AmI) co-located at the European Conference on Object-Oriented Programming (ECOOP{\textquoteright}07)}, year = {2007}, month = {July}, pages = {7{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}12}, author = {Elisa Gonzalez Boix and Jorge Vallejos Vargas and Tom Van Cutsem and Jessie Dedecker and Wolfgang De Meuter} } @article {vallejos07mobility, title = {The Message-Oriented Mobility Model}, journal = {Proceedings of the conference on Objects, Models, Components, Patterns (TOOLS EUROPE)}, volume = {6}, year = {2007}, month = {June}, pages = {363 {\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe} 382}, publisher = {Chair of Software Engineering at the ETH Zurich}, author = {Jorge Vallejos Vargas and Tom Van Cutsem and Elisa Gonzalez Boix and Stijn Mostinckx and Jessie Dedecker and Wolfgang De Meuter} } @conference {vancutsem06addressing, title = {Ambient references: addressing objects in mobile networks}, booktitle = {International Dynamic Languages Symposium (DLS) in Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (OOPSLA{\textquoteright}06)}, year = {2006}, pages = {986{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}997}, publisher = {ACM Press}, organization = {ACM Press}, address = {New York, NY, USA}, isbn = {1-59593-491-X}, doi = {http://doi.acm.org/10.1145/1176617.1176757}, author = {Tom Van Cutsem and Jessie Dedecker and Stijn Mostinckx and Elisa Gonzalez Boix and Theo D{\textquoteright}Hondt and Wolfgang De Meuter} } @booklet {gonzalezboix06posterAosd, title = {An Annotation System for Semi-Automatic Garbage Collection}, howpublished = {Poster Event at the 5th International Conference on Aspect-Oriented Software Development (AOSD 2006)}, year = {2006}, month = {March}, author = {Elisa Gonzalez Boix and Tom Van Cutsem and Stijn Mostinckx and Jessie Dedecker and Wolfgang De Meuter and Theo D{\textquoteright}Hondt} } @inbook {mostinckx06ambient, title = {{A}mbient-{O}riented {E}xception {H}andling}, booktitle = {Advanced Topics in Exception Handling Techniques}, year = {2006}, pages = {141{\~A}{\textcent}{\^a}{\quotesinglbase}{\textlnot}{\^a}{\texteuro}{\oe}160}, publisher = {Springer-Verlag}, organization = {Springer-Verlag}, isbn = {978-3-540-37443-5}, author = {Stijn Mostinckx and Jessie Dedecker and Elisa Gonzalez Boix and Tom Van Cutsem and Wolfgang De Meuter} } @booklet {gonzalezboix06posterEcoop, title = {Semi-Automatic Garbage Collection for Mobile Networks}, howpublished = {Poster Event at the 20th European Conference on Object-Oriented Programming (ECOOP06)}, year = {2006}, author = {Elisa Gonzalez Boix and Tom Van Cutsem and Stijn Mostinckx and Jessie Dedecker and Wolfgang De Meuter and Theo D{\textquoteright}Hondt} }