Lenguaje C++ – Introducción

Lenguaje C++ – Introducción

¿Por qué no empezar con el popular Java? ¿O el tan elogiado Python? ¿O Swift para hacer aplicaciones para el iPhone “rápidamente”?

Pienso que cualquier lenguaje que se aborde es un buen punto de partida, siempre que se haga con método y rigor, al menos cuando es el primero que estudiamos es muy importante.

Sin embargo, desde mi punto de vista algunas de las razones para empezar con C++ y no con otro lenguaje de programación son las siguientes:

  1. Es lo más cercano a C estándar, el cual nos abre la puerta al mundo del bajo nivel y de la programación de sistemas evitando la necesidad de usar ensamblador, de modo que una eventual transición puede resultar más cómoda que desde cualquier otro lenguaje a C.
  2. C++ es un lenguaje multiparadigma: Soporta programación genérica (Plantillas), estructurada, modular, abstracción de datos y orientada a objetos (1). Lo cual nos permitirá familiarizarnos con cualquier otro lenguaje sin demasiada complicación.
  3. Amplia disponibilidad de plataformas de trabajo. Prácticamente hay por lo menos un compilador para cada arquitectura y sistema operativo existente. Además debemos sumar la disponibilidad de compiladores en línea, lo cual elimina prácticamente cualquier barrera para poder programar, en cualquier momento, en cualquier lugar, en cualquier dispositivo.
  4. A partir de C++ se desarrollaron muchos de los más importantes y poderosos lenguajes de programaciones modernos. Java, Python, Swift, C#, PHP y un largo etcétera, comparten en mayor o menor medida, sintaxis, nomenclatura estructuras de control, entre otras características. De modo que abordar esos lenguajes será relativamente fácil una vez que se utilice C++ con comodidad.
  5. C++ nos permte hacer lo que C (programación a bajo nivel) y podemos programar a alto nivel cualquier cosa que necesitemos. Algo que no necesariamente permiten lenguajes más modernos.
  6. Finalmente y no menos importante, C++ sigue siendo uno de los lenguajes de programación mejor pagados

No me extenderé más, creo que esas razones tienen el suficiente peso como para seguir ahondando en el tema.

Historia de C++

C++ fue creado por Bjarne Stroustrup en los Laboratorios Bell (dónde más pudo ser…) desde 1979 y fue presentado formalmente el 14 de octubre de 1985, derivado, como casi siempre, de una necesidad del propio creador,

C++ se benefició de los siguientes lenguajes:

  • C: Extendió C heredando su potencia de bajo nivel ANSI C++ de hecho un superconjunto de C
  • Simula 67: es la principal fuente de inspiración de C++ (Según su autor), de aquí se heredó el concepto de Clase
  • Algol-68: Sobrecarga de operadores
  • ADA y CLU: Plantillas y manejo de excepciones
  • Smalltak: Abstracción y herencia
  • Modula-2: Capacidad de organización

Con respecto a C, tal vez lo más importante que se deba decir es que no hay algo que se pueda hacer en C que no se pueda hacer con C++(2).

Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

Compiladores de C++

Para programar cómodamente en C++ es conveniente contar con un compilador instalado de forma local, aunque cabe señalar que existen compiladores en línea que nos permiten compilar programas en C++ siempre y cuando se cuente con una conexión a Internet. Esta opción puede ser útil si nos encontramos aburridos y queremos practicar en lugar de mantener pláticas intrascendentes, por ejemplo.

Compiladores en línea

Alguno de los compiladores en línea que podemos utilizar son:

C++ Shellhttp://cpp.sh/ Simple pero eficiente compilador, ligero, sin adornos

C++ Shell
C++ Shell

GDB Online https://www.onlinegdb.com/, soporta C, C++, Java, Python 3 y PHP

GDBOnline
GDBOnline

JDoodle https://www.jdoodle.com/online-compiler-c++ Permite programar sin los indicadores de ámbito para la librería estándar

JDoodle
JDoodle

CodeChef https://www.codechef.com/ide Permite compilar una amplia variedad de lenguajes de programación, pero tiene el problema de que tiene límites de transferencia que pueden impedir que puedas utilizarlo (como se muestra en el recuadro rojo)

codechef
codechef

TutorialsPoint https://www.tutorialspoint.com/compile_cpp_online.php Otro compilador en línea multilenguaje con el plus de contar con una amplia variedad de extensos tutoriales(en inglés). Este quizá sea uno de los más completos IDE disponibles en línea permitiendo incluso trabajar con proyectos de más de un archivo.

TutorialsPoint
TutorialsPoint

