Introducción a la Programación en C++

>> //seccion/c/ -- 2 comentario /// Agregado el 2003-12-31 @ Por MasterChowl

Una pequeña Introduccion al C++

C++ nació básicamente como una extensión al lenguaje "C", de los laboratorios Bell de AT&T, el cual fue desarrollado en 1969-1973 al mismo tiempo que en los mismos laboratorios se desarrollaba el sistema operativo Unix. C a su vez esta basado o tiene sus bases en el lenguaje "B", desarrollado por Ken Thompson especialmente pensando en Unix. Y también "B" provenía de BCPL, desarrollado en los 60's por Martin Richards en el MIT.

En 1971 Dennis Ritchie en los laboratorios Bell extendió el lenguaje "B", agregándole tipos, en lo que se llamo el nuevo "B" (NB-NewB), estas extensiones tuvieron gran influencia de ALGOL68. Después de reestructurar el lenguaje y rescribir el compilador surgió el nuevo lenguaje denominado "C".

En 1983, con varias versiones de "C" alrededor del mundo, la ANSI estableció un comité que se encargaría de publicar un estándar de "C" para 1989.

En 1983, Bjarne Stroustrup de Laboratorios Bell creo "C++", el cual fue diseñado también para la plataforma Unix, y es una mejora del "C", que se enfoco principalmente a agregar características que soportaran el nuevo (en esa época) paradigma de la orientación a objetos, permitiendo a los programadores mejorar la calidad del código, haciendo mas fácil de crear código reutilizable.

En la actualidad existe un comité de la ANSI el cual se encargó de crear un estándar para C++, el cual fue publicado en 1998 y que continua revisando nuevas mejoras para el lenguaje. A pesar de esto existen diferentes versiones en una misma plataforma y en diferentes plataformas, las cuales no cumplen por completo con el estándar ANSI y/o que agregan funcionalidad que no se ha estandarizado, por lo cual hay que tener en cuenta el compilador y la plataforma en la cual se utilizará C++.

Los diseñadores de C++ crearon el lenguaje con desde el punto de vista de que el programador sabe lo que hace. Los beneficios de esto son pocas limitaciones en la manera en que un desarrollador ataca un problema y la desventaja que es fácil escribir código que maneja mal la memoria ocasionando errores y/o que puede ocasionar un "cash" en el sistema operativo.

» Principales Características de C++


C++ es entonces un lenguaje que contiene tanto características de un lenguaje procedural clásico como construcciones de estilo orientado a objetos, y a diferencia de los primeros lenguajes orientados objetos, los cuales eran muy lentos e ineficientes, C++ fue pensado para mantener la eficiencia y la rapidez.

C++ es un lenguaje de propósito general que soporta el paradigma orientado a objetos, contiene 74 palabras reservadas y fundamentalmente soporta la programación orientada a objetos a través de herencia, polimorfismo parametrizado (plantillas), polimorfismo ad hoc (Coerción de tipos y sobrecarga de funciones) y encapsulamiento (al manejar clases y objetos).

Otras características importantes de C++ son el manejo de excepciones, la biblioteca estándar y la biblioteca de plantillas estándar, esta ultima provee funcionalidad para el uso y manejo de clases contenedoras como vectores, strings, conjuntos, maps, entre otros.

» Influencias de C++


Son muchos los lenguajes de los que C++ ha adquirido conceptos. En el siguiente esquema podemos ver estas influencias:
C: Programación Estructurada
Algol 68: Sobrecarga, Declaraciones en Instrucciones no separadas
ML: Excepciones
CLU: Módulos con parámetros
ADA: Patrones y excepciones
Simula 67: Clases, Clases derivadas y Funciones virtuales

» Ventajas de C++


Las principales ventajas de C++ son:
- Los programas nuevos pueden ser desarrollados en menos tiempo porque se puede rehusar el - código
- Crear y usar nuevos tipos de datos es más fácil que en otros lenguajes como C
- El manejo de memoria en C++ es mas fácil y transparente Los programas tendrán menos - -- - - errores porque C++ usa una sintaxis y chequeo de tipos más estricto
- Orientación a objetos.
- Sobrecarga de operadores y funciones
- Rapidez
- Genera programas compactos
- Argumentos de funciones por default