Go para programação paralela



Documentos relacionados
Introdução a Go para programação paralela

César Henrique Bernabé João Mario Silva. Linguagens de Programação

Go Lang A linguagem do Google

CURSO DE PROGRAMAÇÃO EM JAVA

Chien 2D Tutorial Básico

Introdução à Linguagem C/C++ Parte I

Guião de Introdução ao Eclipse IDE Índice

Introdução ao IDE Netbeans (Programação Java)

Programação de Computadores I. Conhecendo a IDE Code::Blocks

Introdução a Informática. Prof.: Roberto Franciscatto

Sobre C. Linguagem de Programação C

Tutorial Eclipse (IDE)

DESENVOLVIMENTO DE SOFTWARE II. Aula 07 A linguagem de programação C# e sua sintaxe

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Sumário. Introdução ao Universo Linux Parte I

Administração Central Unidade de Ensino Médio e Técnico CETEC. Ensino Técnico. Professor: Luís Alexandre Boyago dos Santos

TDC desenvolvimento. para iphone. Helder da Rocha

Conceitos Básicos da Linguagem C. Prof. Leonardo Barreto Campos 1

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Java para Desktop. Introdução à Plataforma Java JSE

Webmail mais rápido e completo

I Semana de Capacitação. Robocode. Build the Best, Destroy the Rest

Como contribuir com projetos de software livre

Instalando o Linux e outros Softwares

Tecnologia WEB III. Prof. Erwin Alexander Uhlmann. PHP e MySQL. UHLMANN, Erwin Alexander. Introdução ao PHP. Instituto Siegen. Guarulhos, 2012.

Nota de Aula: Utilização da IDE Code::Blocks

Prof. Luis Nícolas de Amorim Trigo

INTRODUÇÃO À LINGUAGEM C/C++

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Instalando o plugin CDT 4.0

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Ganhe Dinheiro na Internet

Introdução a lógica de programação. Aula 02: Linguagens de Programação e Introdução ao Visual C# Express

Prova do Primeiro Bimestre Warm-Ups 1 a 7

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Java Básico. Aula 1 por Thalles Cezar

Alexandre Malveira, Wolflan Camilo


1 Code::Blocks Criação de projetos

PROGRAMAÇÃO JAVA. Parte 1

Dominando Action Script 3

Aprenda a vender VOCÊ, suas IDEIAS, PRODUTOS e SERVIÇOS

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br

Introdução a Linguagem C

Prof. André Di Thommazo

Prof. Jefferson Costa

Programação 2009/2010 MEEC MEAer

Fundament n os s da platafo f rm r a. NE N T André Menegassi

SISTEMAS OPERACIONAIS

Processos e Threads (partes I e II)

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira

Administração Central Unidade de Ensino Médio e Técnico CETEC. Ensino Técnico

Aula 01: Linguagens de Programação e Introdução ao Visual C# Express

Como contribuir com projetos de software livre

Introdução à Linguagem Java

Professor: Douglas Sousa Cursos de Computação

Fala, CMO! Com Thiago Reis da Project Builder

Treinamento em PHP com MySQL - Fundamental

Processamento de Dados

Desenvolvimento de Aplicativos com ASR para Android

Administração Central Unidade de Ensino Médio e Técnico CETEC. Ensino Técnico

Princípios e Conceitos de Marketing. Prof. Felipe A. Pires

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Web Design Aula 11: Site na Web

Sistemas Operacionais I

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

LINGUAGEM C UMA INTRODUÇÃO

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Algoritmos e Linguagem de Programação I

5 Apresentando a linguagem C

Sistema P2P com Timestamping para Sincronização de Diretórios

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Proposta de Parceria Comercial e Plano de Marketing

quinta-feira, 6 de agosto de 15 Buildout

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

*Todos os direitos reservados.

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

PROPOSTA DE DESENVOLVIMENTO DE CAMPANHA EM MARKETING DIGITAL

O Hardware e o Software do Computador

Orientação a Objetos Programação em C++

JADE Java Agent DEvelopment Framework

