Ir al contenido principal

Aprendamos sobre el Lenguaje C++

¿Qué es un Lenguaje de Programación?

Antes de hablar de C++, es necesario explicar que un lenguaje de programación es una herramienta que nos permite comunicarnos e instruir a la computadora para que realice una tarea específica. Cada lenguaje de programación posee una sintaxis y un léxico particular, es decir, forma de escribirse que es diferente en cada uno por la forma que fue creado y por la forma que trabaja su compilador para revisar, acomodar y reservar el mismo programa en memoria.
Existen muchos lenguajes de programación de entre los que se destacan los siguientes:
  • C++
  • Basic
  • Ada 
  • Java 
  • Pascal 
  • Python 
  • Fortran
  • Smalltalk
  • Historia
Pero nos concentraremos en el lenguaje C++

C++ es un lenguaje de programación creado por Bjarne Stroustrup en los laboratorios de At&T en 1983. Stroustrup tomó como base un lenguaje de programación popular en aquella época el cual era C. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
El C++ es un derivado del mítico lenguaje C, cuenta con todas las funcionalidades de C y agrega funcionalidades nuevas como clases, sobrecarga de funciones, herencia entre clases, etc.

Lenguaje C

C es el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. (un sistema parecido a Unix es GNU/Linux), C es una evolución de los lenguajes BCPL —desarrollado por Martin Richards— y B —desarrollado por Ken Thompson en 1970— para el primitivo INIX de la computadora DEC PDP-7.
A finales de los años 60 en la empresa AT&T se comenzó a trabajar en un nuevo lenguaje de programación, exactamente en los Laboratorios Bell.
La historia del origen de C tiene muchas irregularidades y agujeros que distintos expertos han intentado rellenar con sus propios recuerdos, pero que todavía dejan en el aire algunos misterios. La historia más popular es que el lenguaje nació como respuesta al interés que tenían varios programadores de jugar en su empresa a un juego muy popular llamado Space Travel (que había sido creado por uno de estos dos programadores). Se encontraron con que el mainframe de su empresa no era capaz de proporcionarles el rendimiento que necesitaban, dado que estaba demasiado saturado.
C nació realmente en 1978, con la publicación de “The C Programming Languaje”, por Brian Kernig-han y Dennis Ritchie (Prentice Hall, 1978)
Surgió como un lenguaje orientado a la programación de sistemas (System Programming) y de herramientas (Utilities) recomendado sobre todo para programadores expertos, y que no llevaba implementadas muchas funciones que hacen a un lenguaje más comprensible.
Necesitaba ciertas facilidades de programación, incluidas en otros lenguajes pero que C no soportaba, al menos directamente, como son las llamadas clases y objetos, principios usados en la programación actual. Para ello rediseñó C, ampliando sus posibilidades pero manteniendo su mayor cualidad, la de permitir al programador en todo momento tener controlado lo que está haciendo, consiguiendo así una mayor rapidez que no se conseguiría en otros lenguajes.
C++ pretende llevar a C a un nuevo paradigma de clases y objetos con los que se realiza una comprensión más humana basándose en la construcción de objetos, con características propias solo de ellos, agrupados en clases. Es decir, si yo quisiera hacer un programa sobre animales, crearía una clase llamada animales, en la cual cada animal, por ejemplo un pato, sería un objeto, de tal manera que se ve el intento de esta forma de programar por ser un fiel reflejo de cómo los humanos (en teoría) manejamos la realidad.
Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programación más utilizados en la industria del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades.
Prácticamente todos los fabricantes de sistemas operativos (Windows, UNIX, Linux, MacOS, Solaris…), soportan diferentes tipos de compiladores de lenguaje C y en muchas ocasiones distribuciones gratuitas bajo cualquiera de los sistemas operativos citados.
Todos los compiladores de C++ pueden ejecutar programas escritos en lenguaje C, preferentemente si cumplen el estándar ANSI C.


Historia del lenguaje C++

Stroustrup originalmente llamo a su lenguaje “C with classes” (C con clases), su meta era agregar programación orientada a objetos al lenguaje C. El primer compilador de este lenguaje fue Cfront (un compilador escrito en C with classes) derivado del compilador de lenguaje C llamado CPre, aunque en 1993 se dejaría de usar por la dificultad para agregar nuevas funciones.

