Top Banner
2º curso / 2º cuatr. Grado en Ing. Informática 2º curso / 2º cuatr. Grado en Ing. Informática 2º curso / 2º cuatr. Grado en Ing. Informática Seminario 0. Entorno de programación: Plataforma Eclipse Arquitectura de Computadores
44
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AC 0 Eclipse

2º curso / 2º cuatr.

Grado en Ing. Informática

2º curso / 2º cuatr.

Grado en Ing. Informática

2º curso / 2º cuatr.

Grado en Ing. Informática

Seminario 0. Entorno de programación: Plataforma Eclipse

Arquitectura de Computadores

Page 2: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 2

Page 3: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 3

Page 4: AC 0 Eclipse

AC AC

¿Qué es Eclipse?

Es un entorno de desarrollo integrado (IDE- Integrated Development Environments) más una serie de complementos (plug-in) que lo personalizan para distintos lenguajes de programación ¿IDE? es una aplicación para el desarrollo de software. Incluye

típicamente: Editor de código fuente Herramientas para la generación de código ejecutable: compilador,

enlazador, ensamblador Depurador

Con complementos (plug-in) se personaliza para varias lenguajes de programación (C/C++, Java, Python, etc.)

Es un software libre de código abierto que se puede usar en Linux y Windows

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 4

Page 5: AC 0 Eclipse

AC AC

¿Qué es CDT?

Eclipse CDT (C/C++ Development Tooling) es el nombre que recibe el IDE Eclipse de C/C++ (IDE con el plug-in de C/C++)

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 5

Permite editar/generar/depurar código C/C++ Proporciona un editor de código fuente

Usa generadores de código ejecutable de terceros: Compilador, enlazador, ensamblador, etc.

(de GNU, de Intel, MinGW, etc.)

Usa depuradores de código fuente de terceros (p. ej. gdb de GNU)

Enlazador

(linker)

Ensamblador

(Assembler)

Compilador

(Compiler)

Ejecutable (.exe, . )

Código objeto (.o)

Código ensamblador (.asm, .s)

Código alto nivel

(.cpp, .c, .f90)

Page 6: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 6

Page 7: AC 0 Eclipse

AC AC

Usuarios Eclipse

Según un estudio de IDC (International Data Corporation) hay 2.27 millones de usuarios de Eclipse

Ejemplo de vendedores que han adoptado Eclipse como IDE para, al menos, alguna herramienta de programación:

Intel (C++, Fortran Compilers para Linux)

Texas Instruments (Code Composer Essentials)

Altera (NIOS II IDE)

Xilinx (Platform Studio SDK, Embedded Development Kit)

...

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 7

Page 8: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP

¿Qué es TORQUE?

Cluster de prácticas

Ejecución del ejemplo Hello OpenMP en el cluster

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 8

Page 9: AC 0 Eclipse

AC AC

Instalación

Descargar la versión a instalar (Linux64, Linux32, Windows64 o Windows32) de http://www.eclipse.org/cdt/downloads.php Indigo (2011)

Helios (2010)

Galileo (2009)

Ganymede (2008)

Instalar/descomprimir

Ejecutar Introducir el camino al espacio de trabajo (workspace)

Workspace: almacenamiento por defecto

Puede que al ejecutarlo la primera vez aparezca la perspectiva de Java en lugar de la de C/C++ En cuanto se cree un proyecto C o C++ (con File->New->Project) la IDE preguntará si pasa a la

perspectiva C/C++

Se puede cambiar de perspectiva usando Window->Open Perspective

Para Indigo: en Widows->Preferences->C/C++->Code Analisys quitar algunos errores (en particular, “Symbol is not resolved”)

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 9

Page 10: AC 0 Eclipse

AC AC

Ventana de bienvenida

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 10

Se puede generar

en cualquier

momento con

Help->Welcome

Page 11: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP

¿Qué es TORQUE?

Cluster de prácticas

Ejecución del ejemplo Hello OpenMP en el cluster

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 11

Page 12: AC 0 Eclipse

AC AC

Conceptos de Eclipse – workbench, perspective

