Jeff Barnhart, Eric Reeves, Bryson Lee

Slides:



Advertisements
Similar presentations
Microsoft Confidential. An incubation effort to: Support client -> server communication in native code with a modern C++ API design Support writing Azure-based.
Advertisements

Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,

Introduction to .Net Framework
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Introduction to Interprocess communication SE-2811 Dr. Mark L. Hornick 1.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 6.
Cloud computing for internet emulator. Professor Muthucumaru Maheswaran Team Members Mia Hochar Simon Foucher David El Achkar David El Achkar Marc Atie.
Multi-Threaded Application CSNB534 Asma Shakil. Overview Software applications employ a strategy called multi- threaded programming to split tasks into.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Scott Ferguson Section 1
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
1 Combining Events and Threads for Scalable Network Services Peng Li and Steve Zdancewic University of Pennsylvania PLDI 2007, San Diego.
Developing Applications with the CSI Framework A General Guide.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
by Ondrej Rafaj Open source and other useful projects for iPhone / iPad.
Spark on Entropy : A Reliable & Efficient Scheduler for Low-latency Parallel Jobs in Heterogeneous Cloud Huankai Chen PhD Student at University of Kent.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
61% YoY Growth.NET Active Developers (VS 2012+) 40%.NET Core downloads by new developers 62% GitHub contributions from outside of Microsoft (corefx.
Bradley, Barbare, Wagner
Programming in Go(lang)
Introduction to threads
SPiiPlus Training Class
Parallel Programming in Contemporary Programming Languages
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
Chapter 4: Threads.
Lecture 1-Part 2: Operating-System Structures
Node.Js Server Side Javascript
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
USB The topics covered, in order, are USB background
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
.NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5
Mobile App Development
CSE 775 – Distributed Objects Submitted by: Arpit Kothari
SOFTWARE DESIGN AND ARCHITECTURE
Chapter 1 Reasons to study concepts of PLs Programming Domains
Presentation by Omar Abu-Azzah
1.1 Reasons to study concepts of PLs
Overview of C.
Lecture 1 Runtime environments.
New trends in parallel computing
An Overview of Java.
Operating System Concepts
Node.Js Server Side Javascript
Parallel Programming in Contemporary Programming Languages (Part 2)
Chapter 4: Threads.
Web Development Using ASP .NET
Chapter 4: Threads.
Built in Fairfield County: Front End Developers Meetup
CS703 - Advanced Operating Systems
Google App Engine Ying Zou 01/24/2016.
B.Ramamurthy Chapter 2 : Appendix
Threads and Concurrency
Systems Programming University of Ilam
INTRODUCTION TO By Stepan Vardanyan.
MPJ: A Java-based Parallel Computing System
A Short Intro to Go CS 240 – Fall 2018 Rec. 1.
Chapter 4: Threads & Concurrency
Lecture 1 Runtime environments.
Concurrency in GO CS240 23/8/2017.
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Jeff Barnhart, Eric Reeves, Bryson Lee Go Jeff Barnhart, Eric Reeves, Bryson Lee

Overview Developed at Google to provide an open-source programming language modeled after C and C++, but that provides more advanced features like networking and multiprocessing Go is clearly a derivative of C, but makes changes to improve conciseness, simplicity, and safety It is an imperative, compiled and statically typed language

History Created by Robert Griesemer, Rob Pike, and Ken Thompson, all Google employees and first released on November 10, 2009 The most significant update was released in August of this year Designed to provide the conciseness and simplicity of C, but with many more powerful features built in The designers disliked C++, saying it was overly complex

History Used by many people, both inside and outside Google Google uses Go on the their download server, dl.google.com Also used by SoundCloud, Dropbox, and the BCC Was named the Programming Language of the Year in 2009, and ranked 14th on the TIOBH rankings in 2010 Has since fallen to 50th place in 2015

Language Concepts I - Multiprocessing Built-in support for multi-threading on a CPU with a single core, multicores, or on separate, connected CPU’s Uses the function ‘go’ to create new lightweight threads for concurrent or asynchronous operations go waitForTimer(); Go uses ‘channels’ to create type-safe and synchronized ‘pipes’ which can carry data between different goroutines Can be used to pipeline data and for background calls with a timeout

Language Concepts II - Networking Go natively provides an interface for network I/O TCP/IP, UDP, domain name resolution and Unix domain sockets Provides good support for writing server software and network applications in general Networking work greatly simplified with easy to use concurrency and included libraries such as HTTP, JSON, and XML packages

Go Demo I

Go Demo II

Go Example Execution

Comparison to other languages Very syntactically similar to C Significantly more efficient than other languages (Python) which provide similar built-in functionality On average: fewer lines of codes quicker compilation time reduced memory usage important libraries are already included

References https://golang.org/doc/faq http://www.infoworld.com/article/2928602/google-go/whats-the-go-language-really- good-for.html https://indico.cern.ch/event/449425/session/1/contribution/6/attachments/1168560/16 85802/DAS_python_vs_go.pdf https://github.com/golang/go/wiki