Beruflich Dokumente
Kultur Dokumente
ALUMNO: Jonattan Torres Quevedo CURSO: Estructura de Datos TEMA: Historia del Lenguaje C++ DOCENTE: Ing. Leif Jhonattan Arvalo Arvalo
FECHA: 01/04/11
INTRODUCCION
En la actualidad, el C++ es un lenguaje verstil, potente y general. Su xito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisin y eficiencia. Adems, ha eliminado algunas de las dificultades y limitaciones del C original. La evolucin de C++ ha continuado con la aparicin de Java, un lenguaje creado simplificando algunas cosas de C++ y aadiendo otras, que se utiliza para realizar aplicaciones en Internet. Hay que sealar que el C++ ha influido en algunos puntos muy importantes del ANSI C, como por ejemplo en la forma de declarar las funciones, en los punteros a void, etc. En efecto, aunque el C++ es posterior al C, sus primeras versiones son anteriores al ANSI C, y algunas de las mejoras de ste fueron tomadas del C++.
2.- Otra diferencia entre C y C++ es que en un programa de C++ todas las funciones deben estar en forma de prototipo, en C los prototipos se recomiendan, pero son opcionales. Tambin si una funcin de C++ es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un valor, en C no es necesario que se devuelva.
3.- Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas solo al principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier punto. Aunque es conveniente realizarlo siempre al comienzo de la funcin. 4.- C es un lenguaje libre estandarizado por ISO MUY PEQUEO que admite programacin estructurada (la de toda la vida), nada ms. til en programacin de microchips, sistemas operativos, drivers y programacin web. 5.- C++ es un lenguaje libre estandarizado por ISO MUY GRANDE, que admite: Programacin estructurada (la de toda la vida), la totalidad de la POO (objetos, herencia simple, herencia mltiple, polimorfismo, upcasting, downcasting, RTTI, interfaces, clases abstractas, clases amigas, operadores, sobrecarga... y mil cosas ms avanzadas), programacin genrica (plantillas, STL, conceptos de contenedores, estructuras de datos genricas, <b>metaprogramacin</b>... es una programacin que no dispone ningn otro lenguaje mayoritario por el momento)... y otras caractersticas ms avanzadas como los punteros inteligentes, programacin lambda, programacin "fsica"... Tambin se usa como programacin por eventos (MFC, Qt, Gtk y otras GUIs).
Libreras estticas
Denominadas tambin libreras-objeto, son colecciones de ficheros objeto (compilados) agrupados en un solo fichero de extensin .lib, .a, etc. junto con uno o varios ficheros de cabecera (generalmente .h).
Libreras dinmicas
Otra forma de aadir funcionalidad a un ejecutable son las denominadas libreras de enlazado dinmico (repasar en 1.4.4 el significado de "enlazado dinmico"), generalmente conocidas como DLLs, acrnimo de su nombre en ingls ("Dynamic Linked Library"). Estas libreras se utilizan mucho en la programacin para el SO Windows. Este Sistema contiene un gran nmero de tales libreras de terminacin .DLL, aunque en realidad pueden tener cualquier otra terminacin .EXE, .FON, .BPI, .DRV etc. Cualquiera que sea su terminacin, de forma genrica nos referiremos a ellas como DLLs, nombre por el que son ms conocidas.
Las libreras estticas quedan incluidas en el ejecutable, mientras las dinmicas son ficheros externos, con lo que el tamao de la aplicacin (nuestro ejecutable) es mayor en el primer caso que en el segundo. Esto puede ser de capital importancia en aplicaciones muy grandes, ya que el ejecutable debe ser cargado en memoria de una sola vez [3]. Las libreras dinmicas son ficheros independientes que pueden ser invocados desde cualquier ejecutable, de modo que su funcionalidad puede ser compartida por varios ejecutables. Esto significa que solo se necesita una copia de cada fichero de librera (DLL) en el Sistema. Esta caracterstica constituye la razn principal de su utilizacin, y es tambin origen de algunos inconvenientes, principalmente en sistemas como Windows en los que existen centenares de ellas.
<limits> <list> <locale> <map> <memory> <new> <numeric> <ostream> <queue> <set> <sstream> <stack> <stdexcept>
Descripcin de propiedades dependientes de la implementacin que afectan a los tipos fundamentales. Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas. Parte de la STL relativa a la internacionalizacin. Parte de la STL relativa a contenedores tipo map . Utilidades relativas a la gestin de memoria, incluyendo asignadores y punteros inteligentes (auto_ptr). Manejo de memoria dinmica . Parte de la librera numrica de la STL relativa a operaciones numricas. Algoritmos estndar para los flujos de salida. Parte de la STL relativa a contenedores tipo queue; colas de objetos. Parte de la STL relativa a contenedores tipo set. Flujos hacia/desde cadenas alfanumricas. Parte de la STL relativa a contenedores tipo stack; pilas de objetos. Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los algoritmos de la propia STL y otras expresiones. Estas clases son utilizadas para reportar errores detectados durante runtime. Los usuarios tambin pueden utilizar excepciones para reportar errores en sus propios programas.
<streambuf> Parte de la STL relativa al Almacenamiento de flujos de E/S ("Stream buffers"). Define los tipos que controlan la capa de transporte. <string> <typeinfo> <utility> <valarray> <vector> Parte de la STL relativa a contenedores tipo string; una generalizacin de las cadenas alfanumricas para albergar cadenas de objetos. Mecanismo de identificacin de tipos en tiempo de ejecucin. Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs). Parte de la librera numrica de la STL relativa a manejo de matrices numricas () Parte de la STL relativa a los contenedores tipo vector; una generalizacin de las matrices unidimensionales C/C++
Es digno de mencin que aunque generalmente las libreras no aportan ninguna caracterstica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho), una pequea porcin de la Librera Estndar C++ s aporta caractersticas que se consideran pertenecientes a este, de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas.
CONCLUSION
C++ es un potente lenguaje de programacin que apareci en 1980, continuando con las ventajas, flexibilidad y eficacia del C. Es un lenguaje de programacin que permite programar desde sistemas operativos, compiladores, aplicaciones de bases de datos, procesadores de texto, juegos, entre otras cosas. C++ ha ido evolucionando y ha contribuido con la aparicin de Java, simplificando instrucciones de C++, aadiendo nuevas y apareciendo nuevas funcionalidades para realizar aplicaciones utilizables desde Internet. Este lenguaje no es un lenguaje orientado a objetos puro, porque nace como una evolucin de otro anterior. Concretamente del lenguaje C, y desde su nacimiento fue un lenguaje que crearon programadores para utilizarlo ellos mismos. Por esta razn se saltaron algunos aspectos como el diseo, imagen, etc. de este lenguaje.
BIBLIOGRAFIA