UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y...

10
09/02/2016 1 Titulación: Graduado en Ingeniería Electrónica Industrial y Automática Área: Ingeniería de Sistemas y Automática Departamento de Electrónica Automática e Informática Industrial Escuela Universitaria de Ingeniería Técnica Industrial UNIVERSIDAD POLITÉCNICA DE MADRID E.U.I.T. Industrial Informática Industrial y Comunicaciones Tema 1. Introducción a la POO y C++ 1 Miguel Hernando Gutiérrez ASIGNATURA: Informática Industrial y Comunicaciones TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez PREHISTORIA DE C++ 1970 Ken Thompson, durante su trabajo en el d ll d UNIX B ll Lb l desarrollo de UNIX en Bell Labs, crea el lenguaje B. Era un lenguaje interpretado pero que ya empieza a incluir las características propias de C. 1971 Dennis Ritchie en los Bell Labs comienza a 2 Dennis Ritchie, en los Bell Labs, comienza a desarrollar un compilador de B de forma que se pudieran generar ejecutables. Incluye ciertas modificaciones al lenguaje, y este “new B” pasa a denominarse C.

Transcript of UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y...

Page 1: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

1

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Titulación:GraduadoenIngenieríaElectrónicaIndustrialyAutomáticaÁrea:IngenieríadeSistemasyAutomáticaDepartamento deElectrónicaAutomáticaeInformáticaIndustrialEscuelaUniversitariade IngenieríaTécnicaIndustrial

UNIVERSIDADPOLITÉCNICADEMADRIDE.U.I.T.Industrial

Informática Industrial y ComunicacionesTema 1. Introducción a la POO y C++

1

Miguel Hernando Gutiérrez

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

PREHISTORIA DE C++

1970Ken Thompson, durante su trabajo en el

d ll d UNIX B ll L b ldesarrollo de UNIX en Bell Labs, crea el lenguaje B. Era un lenguaje interpretado pero que ya empieza a incluir las características propias de C.

1971Dennis Ritchie en los Bell Labs comienza a

2

Dennis Ritchie, en los Bell Labs, comienza a desarrollar un compilador de B de forma que se pudieran generar ejecutables. Incluye ciertas modificaciones al lenguaje, y este “new B” pasa a denominarse C.

Page 2: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

2

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

PREHISTORIA DE C++

19731973UNIX se escribe casi enteramente en CRitchie, agrega más funcionalidades al lenguaje con la inclusión de vectores y punteros y haciéndolo portable al situarse en un nivel medio (ni de alto nivel, ni especializado).Junto con Brian Kernigan, publica“The C Programming Lenguage”, que se convierte en un estandar de hecho hasta la

3

convierte en un estandar de hecho hasta la publicación formal del estandar ANSI-89.

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Nacimiento de C++

1979

En los 70 auge del concepto de POO, aunque se consideraba no eficiente.

1979Bjarne Stroustrup, de Bell labs, comienza el desarrollo del lenguaje C++ bajo un nombreprimitivo de “C con clases”.

1984El nombre de C++ se adopta formalmente comonombre del nuevo lenguaje haciendo uso del operador incremento tan característico de C.

4

operador incremento tan característico de C.

1985Se publica “The C++ Programming Language”.

LA BARBA HACE BUENOS A LOS PROGRAMADORES

Page 3: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

3

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Evolución de C++

5

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Evolución de C++

6

Page 4: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

4

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Lenguajes más relevantes

•JAVA: es un lenguaje basado en clases, orientado a objetos desarrollado por Sun Microsystems en 1990. Actualmente soportado  por Oracle es uno de los lenguajes más demandados y se puede considerar un estándar en la empresa, en contenido web en juegos y en aplicaciones de móviles. Basicamente ha tenido un especial impulso por utilizar Android un pseudojava como lenguaje nativo. Lo más importante de Java es que está diseñado para trabajar en múltiples plataformas, de forma que no importa en que sistema operativo se ejecuta el programa.

•C: Es un leguaje de propósito general, procedural, desarrollado a comienzos de los 70, y se puede considerar el más antiguo y 

7

extensamente utilizado. En el fondo es la herramienta básica que se utiliza para construir otros lenguajes como es Java, C#, JavaScript o Python. Se utiliza extensamente para construir sistemas operativos y para sistemas embebidos en donde no existe competidor. Es el lenguaje de las máquinas. Dado que es la base de casi todos los lenguajes es importante aprender C y C++ antes que moverse a otros más populares.

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Lenguajes más relevantes

C++: la razón de ser del lenguaje es impulsar C al paradigma de la programación orientada a objetos. Muchísimo software está construido en C++, en general todos los que requieran de una alta eficiencia. Se usa básicamente para software de sistemas de aplicaciones videojuegos y aplicaciones tanto de servidores como desistemas, de aplicaciones, videojuegos y aplicaciones tanto de servidores como de clientes en particular las que requieran de alta potencia.

