Agenda  Historia  Características  Mecanismos de concurrencia  Ejemplos  Desventajas  Accesibilidad  Conclusiones  Bibliografía.

Slides:



Advertisements
Presentaciones similares
Lenguaje Unificado de Modelado
Advertisements

Introducción Programación.
Programando con OpenMP*
Prototipo de compilador didáctico del lenguaje LC99
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
INSTITUTO TECNOLOGICO DE MINATITLAN
Elementos básicos del Lenguaje
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
Daniel A. Seara Director Regional MSDN NDSoft
Estructuras en Sistemas Operativos
INFORMATICA I Funciones CLASE 13.
Concurrencia en JAVA JAVA es un lenguaje que tiene soporte de concurrencia, mediante Threads. Un thread es un proceso “liviano” (lightweight process) que.
Teoría de lenguajes y compiladores
PROGRAMACIÓN DE SISTEMAS DE MEMORIA COMPARTIDA (SMP):
El lenguaje de Programación Perl
Ruby Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales
Funciones en lenguaje C
Funciones Computación.
Profesor: Miguel Angel Vidal
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
Java Mayra M. Méndez Anota.
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Criterios de la Orientación a Objetos 1. Método y Lenguaje (proceso de pensamiento y notaciones para analizar y producir software). 2. Implementación y.
Semana 5 Subprogramas..
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
INTEL CONFIDENTIAL Metodología de programación paralela Intel Software College.
M.C. Juan Carlos Olivares Rojas
Estructura de un programa en C
Unidad III Administración de procesos
Análisis de Algoritmos
Hilos - Lightweight process - Procesos ligeros
Introducción a la Programación. Lenguaje de Máquina.
Programación Orientada a Aspectos (POA)
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda.
ESTRUCTURA DE DATOS EN JAVA
Programación de Memoria Compartida
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Programación de Memoria Compartida
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Operaciones combinadas
Lenguajes de programación Web
Introducción al lenguaje de programación SLE 2
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
NVA-LNG1 3. SENTENCIAS. NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En.
The nesC Language: A Holistic Approach to Networked Embedded Systems Tomado de paper de: D. Gay, P. Levis, R. Behren, M. Welsh, E. Brewer, D. Culler.
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Elementos básicos del lenguaje
MBA. LIDA LOOR MACIAS 1. 3 martes, 13 de octubre de 2014 OBJETIVO: El estudiante adquirirá los fundamentos básicos de la programación orientada a objeto.
Programación Orientada a Objetos
Estructura de los Sistemas Operativos
Unidad II Aplicaciones con Arreglos en Java y C++
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
Por: Mario Felaco Mercedes Martinez Sistemas Operativos III Ene-Mar 2007.
Procesador core i3 para portátiles y sobremesas. Posee dos núcleos que emulan cuatro hilos de ejecución, fabricados en 32 nanómetros y con GPU integrada.
PROCESADORES DAVID ALCALÁ JHONNY POSADA LESLY MARTINEZ LADY MUNAR.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Manejo Excepciones Profesor Elian Rojas Berroca 11/02/2015.
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
HISTORIA DE LOS LENGUJAES DE PROGRAMACIÓN HARDWARE: Computadoras primivas en programación MÉTODOS: Subprogramas Estructuras de datos Posibilidad.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Transcripción de la presentación:

Agenda  Historia  Características  Mecanismos de concurrencia  Ejemplos  Desventajas  Accesibilidad  Conclusiones  Bibliografía

Historia

Características  Lenguaje Compilado ◦ Desempeño ◦ Velocidad ◦ Seguridad  Velocidad de desarrollo ◦ Elimina dependencias innecesarias ◦ Minimiza el árbol de dependencias ◦ Velocidad de compilación

Características  Sintaxis Similar a C o C++ ◦ Diferencias:  Declaración de las variables  For es la única instrucción para ciclos  Punto y coma innecesario a final de instrucciones  If y For no usan paréntesis para encerrar condición  No maneja clases; sino structs con métodos

Características package main import "fmt“ var a,b int = 1,2 func main() { a := 0 for i := 0; i < 10; i++ { a += i } fmt.Println(a) }

Características  Lenguaje Orientado a Objetos? ◦ Lenguaje orientado a objetos donde no existen objetos ◦ Cubetas que implementan cosas  Recolector de basura  Open Source  Lenguaje Multipropósito ◦ Programación Mobil ◦ Programación Web ◦ Programación Sistemas

Métodos de Concurrencia

Do not communicate by sharing memory; instead, share memory by communicating.

Goroutines  Elemento básico de concurrencia  Ejecución en paralelo  Misma dirección de memoria  Livianos  Multiplexados en muchos hilos del S.O go list.Sort()

Ejemplos package main import "fmt" func sum(a []int, c chan int) { sum := 0 for _, v := range a { sum += v } c <- sum // send sum to c } func main() { a := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(a[:len(a)/2], c) go sum(a[len(a)/2:], c) x, y := <-c, <-c // receive from c fmt.Println(x, y, x + y) }

Canales  Combinan comunicación con sincronización  Buffered o unbuffered  Envío y recepción de mensajes con operador ->  Bloquean hasta que ambos lados del canal esten listos. canal <- 4 <- canal

Ejemplos package main import "fmt" func main() { c := make(chan int, 2) c <- 1 c <- 2 fmt.Println(<-c) }

Paralelización  Uso de múltiples núcleos  Cálculos complejos divididos  Canal recibe resultados

Ejemplos const NCPU = 4 // number of CPU cores func (v Vector) DoAll(u Vector) { c := make(chan int, NCPU) // Buffering optional but sensible. for i := 0; i < NCPU; i++ { go v.DoSome(x,y) } // Drain the channel. for i := 0; i < NCPU; i++ { <-c // wait for one task to complete } // All done. }

Desventajas  Lenguaje experimental  Compilador no funciona en Windows  No tiene manejo de excepciones

Accesibilidad  Tour  Compilación y ejecución en línea  Ejercicios  Prácticas de programación  Código fuente  Instrucciones de instalación  Documentación  Especificación

Conclusiones  Go es un potente lenguaje de programación que mezcla las ventajas de lenguajes compilados con las de los lenguajes dinámicos.  Semántica similar a lenguajes de programación básicos.  Aumenta velocidad de desarrollo y por ende el desempeño de los trabajadores.  Brinda mecanismos de concurrencia muy prácticos y de uso sencillo.

Bibliografía   and.html and.html  de-programacion-go de-programacion-go  Know-About-Googles-Go-Programming-Language / Know-About-Googles-Go-Programming-Language /   Know-About-Googles-Go-Programming-Language /1/ Know-About-Googles-Go-Programming-Language /1/