diff --git a/img/pdf_icon_gen_48x49.png b/img/pdf_icon_gen_48x49.png new file mode 100644 index 0000000..6b8ecf1 Binary files /dev/null and b/img/pdf_icon_gen_48x49.png differ diff --git a/index.md b/index.md index ddd6a36..106bb03 100644 --- a/index.md +++ b/index.md @@ -13,51 +13,76 @@ link: entities formed to transact some specific business, to pursue or promote a shared interest. —[Wikipedia](https://en.wikipedia.org/wiki/Syndicate) -
Link to Syndicate github repo
+# Motivation - +Every interactive program needs some way of - - + - representing the *conversations* it is having as *concurrent + components* - + - *mapping incoming events* to these components - - - - + - managing the *shared understanding* that the components are + building as they work towards the program's goal - - + - cleaning up shared state after *partial failure* of a component - - + - *scoping* interactions and shared state inside the program - - - - +Existing programming languages lack linguistic support for these +requirements, leaving the programmer to fend for themselves. - - +Syndicate is a language designed to help organise interactive +programs. - +# Features - +Syndicate is an Actor-based language offering - + - pub/sub pattern-based message routing, for mapping events to actors - + - *dataspaces*, stores for semi-structured data, for managing shared + state - + - *state change notifications* for keeping actors informed of changes + in dataspaces - + - integrated techniques for registering and discovering services and + for cleaning up after both graceful and unexpected actor failures - - - + - recursive layering of groups of actors, each group with a private + dataspace of its own, for organising larger programs - - - - +Together, these features help address the above challenges. + +# Code + +Syndicate is implemented both for [Racket](http://racket-lang.org/) +and for [ES5](https://en.wikipedia.org/wiki/ECMAScript). + +Link to Syndicate github repo +The [Syndicate github repository]({{ page.link.ghrepo }}) contains +implementations along with some larger example programs. + +
+ +# Papers + + +Tony Garnock-Jones, [“From Events To Reactions: A Progress Report”]({{ +site.baseurl +}}/papers/from-events-to-reactions-a-progress-report-20160301-1747.pdf), +In: Proc. 9th Int. Workshop on Programming Language Approaches to +Concurrency and Communication-cEntric Software (PLACES 2016), April +2016, Eindhoven, Netherlands. + +
+ + +Tony Garnock-Jones and Matthias Felleisen, +[“Coordinated Concurrent Programming in Syndicate”]({{ site.baseurl +}}/papers/coordinated-concurrent-programming-in-syndicate-20160111-1409.pdf), +In: Proc. 25th European Symposium on Programming (ESOP 2016), April +2016, Eindhoven, Netherlands. + +
diff --git a/papers/coordinated-concurrent-programming-in-syndicate-20160111-1409.pdf b/papers/coordinated-concurrent-programming-in-syndicate-20160111-1409.pdf new file mode 100644 index 0000000..61ac234 Binary files /dev/null and b/papers/coordinated-concurrent-programming-in-syndicate-20160111-1409.pdf differ diff --git a/papers/from-events-to-reactions-a-progress-report-20160301-1747.pdf b/papers/from-events-to-reactions-a-progress-report-20160301-1747.pdf new file mode 100644 index 0000000..42b7717 Binary files /dev/null and b/papers/from-events-to-reactions-a-progress-report-20160301-1747.pdf differ diff --git a/style.css b/style.css index 1b29c50..4c778c1 100644 --- a/style.css +++ b/style.css @@ -321,6 +321,10 @@ strong { font-weight: bold; } +em { + font-style: italic; +} + /*---------------------------------------------------------------------------*/ .pagebanner h1,