C#: (c-sharp) es un lenguaje desarrollado por Microsoft que intenta combinar los principios de C, C++ y Java, y se usa básicamente en el desarrollo de programas para Windows. Su mayor inconveniente es precisamente el constituir un lenguaje asociado una plataforma.

Objetive-C : es un lenguaje de propósito general orientado a objetos y utilizado principalmente por los sistemas operativos de Apple. Tanto OS X como iOS así

8

p p p p ppcomo sus correspondientes APIs están en este lenguaje lo cual a provocado su moda en consonancia con el avance de iphone y los productos Apple. Es un lenguaje de la década de los 80 en contra de lo que mucha gente piensa, y podría decirse que es más primitivo en cuanto a sintaxis y concepto que C++. Es un superconjunto estricto de C por lo que es 100% compatible el código C con este. Actualmente en abandono por SWIFT

Page 5: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

5

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Lenguajes más relevantes

PHP: Su nombre proviene del acrónimo Procesador de Hypertexto. Es un lenguaje interpretado pensado para correr en el servidor, libre, que fue diseñado específicamente para el desarrollo de páginas web dinámicas (es decir generaciónespecíficamente para el desarrollo de páginas web dinámicas (es decir generación de código html en base a unos contenidos cambiantes) y desarrollo de aplicaciones. Es un código directamente incluible en una página de código HTML, sin necesidad de residir en una serie de ficheros externos, lo cual lo ha convertido en especialmente popular como lenguaje de desarrollo de páginas web. Entre otros, es la base de Wordpress, Codeacademy o Facebook.

Python es un lenguaje de alto nivel, interpretado, en principio pensado para trabajar en la parte del servidor de los sitios web o en aplicaciones de móviles. Se lo considera un lenguaje sencillo para principiantes debido a su fácil lectura y su

9

g j p p p ysintaxis compacta, de tal forma que en muy pocas líneas se pueden hacer muchas cosas que en otros de los lenguajes anteriores implican mucho más código. Actualmente destaca su uso en las webs y aplicaciones de Instagram, Pinterest, Biicode, y hay desarrollado un potente y conocido entorno de desarrollo web Django. Es utilizado por Google, Yahoo y la Nasa como parte de su código.

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Lenguajes más relevantes

Ruby. Es un lenguaje dinámico, interpretado, orientado a objetos, pensado para el desarrollo de páginas web dinámicas. Su diseño busca la sencillez y facilidad de escritura. Es la base del entorno Ruby on Rails, que se utiliza en Spotify, Github y Scribd. Al igual que Python, es un buen lenguaje para aquellos que comienzan.

JavaScript. Es un lenguaje interpretado tanto para el cliente como para el servidor, desarrollado por Netscape y que deriva mucha de su sintaxis de C. En contra de lo que indica el nombre, no es Java y su desarrollo es paralelo. Puede usarse al igual que este ultimo para multiples plataformas por medio del intérprete del navegador, y se considera esencial para el desarrollo de la parte más interactiva y autónoma d l f i b Ulti t h f id f t i t d d

10

de las funciones web. Ultimamente ha sufrido un fuerte incremento dado que permite por la potencia de los navegadores el desarrollo de juegos que por su naturaleza funcionan tanto en ordenadores de escritorio como en dispositivos móviles. Está embebido en Chrome, en Safari, y en los intérpretes de Adobe

Page 6: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

6

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

TIOBE (Páginas, Cursos y Estudiantes en la web)

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

TIOBE 2016 (Páginas, Cursos y Estudiantes en la web)

Page 7: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

7

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

TIOBE

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Languaje Popularity Index(Repositorios + búsquedas + foros)

Page 8: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

8

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

PyPL

(Google trends. Nº Visitas)

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

IEEE 2014 (W: web; M: Móviles; D: Escritorio; E: Sistemas embebidos)

16

Page 9: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

9

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

¿Qué lenguaje es mejor?•Gran pregunta, y que levanta pasiones•Equipo de futbolq p•Cada cual tiene una orientación específica•Para las máquinas: C•C++, paradigmático e incluye C

17

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

18

Page 10: UNIVERSIDAD POLITÉCNICA ASIGNATURA: Introducción a C++ y ...€¦ · TEMA: Introducción a C++ y POO FECHA: Febrero de 2016 Profesor: Miguel Hernando Gutiérrez Lenguajes más relevantes

09/02/2016

10

ASIGNATURA: Informática Industrial y ComunicacionesTEMA: Introducción a C++ y POOFECHA: Febrero de 2016Profesor: Miguel Hernando Gutiérrez

Programa