Nota acerca de los compiladores online

Cuando utilices uno de estos compiladores notarás que algunos compiladores no definen lo que se denomina nombre de espacio,  std en este caso, lo que provocará que, o lo definimos manualmente, o deberemos utilizar los streams de datos utilizando los identificadores de ámbito (::), no importa sino entiendes en este momento éste párrafo. De hecho acostúmbrate, el la programación puede ser común hacer algo, después comprenderlo.

Compiladores locales

En el caso de utilizar un compilador en el equipo local, deberemos descargar un compilador e instalar la versión correcta de acuerdo a nuestro sistema operativo, actualmente también hay que tomar en cuenta la arquitectura, considera que algunos compiladores para CPU’s de 32 bit no trabajarán en uno de 64 bit y viceversa

Para Windows y Linux podemos utilizar

DevCpp (Para arquitectura de 32 bits, en Windows, en Linux no se ha probado), Actualmente no recibe actualizaciones mayores dado que el desarrollador inicial ha abandonado el proyecto

CodeBlocks con el compilador de C++ Se ha probado con éxito en Windows XP, 7, 8 y 10 (32 y 64 bit), también hay versiones disponibles para Linux (varias distros) y MacOS. Se sugiere que descargues el binario: codeblocks-16.01mingw-setup.exe

Auque reconozco la calidad de los productos que la extinta Borland, no recomiendo utilizar los antiguos IDE Turbo C++ y Borland C++ básicamente por el tiempo de abandono que tienen y por la gran dependencia de muchas librerías específicas de Borland que no son compatibles con compiladores más recientes, dificultando la portabilidad de los programas realizados en estas plataformas.

Para el desarrollo profesional tarde o temprano tendrás que utilizar una solución propietaria (de paga), antes de llegar a este nivel, puedes aprovechar Visual Studio de Microsoft, la versión Community es gratuita y te prepara antes de dar el salto. Es una buena opción que vale la pena consideres. Sin embargo en etapas tempranas puede resultar “demasiado”, por lo que no lo sugiero si apenas empiezas.

Nuestra elección

Para este mini curso utilizaré como IDE/Compilador en línea:

TutorialsPoint

Y cuando los programas se hagan más complejos, utilizaré

CodeBlocks con el compilador GCC/G++

Codeblocks
Codeblocks

Sin embargo nada te impide utilizar el IDE que más te agrade, incluso tu bloc de notas puede ser suficiente.

 

Antes de empezar (ahora sí) para que reflexiones un poco te dejo la respuesta de Bjarne Stroustrup a la pregunta realizada por la revista Wired con motivo del 25 aniversario del lenguaje C++

Wired.com: ¿Algún consejo para los programadores jóvenes?

Stroustrup: “Supongo que dar consejos es más fácil comparado con hacer caso a ellos. Conoce sus elementos fundamentales (algoritmos, estructura de datos, arquitectura de las computadoras y sistemas), y aprende varios lenguajes de programación al punto que puedas usarlos como cualquier otro idioma.

Conoce tu campo (que no tenga que ver con el cómputo), adecuadamente: matemáticas, biología, historia, óptica, lo que sea. Trata de comunicarte efectivamente verbal y por escrito. Gasta una irracional cantidad de tiempo en tópicos verdaderamente difíciles. Trata de hacer algo que haga la diferencia en nuestro mundo.” (3)

 

Por Roberto C. González
Para Ethical Hack


¿Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada a la que has leído en este artículo, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

Ethical hack
Ethical hack

Referencias

(1) C++ estándar
By Enrique Hernández Orallo, José Hernández Orallo, Ma Carmen Juan Lizandra, p 3. Editorial Paraninfo
(2) C++ estándar
By Enrique Hernández Orallo, José Hernández Orallo, Ma Carmen Juan Lizandra, p 9. Editorial Paraninfo
(3) https://www.wired.com/2010/10/1014cplusplus-released/all/1#ixzz12OBqPT5L consultado el 04/09/2017

Fuente Imágenes:

“Bjarne Stroustrup”: by Bjarne Stroustrup’s homepage
“C++ Shell”: Imagen tomada de CShell
“GDB Online”: Imagen tomada de GDB Online 

“JDoodle “: Imagen tomada de JDoodle 
“CodeChef”: Imagen tomada de CodeChef 
“TutorialsPoint “: Imagen tomada de TutorialsPoint
“Codeblocks “: Imagen by Nala Systems

Licencia de Creative CommonsLenguaje C++ - Introducción by Roberto C. González para Ethical Hack is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
Comentarios de Facebook

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.