¿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:
Existen muchos lenguajes de programación de entre los que se destacan los siguientes:
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.
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.
Comentarios
Publicar un comentario