Mesa de trabajo (workbench) Entorno de desarrollo integrado (IDE). Agrupa tareas en actividades de

alto nivel (perspectivas).

Consta de una o varias perspectivas

Ej. mesas de trabajo: CDT (IDE C/C++), JDT (IDE Java), etc.

Abrir otra mesa de trabajo: Window->New Window

Perspectiva (perspective) Agrupa un conjunto de tareas para realizar una actividad de alto nivel.

Visualmente es un contenedor con editores de contenidos y agrupaciones de vistas

Puede haber varias abiertas en un workbench, pero sólo una estará visible cada vez.

Ej. perspectivas: Desarrollo Java, Desarrollo C/C++, Depuración, etc.

Cambiar/visualizar perspectiva: Window->Open Perspective

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 12

Page 13: AC 0 Eclipse

AC AC

Conceptos de Eclipse – workbench, perspective

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 13

Mesa de trabajo (workbench)

Barra de

menú

Perspectiva

(perspective)

Barra de

herramientas

Editor

Vistas (views)

Línea de

estado

Page 14: AC 0 Eclipse

AC AC

Conceptos de Eclipse – workbench, perspective

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 14

Mesa de trabajo (workbench): barra de menú y barra de herramientas personalizada por la perspectiva

activa, línea de estado personalizada por la vista activa, una o varias perspectivas (sólo una visible)

Para cambiar

de perspectiva

Page 15: AC 0 Eclipse

AC AC

Conceptos de Eclipse – editor, view

Editor (editor) Se comparte entre perspectivas de una mesa de trabajo

(workbench).

El editor que abre Eclipse depende de la extensión del fichero (.c, .cpp, .java, .txt, …)

Abrir nueva instancia editor: Window->New Editor

Vista (view) Visualiza información para ayudar a realizar una tarea.

No se comparte entre perspectivas

Ej. vista: consola, problemas, registros, variables, explorador, …

Cambiar/visualizar vista: Window->Show View

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 15

Page 16: AC 0 Eclipse

AC AC

Conceptos de Eclipse – editor, view

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 16

Perspectiva (perspective): editores y vistas (views)

Para

ca

mbia

r de

vis

ta

Page 17: AC 0 Eclipse

AC AC

Conceptos de Eclipse – workspace, project

Proyecto (project) Agrupación de (Window->Show View->Project Explorer)

Carpetas (src, Debug, Release, Includes, Binaries, etc.), algunas de ellas son directorios del sistema de ficheros, y

Ficheros (.h, .c, .cpp, .exe, …)

El más alto nivel de organización de los elementos de una aplicación

Espacio de trabajo (workspace) Almacén por defecto de (Window->Show View->Navigator)

Proyectos Información de administración/control de eclipse (ocultos)

Se pueden tener varios (File -> Switch Workspace)

Otros términos: http://wiki.eclipse.org/User_Interface_Guidelines#Glossary

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 17

Page 18: AC 0 Eclipse

AC AC

Conceptos de Eclipse – project

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 18

Para

vis

ualiz

ar

el pro

yecto

:

Win

do

w->

Sh

ow

Vie

w->

Pro

ject

Exp

lore

r

Page 19: AC 0 Eclipse

AC AC

Conceptos de Eclipse – workspace

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 19

Para

vis

ualiz

ar

el espa

cio

de

tra

bajo

Win

do

w->

Sh

ow

Vie

w->

Navig

ato

r

Page 20: AC 0 Eclipse

AC AC

Organización de la mesa de trabajo de desarrollo (workbench)

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 20

Barra de menú y barra de herramientas

Línea de estado

Vista de Explorador Vista de Navegador

Vista de Outline Vista de Selección de

Make

Vista de Problemas Vista de Tareas

Vista de Consola Vista de Propiedades

Editor de código fuente

Page 21: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello Paso 1: Crear un nuevo proyecto (Hello) Paso 2: Crear fichero fuente hello.c Paso 3: Editar fuente hello.c Paso 4: Generar ejecutable hello Paso 5: Ejecución Paso 6: Depuración

Ejemplo Hello OpenMP

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 21

Page 22: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 1: Crear un nuevo proyecto

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 22

