05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!