115 lines
4.4 KiB
Markdown
115 lines
4.4 KiB
Markdown
---
|
|
title: PhD Dissertation of Tony Garnock-Jones
|
|
layout: page
|
|
link:
|
|
snapshot: 'syndicate-code-snapshot-20180124-1235.zip'
|
|
---
|
|
|
|
# Conversational Concurrency
|
|
|
|
by **Tony Garnock-Jones**
|
|
PhD dissertation, supervised by Matthias Felleisen
|
|
Northeastern University, December 2017
|
|
|
|
Contact: <tonyg@leastfixedpoint.com>
|
|
|
|
<span id="dissertation"></span>The dissertation itself is available in two formats:
|
|
|
|
- [PDF]({{ site.baseurl
|
|
}}/papers/conversational-concurrency-201712310922.pdf), for
|
|
printing or offline use. (1.8MB)
|
|
|
|
- [Single-page HTML](html/), for reading online. (1.7MB)
|
|
|
|
On this page, you will find a
|
|
[recording](#dissertation-defense-talk-recording) of my dissertation
|
|
defense talk, the [slides](#dissertation-defense-slides) I used for my
|
|
talk, a [source code snapshot](#source-code-snapshot) of the Syndicate
|
|
implementations and examples, and the [proof scripts](#proofs)
|
|
accompanying the dissertation.
|
|
|
|
### Abstract
|
|
|
|
Concurrent computations resemble conversations. In a conversation,
|
|
participants direct utterances at others and, as the conversation
|
|
evolves, exploit the known common context to advance the conversation.
|
|
Similarly, collaborating software components share knowledge with each
|
|
other in order to make progress as a group towards a common goal.
|
|
|
|
This dissertation studies concurrency from the perspective of
|
|
cooperative knowledge-sharing, taking the conversational exchange of
|
|
knowledge as a central concern in the design of concurrent programming
|
|
languages. In doing so, it makes five contributions:
|
|
|
|
0. It develops the idea of a common dataspace as a medium for
|
|
knowledge exchange among concurrent components, enabling a new
|
|
approach to concurrent programming.
|
|
|
|
While dataspaces loosely resemble both “fact spaces” from the
|
|
world of Linda-style languages and Erlang's collaborative model,
|
|
they significantly differ in many details.
|
|
|
|
0. It offers the first crisp formulation of cooperative,
|
|
conversational knowledge-exchange as a mathematical model.
|
|
|
|
0. It describes two faithful implementations of the model for two
|
|
quite different languages.
|
|
|
|
0. It proposes a completely novel suite of linguistic constructs for
|
|
organizing the internal structure of individual actors in a
|
|
conversational setting.
|
|
|
|
The combination of dataspaces with these constructs is dubbed
|
|
Syndicate.
|
|
|
|
0. It presents and analyzes evidence suggesting that the proposed
|
|
techniques and constructs combine to simplify concurrent
|
|
programming.
|
|
|
|
The dataspace concept stands alone in its focus on representation and
|
|
manipulation of conversational frames and conversational state and in
|
|
its integral use of explicit epistemic knowledge. The design is
|
|
particularly suited to integration of general-purpose I/O with
|
|
otherwise-functional languages, but also applies to actor-like
|
|
settings more generally.
|
|
|
|
### Dissertation defense talk recording
|
|
|
|
I defended my thesis on the 8th of December, 2017. The talk was
|
|
recorded. There is a copy on the
|
|
[Internet Archive](https://archive.org/details/TonyGarnockJonesDoctoralDissertationDefense8Dec2017)
|
|
(embedded below) and another at
|
|
[YouTube](https://www.youtube.com/watch?v=w8jgUFWVD5s). (I'm afraid
|
|
that the sound is *very* quiet on the recording.)
|
|
|
|
<p class="center"><iframe src="https://archive.org/embed/TonyGarnockJonesDoctoralDissertationDefense8Dec2017" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></p>
|
|
|
|
### Dissertation defense slides
|
|
|
|
The slides from my defense talk are available
|
|
[here](html/presentation.html) (also embedded below). Use the `n` and
|
|
`p` keys to move to the next and previous slide, respectively.
|
|
|
|
<p class="center"><iframe src="html/presentation.html" width="640" height="480"></iframe></p>
|
|
|
|
### Source code snapshot
|
|
|
|
[This zip file]({{ page.link.snapshot }}) contains source code for the
|
|
Syndicate prototypes and example applications, as they were at the
|
|
time of my dissertation:
|
|
|
|
<a href="{{ page.link.snapshot }}"><img class="leftfloat" alt="Link to Syndicate source code snapshot" src="{{ site.baseurl }}/img/fontawesome-arrow-alt-circle-down-64x64.png"></a>
|
|
|
|
Download [{{ page.link.snapshot }}]({{ page.link.snapshot }})
|
|
|
|
<div class="clear"></div>
|
|
|
|
Please see also the downloads available at
|
|
[syndicate-lang.org](http://syndicate-lang.org/) and on
|
|
[Github](https://github.com/tonyg/syndicate/).
|
|
|
|
### Proofs
|
|
|
|
The Coq scripts representing the proofs of some of the theorems from
|
|
my dissertation will be available here shortly.
|