Page 23: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 1: Crear un nuevo proyecto

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 23

Tecle

am

os n

om

bre

pro

yecto

Sele

ccio

na

mos

pro

yecto

va

cío

Seleccionamos gcc como

toolchain (compilador,

enlazador, ensamblador)

para generar ejecutable

Page 24: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 2: Crear fichero fuente hello.c

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 24

Page 25: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 2: Crear fichero fuente hello.c

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 25

Escribimos nombre

del fuente (no

olvidar extensión

“.c”)

Seleccionamos

plantilla C

Page 26: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 2: Fichero hello.c creado

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 26

Fic

hero

he

llo.c

cre

ado

Page 27: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 3: Editar fuente hello.c

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 27

Page 28: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Generar ejecutable hello

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 28

Para

generar

ejecutable

OJO: “*” significa que el

fichero se ha modificado y

no se ha guardado. Los

cambios no guardados

generalmente no se tendrán

en cuenta al compilar

Page 29: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Generar ejecutable hello

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 29

Para generar

ejecutable sólo

del proyecto

seleccionado

Page 30: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Ejecutable hello generado

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 30

Vista de problemas (problem view): visualiza errores y avisos (warnings)

Eje

cuta

ble

Page 31: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Eliminar warnings

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 31

Para eliminar los avisos

(warnings)

Page 32: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Ejecutable hello release

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 32

Page 33: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 4: Ejecutable hello release

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 33

Eje

cuta

ble

Rele

ase

(p

ara

ha

ce

r pú

blic

o)

Page 34: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 5: Ejecución

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 34

Para

ejecutar

Vista de consola (console view) : para ver lo que se imprime por pantalla

Para generar la perspectiva de depuración

Se ejecuta ejecutable Debug. Usar Run-

>Run Configuration->Main->Search

Projects para cambiar entre ejecutable

Debug y Release

Page 35: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 6: Depuración

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 35

Para ejecutar paso a paso

Page 36: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 6: Depuración en ensamblador

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 36

Para abrir la vista (view)

de ensamblador

Page 37: AC 0 Eclipse

AC AC

Ejemplo Hello Paso 6: Depuración en ensamblador

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 37

Para seleccionar ver código

ensamblador+código fuente

Page 38: AC 0 Eclipse

AC AC

Contenidos

¿Qué es Eclipse? ¿Qué es CDT?

Usuarios de Eclipse

Instalación

Conceptos de Eclipse

Ejemplo Hello

Ejemplo Hello OpenMP Paso 1: Modificar propiedades del proyecto

Paso 2: Añadir la opción -fopenmp

Paso 3: Generar ejecutable

Paso 4: Ejecutar

Paso 5: Depurar

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 38

Page 39: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 1:Modificar propiedades proyecto

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 39

Se incluye la librería de

funciones OpenMP: omp.h

Función OpenMP para fijar el nº de

hebras: omp_set_num_threads()

Directiva OpenMP para ejecución de código en paralelo: parallel

Page 40: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 2: Añadir la opción -fopenmp

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 40

Se añade (tecleando) la opción de compilación –fopenmp en

Properties -> C/C++ Build -> Settings -> GCC C Compiler -> Miscellaneous

Page 41: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 2: Añadir la opción -fopenmp

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 41

Se añade (tecleando) la opción de enlazado –fopenmp en

Properties -> C/C++ Build-> Settings -> GCC C Linker -> Miscellaneous

Page 42: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 3: generar ejecutable

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 42

Se usa -fopenmp en la

generación de objetos por el compilador

Se usa -fopenmp en la

generación del ejecutable por el enlazador

Page 43: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 4: ejecutar

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 43

Las dos hebras creadas ejecutan puts

Page 44: AC 0 Eclipse

AC AC

Ejemplo Hello OpenMP Paso 5: depurar

Seminario 0. Entorno de desarrollo: Plataforma Eclipse 44

La

s h

ebra

s s

e h

an e

jecuta

do e

n p

ara

lelo

en

co

res d

istin

tos (

con

Ind

igo a

pare

ce e

l id

en

tificador

de

l co

re)