Lenguaje de Programación C++
2. Lenguaje de
Programación C++
C++ es un lenguaje
de programación diseñado a
mediados de los años 1980 por Bjarne Stroustrup. 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.
2.1 Historia
La historia
del lenguaje de programación C++ comienza a principios de los años 70, con un
programador de nombre Dennis Ritchie que trabajaba en los laboratorios de
AT&T Bell. Trabajando con un lenguaje llamado BCPL inventado por Martin
Richards (que luego influyó para crear el B de Ken Thompson), Dennis deseaba un
lenguaje que le permitiese manejar el hardware de la misma manera que el
ensamblador pero con algo de programación estructurada como los lenguajes de
alto nivel. Fue entonces que creó el C que primeramente corría en computadoras
PDP-7 y PDP-11 con el sistema operativo UNIX. Pero los verdaderos alcances de
lo que sería éste, se verían poco tiempo después cuando Dennis volvió a
escribir el compilador C de UNIX en el mismo C, y luego Ken Thompson (diseñador
del sistema) escribió UNIX completamente en C y ya no en ensamblador. Al
momento de que AT&T cedió (a un precio bastante bajo) el sistema operativo
a varias universidades, el auge de C comenzaba. Cuando fueron comerciales las
computadoras personales, empezaron a diseñarse varias versiones de compiladores
C, éste se convirtió en el lenguaje favorito para crear aplicaciones.
En 1983, el
Instituto Americano de Normalización (ANSI) se dio a la tarea de estandarizar
el lenguaje C, aunque esta tarea tardó 6 años en completarse, y además con la
ayuda de la Organización Internacional de Normalización (ISO), en el año de
1989 definió el C Estándar. A partir de éste, se dio pie para evolucionar el
lenguaje de programación C. Fue en los mismos laboratorios de AT&T Bell,
que Bjarnes Stroutstrup diseñó y desarrolló C++ buscando un lenguaje con las
opciones de programación orientada a objetos. Ahora el desarrollo del estándar
de C++ acaparaba la atención de los diseñadores. En el año 1995, se incluyeron
algunas bibliotecas de funciones al lenguaje C. Y con base en ellas, se pudo en
1998 definir el estándar de C++. Algunas personas podrían pensar que entonces
C++ desplazó a C, y en algunos aspectos podría ser cierto, pero también es
cierto que algunas soluciones a problemas requieren de la estructura simple de
C más que la de C++, C generalmente es usado por comodidad para escribir
controladores de dispositivos y para programas de computadoras con recursos
limitados. La base del lenguaje fue creada por programadores y para
programadores, a diferencia de otros lenguajes como Basic o Cobol que fueron
creados para que los usuarios resolvieran pequeños problemas de sus ordenadores
y el segundo para que los no programadores pudiesen entender partes del
programa. C++ es un lenguaje de nivel medio pero no porque sea menos potente
que otro, sino porque combina la programación estructurada de los lenguajes de
alto nivel con la flexibilidad del ensamblador. El nombre "C++" fue propuesto por Rick Mascitti
en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un
laboratorio científico. Antes se había usado el nombre "C con
clases". En C++, la expresión "C++" significa "incremento
de C" y se refiere a que C++ es una extensión de C.
2.2 Características
Las
principales características del Lenguaje C ++son:
-Es un lenguaje imperativo orientado a objetos derivado del C.
-Nació para añadir cualidades
y características de las que carecía el lenguaje C.
-Cuenta con nuevos tipos de
datos, clases, plantillas, mecanismo de excepciones, sistema de espacios de
nombres, funciones inline, sobrecarga de operadores, referencias, operadores para manejo de memoria persistente, y algunas
utilidades adicionales de librería.
-Permite la programación
estructurada, por eso se dice que es un lenguaje híbrido.
-En este lenguaje el programador tiene el control total de lo que está
haciendo, permitiendo una máxima eficiencia al no incorporar verificación de
errores en tiempo de ejecución.
-Es un lenguaje de nivel intermedio, pudiéndose utilizar tanto para
escribir software de bajo nivel, como drivers y componentes de sistemas
operativos, como para el desarrollo rápido de aplicaciones, según el marco de
trabajo con el que se disponga, como VCL de Borland C++ Builder.
-Sus compiladores generan código nativo con un alto grado de optimización
en memoria y velocidad, lo que lo convierte en uno de los lenguajes más
eficientes.
-A través de los patrones de clase y de funciones, los templates, el
lenguaje apoya el desarrollo de clases genéricas con parámetros de tipo y de
tamaño.
-La sobrecarga de operadores. Esto significa que a los operadores
intrínsecos del lenguaje se les puede redefinir la semántica: se pueden
escribir funciones que en vez de tener un nombre, se asocian a un operador, que
debe tener por lo menos un parámetro de tipo clase.
-Es fundamental utilizar las clases de STL, entre las que se encuentra
string, la clase que encapsula la clásica cadena de caracteres terminada en
cero heredada de C. Esto posibilita manipular cadenas de caracteres de la misma
forma en que se lo hace en otros lenguajes de programación que tienen un tipo
de datos string integrado.
-Sus extensiones que incluye CodeGear en su IDE Borland C++ Builder
incorporan al lenguaje el modelo de eventos y propiedades, lo que ayuda
bastante a generar código más claro y elegante.
-En C++ la asignación y liberación de memoria dinámica es responsabilidad
del programador.
-Se pueden construir elegantes mecanismos y jerarquías de clase que
controlen correctamente la creación y destrucción de objetos, como así también
se pueden escribir programas que no lo hagan tan bien, dejando bloques de
memoria perdidos.
-Una
de sus particularidades es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales.
2.3 Versiones
Algunas de
las versiones del lenguaje de programación C++ son: C++; C++98; C++03; C++TR1;
C++11 ; C++14 ; C++17
La última versión estable fue ISO/IEC 14882:2014
Comentarios
Publicar un comentario