Caracteristicas principales de C++
Por favor si alguien tiene algun apunte sobre las principales caracteristicas de C++ que me lo envie por mail, las caracteristicas son las básicas, ademas necesito saber como se almacenan los datos en memoria.
Muchas Gracias
Muchas Gracias
Algo de la historia del C++. Características del C++.
Contenido:
~~~~~~~~~~
Creo que no es nada nuevo el decir que el C++ es un lenguaje de programación orientado a objetos (no tanto como el Smalltalk o el Objective C, pero sí lo suficiente como para recibir dignamente ese nombre), y está diseñado partiendo del lenguaje C. Así se ha hablado mucho de él como un el lenguaje orientado a objetos para los programadores de C (ya que casi todas las características y construcciones del C también están disponibles en el C++), pero eso no es ser muy justo, ya que es un lenguaje por sí mismo y no una simple extensión del lenguaje C. Para empezar, no viene mal un poco de su historia (extraído del manual de referencia de C/C++ del IBM C Set++, (C) IBM Corp, etc, etc):
«El C++ fue desarrollado por Bjarne Stroustrup de AT&T, y estaba basado originalmente en la definición del lenguaje C dada en "El lenguaje de programación C" (The C Programming Language) de Brian W. Kernighan y Dennis M. Ritchie. Desde entonces fue aprobada la definición ISO/ANSI C, que especifica muchas de las características que K&R dejó sin especificar. Algunas de las características del ISO/ANSI C se han incorporado en la definición actual del C++, y algunas partes de la definición ISO/ANSI C han sido motivadas por el C++.
Mientras que no hay actualmente un estándar de C++ comparable con la definición del ISO/ANSI C, un comité ISO está trabajando en esa definición. El borrador del "Working Paper for Draft Proposed American National Standard for Information Systems - Programming Language C++, X3J16/92-0091" es el documento base para la estandarización que se está llevando a cabo en el C++.»
Básicamente la idea es que Stroustrup necesitaba (según tengo entendido) un lenguaje que le permitiera aplicar mejor IA (inteligencia artificial), y su equipo de trabajo principalmente utilizaba el C, con lo que lo más sencillo fue diseñar un lenguaje que aceptase la mayor parte del código y construcciones del C pero orientado a objetos. En las primeras implementaciones no hicieron un verdadero compilador de C++, sino un mero traductor de C++ a C (el CFRONT de AT&T). Cuando más adelante salieron compiladores de C++, se adherían a las características del C++ de AT&T. Más tarde se dejó el proceso de estandarización a un comité, y ese proceso de estandarización es el que lleva a cabo la ISO (International Standards Organization). Actualmente ya está a punto de salir (y se puede mirar y dar tu opinión en http://www.setech.com/x3.html y en http://www.maths.warwick.ac.uk/c++/pub)
Ya está bien de historia, me parece. Lo importante es que el C++ es un lenguaje robusto y suficientemente bien diseñado que nos proporciona una manera de expresar las ideas en programas cómoda y concisa, aunque con la suposición (heredada del C) de que el programador sabe lo que hace, con sus ventajas e inconvenientes, lo que implica que el programador debe de ser consciente de que el lenguaje apenas pone restricciones en su uso (aún así el C++ es mucho más "pejiguero" que el C, por ejemplo en la comprobación de tipos... pero eso es algo que ya veremos más adelante).
Una curiosidad: ¿Por qué llamarle C++ ("C plus plus" es como lo llaman los yanquis, aunque hay formas de leer su nombre para todos los gustos) y no D (parece lógico que después de la C vaya la D) o C+ (C "plus")? Realmente no lo sé, pero lo que sí puedo decir es que fue una elección acertada, ya que su nombre es una sentencia válida del lenguaje que viene a significar algo así como "asigna a C el valor C más 1". Pocos lenguajes tienen encerrados en su nombre tiene tanta filosofía...
Creo que con unas referencias como estas es una buena idea el ver por nosotros mismos de qué va este lenguaje y aprender un poco de él, ¿no? Pues allá vamos. Os espero en la siguiente entrega ;)
Datos del autor/a:
Nombre: Dario Rodriguez.
Votaciones en general - Comentario a los relatos (mes anterior) - Comentario a los relatos (mes presente) - Estadísticas de los comentarios y votaciones.
Contenido:
~~~~~~~~~~
Creo que no es nada nuevo el decir que el C++ es un lenguaje de programación orientado a objetos (no tanto como el Smalltalk o el Objective C, pero sí lo suficiente como para recibir dignamente ese nombre), y está diseñado partiendo del lenguaje C. Así se ha hablado mucho de él como un el lenguaje orientado a objetos para los programadores de C (ya que casi todas las características y construcciones del C también están disponibles en el C++), pero eso no es ser muy justo, ya que es un lenguaje por sí mismo y no una simple extensión del lenguaje C. Para empezar, no viene mal un poco de su historia (extraído del manual de referencia de C/C++ del IBM C Set++, (C) IBM Corp, etc, etc):
«El C++ fue desarrollado por Bjarne Stroustrup de AT&T, y estaba basado originalmente en la definición del lenguaje C dada en "El lenguaje de programación C" (The C Programming Language) de Brian W. Kernighan y Dennis M. Ritchie. Desde entonces fue aprobada la definición ISO/ANSI C, que especifica muchas de las características que K&R dejó sin especificar. Algunas de las características del ISO/ANSI C se han incorporado en la definición actual del C++, y algunas partes de la definición ISO/ANSI C han sido motivadas por el C++.
Mientras que no hay actualmente un estándar de C++ comparable con la definición del ISO/ANSI C, un comité ISO está trabajando en esa definición. El borrador del "Working Paper for Draft Proposed American National Standard for Information Systems - Programming Language C++, X3J16/92-0091" es el documento base para la estandarización que se está llevando a cabo en el C++.»
Básicamente la idea es que Stroustrup necesitaba (según tengo entendido) un lenguaje que le permitiera aplicar mejor IA (inteligencia artificial), y su equipo de trabajo principalmente utilizaba el C, con lo que lo más sencillo fue diseñar un lenguaje que aceptase la mayor parte del código y construcciones del C pero orientado a objetos. En las primeras implementaciones no hicieron un verdadero compilador de C++, sino un mero traductor de C++ a C (el CFRONT de AT&T). Cuando más adelante salieron compiladores de C++, se adherían a las características del C++ de AT&T. Más tarde se dejó el proceso de estandarización a un comité, y ese proceso de estandarización es el que lleva a cabo la ISO (International Standards Organization). Actualmente ya está a punto de salir (y se puede mirar y dar tu opinión en http://www.setech.com/x3.html y en http://www.maths.warwick.ac.uk/c++/pub)
Ya está bien de historia, me parece. Lo importante es que el C++ es un lenguaje robusto y suficientemente bien diseñado que nos proporciona una manera de expresar las ideas en programas cómoda y concisa, aunque con la suposición (heredada del C) de que el programador sabe lo que hace, con sus ventajas e inconvenientes, lo que implica que el programador debe de ser consciente de que el lenguaje apenas pone restricciones en su uso (aún así el C++ es mucho más "pejiguero" que el C, por ejemplo en la comprobación de tipos... pero eso es algo que ya veremos más adelante).
Una curiosidad: ¿Por qué llamarle C++ ("C plus plus" es como lo llaman los yanquis, aunque hay formas de leer su nombre para todos los gustos) y no D (parece lógico que después de la C vaya la D) o C+ (C "plus")? Realmente no lo sé, pero lo que sí puedo decir es que fue una elección acertada, ya que su nombre es una sentencia válida del lenguaje que viene a significar algo así como "asigna a C el valor C más 1". Pocos lenguajes tienen encerrados en su nombre tiene tanta filosofía...
Creo que con unas referencias como estas es una buena idea el ver por nosotros mismos de qué va este lenguaje y aprender un poco de él, ¿no? Pues allá vamos. Os espero en la siguiente entrega ;)
Datos del autor/a:
Nombre: Dario Rodriguez.
Votaciones en general - Comentario a los relatos (mes anterior) - Comentario a los relatos (mes presente) - Estadísticas de los comentarios y votaciones.