Inicio > General > Nuevo estándar de C++ para este año

Nuevo estándar de C++ para este año

Jueves, 1 de Enero de 2009

Este año se espera un nuevo estándar del lenguaje de programación C++, que intentará ser compatible con el estándar actual y posiblemente también con C. El nuevo estándar traerá nueva funcionalidad al lenguaje, sobre todo a través de la librería estándar de C++. Antes de comentar las novedades que incluirá demos un repaso a la historia de este lenguaje.

Un poco de Historia

C++ es un lenguaje de programación orientado a objetos inspirado en C. Al igual que este último, es considerado un lenguaje de nivel medio pues permite tanto programar a bajo nivel, más cercano al hardware, como a alto nivel, abstrayéndose del mismo.

Su autor, Bjarne Stroustrup, desarrolló C++ en 1979 para mejorar, o mejor dicho ampliar, el lenguaje C (sin llegar a sustituirlo). Esta primera versión recibió el nombre de “C con clases” y en 1983 fue mejorado y renombrado a C++.

Este lenguaje ha evolucionado mucho desde 1983. Fue ratificado como estándar en 1998 como ISO/IEC-14882:1998 y posteriomente, en 2003, fue mejorado y actualizado como ISO/IEC-14882:2003. Este proceso de estandarización fue esencial para el crecimiento de la comunidad de C++, y hoy en día, ambos son conocidos como C++98 y C++03.

Actualmente, y según el rankin de lenguajes de programación más usados [inglés] (que no mejores), C++ ocupa el 3er puesto por detrás de Java y C, pero permaneciendo igual en cuanto a la anterior publicación.

El nuevo estándar

C++0x es el nombre que recibe el estándar actualmente en fase de desarrollo. Este nuevo estándar ampliará el lenguaje y extenderá la librería estándar. Para ver el estado actual de C++0x hay que acudir a los informes que se publican sobre su desarrallo, uno de los más recientes es éste, N2597 [inglés], publicado en mayo del 2008. Muchas son las propuestas recibidas por el comité encargado de C++, pero puesto que sería imposible evaluar e introducir todas ellas, este comité decidió centrar sus esfuerzos en las propuestas introducidas hasta 2006 para terminar a tiempo el desarrollo. Cuando C++0x se publique este año, recibirá el nombre de C++09.

Características

Entre las muchísimas características que se espera incluya C++0x comentaré las que, en mi opinión, son más interesantes.

  1. Soporte de programación concurrente (modelo de memoria para programacion concurrente)
  2. Almacenamiento local de hilos de ejecución
  3. Tipos seguros de datos
  4. Especificación de como integrar un recolector de basura en el lenguaje (puesto que no hubo tiempo para hacerlo xD)
  5. Gran cantidad de aportaciones del proyecto boost
  6. Compatibilidad con C++98 casi al 100% y también con C
  7. Lista de inicializadores
  8. Soporte de bucles con tipos de rango
  9. Mejora de los constructores
  10. Puntero nulo
  11. Soporte de strings unicode
  12. Tipo long long int
  13. Asserts estáticos
  14. Permitir a sizeof funcionar con miembros de clases sin objeto
  15. Expresiones regulares
  16. Punteros inteligentes
  17. Facilidades para extender números aleatorios
  18. etc, etc, etc…

Para tener en detalle las características al completo de este nuevo estándar, hecharle un vistazo al informe que se menciona arriba, N2597 [inglés].

Fuentes:

C++0x [en.wikipedia.org]

Interview to Bjarne Stroustrup [www.computerworld.com]

d3ce1t General ,

Comentarios cerrados.