Configuração dos clientes da rede sem fio cefetmg_aluno

Integração com Salesforce

Disciplina de Banco de Dados Introdução

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Otimizações do GCC para Processadores Intel. Rodrigo Vivi - FISL13

Instalação do VOL Backup para Sistemas Unix-Like

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Versão 7 TraceGP Ágil

Hardware. Computador. Hardware parte do computador em que você normalmente mete o pé quando seu computador não executa uma tarefa solicitada por você.

Introdução ao Delphi. Introdução. Edições do Software. Capítulo 1. InforBRás - Informática Brasileira Ltda. O Que é o Delphi.

Criando, inserindo e exibindo PHP+MySql

Cadastro do livro e acesso ao CONTEÚDO DIGI TA

INTRODUCAO DESENVOLVIMENTO E DESIGN DE WEBSITES INTRODUÇÃO. Professor Carlos Muniz

Comparativo de desempenho do Pervasive PSQL v11

Transcrição:

Go para programação paralela SECOMP Alexandre Medeiros alexandre.n.medeiros@gmail.com Instituto de Computação Universidade Estadual de Campinas 14 de agosto de 2014

Uma versão mais completa desses slides e diversos exemplos podem ser encontrados na minha página! alemedeiros.sdf.org

Introdução O que é Go? Golang Go, ou Golang, é uma linguagem de programação Open Source onde é fácil fazer programas simples, confiáveis e eficientes.

Introdução O que é Go? Criadores A linguagem foi desenvolvida por Robert Griesemer, Rob Pike e Ken Thompson no Google.

Introdução Principais ideias Compilação rápida Execução rápida Simples de se programar

Introdução Principais ideias Compilação rápida Execução rápida Simples de se programar

Introdução Principais ideias Compilação rápida Execução rápida Simples de se programar

Introdução Funcionalidades Funcionalidades interessantes Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

Introdução Funcionalidades Funcionalidades interessantes Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

Introdução Funcionalidades Funcionalidades interessantes Sintaxe amplamente inspirada em C Garbage-collected Inferência de tipos de variáveis

Introdução Funcionalidades E mais importante! Projetada para ser simples de se criar programas concorrentes.

Introdução Funcionalidades E mais importante! Projetada para ser simples de se criar programas concorrentes.

É fácil de aprender! Hello, World! package main import " f m t " func main () { fmt. Println ( " H e l l o, W o r l d! " ) } Programa 1: hello.go

É fácil de aprender! Programas concorrentes goroutines Uma goroutine é uma lightweight thread, gerenciada pelo runtime.

É fácil de aprender! Programas concorrentes Canais de comunicação Os channels são a principal maneira de comunicação e sincronização entre goroutines.

É fácil de aprender! Programas concorrentes Canais de comunicação func say (s s t r i n g, done chan bool ) { f o r i := 0; i < 3; i++ { time. Sleep (100 * time. Millisecond ) fmt. Println (s) } done <- t r u e } func main () { done := make( chan bool ) go say ( " H e l l o, W o r l d! ", done ) } i f <- done { fmt. Println ( " Done : ) " ) } Programa 2: channels.go

É fácil de aprender! Programas concorrentes Canais de comunicação $ go run channels.go Hello, World! Hello, World! Hello, World! Done :)

É fácil de aprender! Ferramentas Conjunto de ferramentas completo go build go run gofmt godoc go get

É fácil de aprender! Ferramentas Conjunto de ferramentas completo go build go run gofmt godoc go get

É fácil de aprender! Ferramentas Conjunto de ferramentas completo go build go run gofmt godoc go get

É fácil de aprender! Ferramentas Conjunto de ferramentas completo go build go run gofmt godoc go get

É fácil de aprender! Ferramentas Conjunto de ferramentas completo go build go run gofmt godoc go get

É fácil de aprender! Links úteis Referências tour.golang.org gobyexample.com

É fácil de aprender! Links úteis Divirta-se você também! play.golang.org

That s all folks Dúvidas?

That s all folks Fim! Contato: alexandre.n.medeiros@gmail.com