%T An Introduction to Go
%A Rick D. Beton
%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.
If you have any comments on this database, including inaccuracies, requests to remove or add information, or suggestions for improvement, the WoTUG web team are happy to hear of them. We will do our best to resolve problems to everyone's satisfaction.
Copyright for the papers presented in this database normally resides with the authors; please contact them directly for more information. Addresses are normally presented in the full paper.
Pages © WoTUG, or the indicated author. All Rights Reserved.
Comments on these web pages should be addressed to: www at wotug.org