db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%T An Introduction to Go
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Rick D. Beton
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Peter H. Welch, Frederick R. M. Barnes, Jan F. Broenink, Kevin Chalmers, Jan Bækgaard Pedersen, Adam T. Sampson
%B Communicating Process Architectures 2013
%X Go is a new open\-source programming language from a team of
Google\[rs]s
developers. It provides a modern
garbage\-collected runtime that has
particular support for
concurrency. The pattern for this is based on
Hoare\[rs]s
CSP, using channels for synchronization and communication,
and
discouraging the direct sharing of variables. Processes
are
light\-weight co\-operative threads that the runtime
time\-slices onto
underlying operating system threads; this
allows an application\[rs]s
natural concurrency to be
expressed as fully as needed by the natural
concurrency of
the application domain. The presentation provides
an
overview of Go\[rs]s main features, covering in
particular the unusual
interfaces and duck\-typing, the
reflection and the concurrency.
Focussing on concurrency in
detail, as an example, a simple
web\-crawler application is
converted step by step to operate
concurrently, and at each
stage this allows a particular feature of
Go\[rs]s
concurrency to be demonstrated.