syndicate-2017/tonyg-dissertation/index.md

115 lines
4.4 KiB
Markdown
Raw Normal View History

2018-01-17 15:13:08 +00:00
---
title: PhD Dissertation of Tony Garnock-Jones
layout: page
2018-01-24 12:54:15 +00:00
link:
snapshot: 'syndicate-code-snapshot-20180124-1235.zip'
2018-01-17 15:13:08 +00:00
---
# Conversational Concurrency
by **Tony Garnock-Jones**
PhD dissertation, supervised by Matthias Felleisen
Northeastern University, December 2017
2018-01-23 16:34:57 +00:00
Contact: <tonyg@leastfixedpoint.com>
2018-01-17 15:13:08 +00:00
<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)
2018-01-17 15:13:08 +00:00
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
2018-01-23 16:34:57 +00:00
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.
2018-01-17 15:13:08 +00:00
### 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
2018-01-23 16:34:57 +00:00
[YouTube](https://www.youtube.com/watch?v=w8jgUFWVD5s). (I'm afraid
that the sound is *very* quiet on the recording.)
2018-01-17 15:13:08 +00:00
<p class="center"><iframe src="https://archive.org/embed/TonyGarnockJonesDoctoralDissertationDefense8Dec2017" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></p>
2018-01-17 15:13:08 +00:00
### 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>
2018-01-23 16:34:57 +00:00
### Source code snapshot
2018-01-24 12:54:15 +00:00
[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>
&nbsp;
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/).
2018-01-23 16:34:57 +00:00
2018-01-17 15:13:08 +00:00
### Proofs
The Coq scripts representing the proofs of some of the theorems from
my dissertation will be available here shortly.