{"title":"Conversational Concurrency","authors":"Tony Garnock-Jones","doi":"arxiv-2409.04055","DOIUrl":null,"url":null,"abstract":"Concurrent computations resemble conversations. In a conversation,\nparticipants direct utterances at others and, as the conversation evolves,\nexploit the known common context to advance the conversation. Similarly,\ncollaborating software components share knowledge with each other in order to\nmake progress as a group towards a common goal. This dissertation studies concurrency from the perspective of cooperative\nknowledge-sharing, taking the conversational exchange of knowledge as a central\nconcern in the design of concurrent programming languages. In doing so, it\nmakes five contributions: 1. It develops the idea of a common dataspace as a\nmedium for knowledge exchange among concurrent components, enabling a new\napproach to concurrent programming. While dataspaces loosely resemble both\n\"fact spaces\" from the world of Linda-style languages and Erlang's\ncollaborative model, they significantly differ in many details. 2. It offers\nthe first crisp formulation of cooperative, conversational knowledge-exchange\nas a mathematical model. 3. It describes two faithful implementations of the\nmodel for two quite different languages. 4. It proposes a completely novel\nsuite of linguistic constructs for organizing the internal structure of\nindividual actors in a conversational setting. The combination of dataspaces\nwith these constructs is dubbed Syndicate. 5. It presents and analyzes evidence\nsuggesting that the proposed techniques and constructs combine to simplify\nconcurrent programming. The dataspace concept stands alone in its focus on representation and\nmanipulation of conversational frames and conversational state and in its\nintegral use of explicit epistemic knowledge. The design is particularly suited\nto integration of general-purpose I/O with otherwise-functional languages, but\nalso applies to actor-like settings more generally.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"5 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.04055","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
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: 1. 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. 2. It offers
the first crisp formulation of cooperative, conversational knowledge-exchange
as a mathematical model. 3. It describes two faithful implementations of the
model for two quite different languages. 4. 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. 5. 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.