En 1983 el nombre del lenguaje fue cambiado de “C with classes” a “C++”. Podemos entender con esto la imagen que tenía Stroustrup de su lenguaje como una mejora del lenguaje “C” (al ser ++ un incrementador de variable).
Se han presentado varias versiones de C++ y su evolución se estudió en [Stroustrup 94]. Las características más notables que han ido incorporándose a C++ son: herencia múltiple, genericidad, plantillas, funciones virtuales, excepciones, etc.
C++ ha ido evolucionando año a año y como su autor ha explicado: “evolucionó siempre para resolver problemas encontrados por los usuarios y como consecuencia de conversaciones entre el autor, sus amigos y sus colegas”.
Para 1985 Stroustrup publicó su referencia al lenguaje “The C++ Programming Language” (“El lenguaje de programación C++), el cual fue muy importante debido a la falta de estandarización del lenguaje recién creado. En 1990 se publicó “The Annotated C++ Reference Manual” (Manual de referencia anotada de C++) y ese mismo año salió al mercado el compilador “Turbo C++” (desarrollado por Borland Software Corporation) que agregaba una gran cantidad de nuevas librerías al lenguaje, ayudando a su desarrollo. El proyecto de librerías “Boost” agrego nuevas funcionalidades al lenguaje tales como aleatorización comprehensiva y una nueva librería de tiempo.


C++ comenzó su proyecto de estandarización ante el comité ANSI y su primera referencia es “The Annotated C++ Reference Manual” [Ellis 89]12. En diciembre de 1989 se reunió el comité X3J16 del ANSI por iniciativa de Hewlett Packard.
En junio de 1991, a la estandarización de ANSI se unió ISO (International Organization for Standardization) con su propio comité (ISO-WG-21), creando un esfuerzo común ANSI/ISO para desarrollar un estándar para C++.
Estos comités se reúnen tres veces al año para aunar sus esfuerzos y llegar a una decisión de creación de un estándar que convirtiera a C++ en un lenguaje importante y de amplia difusión.
En 1995, el Comité publicó diferentes artículos (“working paper”) y en abril de ese año, se publicó un borrador del estándar (“Comité Draft” o simplemente “CD”) para su examen público. En diciembre de 1996 se lanzó una segunda versión (CD2) a dominio público.
Estos documentos no sólo refinaron la descripción de las características existentes, de C++ sino que también se amplió el lenguaje con excepciones, identificación en tiempo de ejecución (RTII, run_time type identification), plantillas (templates) y la biblioteca estándar de plantillas STL (Standard Template Library).
Stroustrup publicó en 1997 la tercera edición de su libro “The C++ Programming Language”. Este libro sigue el estándar ANSI/ISO C++.
En 1998 el “Comité de estándares de C++”  publicó su primera estandarización internacional  ISO/IEC 14882:1998 (conocida también como C++98) la cual, al tener varios problemas, fue actualizada en 2003 (C++03). En 2011 se terminó y publicó la nueva estandarización del lenguaje (C++11).
C++ es un lenguaje orientado a objetos que se ha hecho muy popular y con una gran difusión en el mundo del software y actualmente constituye un lenguaje estándar para programación orientada a objetos, aunque también puede ser utilizado como lenguaje estructurado al estilo de C si se desea trabajar al modo clásico de programación estructurada, sobre todo si se desea trabajar con algoritmos y estructura de datos.




Herramientas Necesarias
Las principales herramientas necesarias para escribir un programa en C++ son las siguientes:
  • Un equipo ejecutando un sistema operativo.
  • Un compilador de C++
  • Windows MingW (GCC para Windows) o MSVC (compilador de microsoft con versión gratuita)
  • Linux (u otros UNIX): g++
  • Mac (con el compilador Xcode)
  • Un editor cualquiera de texto, o mejor un entorno de desarrollo (IDE)
  • Windows:
  • Microsoft Visual C++ (conocido por sus siglas MSVC). Incluye compilador y posee una versión gratuita (versión express)
  • Bloc de notas (no recomendado)
  • Editor Notepad++
  • DevCpp (incluye MingW - en desuso, no recomendado, incluye también un compilador)
  • Code::Blocks
  • Linux (o re-compilación en UNIX):
  • Gedit
  • Kate
  • KDevelop
  • Code::Blocks
  • SciTE
  • GVim
  • Mac:
  • Xcode (con el compilador trae una IDE para poder programar)
  • Tiempo para practicar
  • Paciencia

Adicional

  • Inglés (Recomendado)
  • Estar familiarizado con C u otro lenguaje derivado (PHP, Python, etc).

Es recomendable tener conocimientos de C, debido a que C++ es una mejora de C, tener los conocimientos sobre este te permitirá avanzar mas rápido y comprender aun mas. También, hay que recordar que C++, admite C, por lo que se puede programar (reutilizar), funciones de C que se puedan usar en C++.


Aunque No es obligación aprender C, es recomendable tener nociones sobre la programación orientada a objetos en el caso de no tener conocimientos previos de programación estructurada. Asimismo, muchos programadores recomiendan no saber C para saber C++, por ser el primero de ellos un lenguaje imperativo o procedimental y el segundo un lenguaje de programación orientado a objetos.


Bibliografía










Comentarios