La historia del lenguaje C parte de un lenguaje anterior conocido como lenguaje B, creado por Ken Thompson. A su vez B fue inspirado en el lenguaje BCPL de Martin Richard, quien lo diseño tres años antes. En 1972 Dennis Ritchie (de laboratorios Bell de AT&T) diseña el lenguaje C a partir del B de Thompson, el cual aportaba un diseño de tipos y estructuras de datos con una claridad y eficacia superior. “Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos), codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema. Además, no está orientado a ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los programas son muy rápidos.”
Durante muchos años este lenguaje no estuvo estandarizado, hasta que en 1983 se forma un comité que crea el estándar ANASI (Instituto Nacional Americano de Estándares), este proceso dura seis años, hasta que es reconocido por ISO (Organización Internacional de Estándares) y comienza a comercializarse.
A su vez, en 1980 surge C++ Bjarne Stroustrup (también de Laboratorios Bell de AT&T). 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. Se diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos.
Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes. El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel.
Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.
La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.
Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.
Borland International es el productor del Turbo C++ y del Borland C++. Todos los productos del lenguaje C++ de Borland, comenzando con la versión 3.0 con compatibles con el estándar 3.0 de AT&T. Ser compatible con la versión 3.0 de AT&T es la prueba que determina si un compilador es lo suficientemente moderno como para ser usado como un compilador serio de C++. Si no usa alguno de los compiladores de C++ de Borland, tal vez esté satisfecho con el suyo si se apega al estándar 3.0 de AT&T. Comenzando con la versión 8.0, el compilador de C++ de Microsoft se apega al de AT&T, con la salvedad de que al compilador de Microsoft todavía le falta la característica de plantilla. Se considera que la plantillas son vitales para la productividad de un programador formal de C++. Aunque las plantillas son importantes, si se llega a usar un compilador que no las acepte, pero que soporta todos los demás aspectos del estándar 3.0 de AT&T, puede quedar satisfecho con ese compilador.
A través de los años, AT&T ha aprobado muchas características del C++ que no son OOP pero que hacen al C++ mejor que el C. Tantas mejoras han sido añadidas al C++ que el comité ANSI ha tomado varios elementos del C++ para el lenguaje C. Por ejemplo, los prototipos de función no se iniciaron en el C, aunque han sido parte del lenguaje C desde hace varios años. Los prototipos de función se iniciaron el C++, y, debido a que contribuyen a hacer mejores programas, ANSI incluyó la característica en el lenguaje C.
Bibliografía:
http://jorgesaavedra.wordpress.com/2006/12/09/breve-historia-de-c-c-c/ http://lalmada.mayo.uson.mx/cpp/La_historia_del_C++.htm http://es.wikipedia.org/wiki/Operadores_de_C_y_C%2B%2B http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
No hay comentarios:
Publicar un comentario