here - Stefan-Marr.de
here - Stefan-Marr.de
here - Stefan-Marr.de
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6.5. Discussion<br />
Vats, as prosed by the E language [Miller et al., 2005], are becoming popular<br />
for instance with JavaScript WebWorkers 15 or isolates in Dart. 16 Vats and<br />
their isolation property are also an important aspect of AmbientTalk’s eventloop<br />
actors [Van Cutsem et al., 2007]. Axum’s domain 17 concept is a variation<br />
of the vats concept. It enables sharing of data between actors. It is relevant<br />
because traditional pure actor languages do not provi<strong>de</strong> means for data parallelism<br />
[De Koster et al., 2012; Scholliers et al., 2010].<br />
Partial Support The notion of channels has been used, e. g., in CSP [Hoare,<br />
1978] and is offered today in languages such as Go 18 and XC. 19<br />
Data streams are used for instance in stream-based programing languages<br />
such as StreamIt [Thies et al., 2002], but are also relevant for event processing<br />
[Renaux et al., 2012].<br />
Map/Reduce as implemented by Google’s MapReduce [Lämmel, 2008] or or<br />
Apache Hadoop 20 is relevant to process large amounts of data.<br />
Persistent data structures are used for si<strong>de</strong>-effect free programs in Clojure<br />
and Scala for instance. Supporting them by guaranteeing immutability simplifies<br />
interaction across languages and libraries.<br />
Replication is used for instance in Mozart [Mehl, 1999]. More recently it is<br />
used in Orleans [Bykov et al., 2011], a framework for cloud computing, which<br />
exploits notions such as immutability to enable state replication. While both<br />
examples are inten<strong>de</strong>d for use in distributed systems, such techniques are<br />
relevant [Chen et al., 2008] for mo<strong>de</strong>rn parallel processors such as the Cell<br />
B.E. processor [Johns and Brokenshire, 2007] as well.<br />
Speculative execution is commonly used to improve the performance of sequential<br />
programs at the hardware level of processors [Hennessy and Patterson,<br />
2007], but has also shown potential for parallelizing sequential programs<br />
on multiple cores [Herzeel and Costanza, 2010; Vajda and Stenstrom, 2010].<br />
Conclusion This section gave one or more examples of support in programming<br />
languages or recent research for each of the supported concepts. These<br />
15 http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html<br />
16 http://www.dartlang.org/<br />
17 http://download.microsoft.com/download/B/D/5/BD51FFB2-C777-43B0-AC24-<br />
BDE3C88E231F/Axum%20Language%20Spec.pdf<br />
18 http://golang.org/<br />
19 http://www.xmos.com/technology/xc<br />
20 http://hadoop.apache.org/<br />
171