This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Thesis: ScalaFlow - Continuation Based DataFlow Concurrency in Scala

1 reply
Kai Meder 2
Joined: 2010-06-06,
User offline. Last seen 42 years 45 weeks ago.

Hello all

I handed in my Master's Thesis last month and now have everything put
online and publicly available at github [0].

I developed a framework based on the Delimited Continuations
Compiler-Plugin to create concurrent programs with DataFlow-execution.
This means the program is transparently suspended and resumed (without
blocking any threads) depending on the availability of data.

A minimal demo (yes, looks like Futures):
val v = new Variable[Int]
flow { println( v() ) // suspends without blocking }
flow { v := 42 // resumes above flow }

The Thesis itself is available at [1], some tests/demos are available at
[2]. I created several programs on top of ScalaFlow, one is available
(although not yet really working, too many heuristics :( at [3].

A big Thank You to the helpful and generally awesome Scala community!

Any comment appreciated.

Cheers,
Kai

[0] http://github.com/hotzen/ScalaFlow
[1] http://github.com/hotzen/ScalaFlow/raw/master/thesis.pdf
[2]
http://github.com/hotzen/ScalaFlow/tree/master/src/test/scala/dataflow/t...
[3] http://github.com/hotzen/MetaFlow

Tiark Rompf
Joined: 2009-02-18,
User offline. Last seen 42 years 45 weeks ago.
Re: Thesis: ScalaFlow - Continuation Based DataFlow Concurrency

Congratulations to your thesis, Kai! I wanted to have a quick look at your thesis but I actually ended up reading most of it. In particular, I like the NIO/networking stuff. Keep up the good work!
- Tiark

On Oct 13, 2010, at 9:38 PM, Kai Meder wrote:

> Hello all
>
> I handed in my Master's Thesis last month and now have everything put online and publicly available at github [0].
>
> I developed a framework based on the Delimited Continuations Compiler-Plugin to create concurrent programs with DataFlow-execution. This means the program is transparently suspended and resumed (without blocking any threads) depending on the availability of data.
>
> A minimal demo (yes, looks like Futures):
> val v = new Variable[Int]
> flow { println( v() ) // suspends without blocking }
> flow { v := 42 // resumes above flow }
>
> The Thesis itself is available at [1], some tests/demos are available at [2]. I created several programs on top of ScalaFlow, one is available (although not yet really working, too many heuristics :( at [3].
>
> A big Thank You to the helpful and generally awesome Scala community!
>
> Any comment appreciated.
>
> Cheers,
> Kai
>
> [0] http://github.com/hotzen/ScalaFlow
> [1] http://github.com/hotzen/ScalaFlow/raw/master/thesis.pdf
> [2] http://github.com/hotzen/ScalaFlow/tree/master/src/test/scala/dataflow/t...
> [3] http://github.com/hotzen/MetaFlow
>

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland