Antes de empezar con la historia del lenguaje C definir Que es el
lenguaje C? El C es un lenguaje de programacin de nivel
medio ya que combina los elementos del lenguaje de alto nivel con la funcionalidad del ensamblador. Una vez aclarado este punto pasaremos a conocer su historia. En 1967 Martin Richard creo el lenguaje BCPL que fue la base para la creacion del lenguaje B escrito por Ken Thompson en 1970 con la intencin de recodificar el UNIX, que en su face de arranque estaba codificado en lenguaje ensamblador. El lenguaje c fue creado por Dennis Ritchie en los laboratorios Bell Telephone en 1972, el c fue creado con un fin especfico: el diseo del sistema operativo UNIX. Este lenguaje solo es una modificacin del lenguaje B. El lenguaje C se llama de esta forma debido a que su predecesor fue llamado B. La novedad que proporcion el lenguaje C sobre el B fu el diseo de tipos y estructuras de datos. Los tipos estructurados bsicos de C son las estructuras, las unines, y los arrays. Estos permiten la definicin y declaracin de tipos de mayor complejidad. Los tipos bsicos de datos en el lenguaje C eran "CHAR" (carcter), "INT" (enteros), "FLOAT" (Reales en simple presicin), y "DOUBLE" (Reales en doble Presicin). Posteriormente se aadieron los tipos "SHORT" (Enteros de longitud<=longitud de un int), "LONG" (Enteros de longitud >= longitud de un entero), "UNSIGNED" (Enteros sin signo), y "ENUMERACIONES". Como el C es un lenguaje muy poderoso y flexible su uso se difundi muy rpidamente mas all de los laboratorios Bell. Los programadores de todo el mundo comenzaron a usarlo para escribir todo tipo de programas. Sin embargo, diferentes organizaciones comenzaron a utilizar muy pronto sus propias versiones del C, las pequeas diferencias entre las
implementaciones comenzaron a dar problemas a los
programadores. Para resolver este problema, el American National Stndards (ANSI) formo un comit en 1983 para establecer una definicin estndar del C, que llego a ser conocida como C estndar ANSI. Con unas cuantas excepciones, todos los compiladores del C modernos de adhieren a este estndar. El lenguaje C inicialmente fu creado para la programacin de -Sistemas operativos -Intrpretes -Editores -Ensambladores -Compiladores -Administradores de bases de datos. Actualmente, debido a sus caractersticas, puede ser utilizado para todo tipo de programas. Algunas de las versiones existentes son: -
Quick C C++ Turbo C Turbo C ++ Borland C Borland C++ Microsoft C Turbo C 2.0 Turbo C++ 1.0 Borland C++ 2.0
Breve historia de C / C++ / C#
La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se haba programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de mquinas concretas, por lo que conseguir un lenguaje abstrado de cada mquina conseguira una portabilidad del sistema muchsimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseado tres aos antes. En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien disea finalmente C a partir del B de Thompson, aportando un diseo de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programacin estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los bsicos sean pocos), codificando en alto y bajo nivel simultneamente, reemplazando ventajosamente la programacin en ensamblador y permitiendo una utilizacin natural de las funciones primitivas del sistema. Adems, no est orientado a ningn rea en especial y sobre todo consigue un cdigo objeto altamente optimizado que repercute en que los programas son muy rpidos. Durante muchos aos no existen reglas estndar para el lenguaje, pero en 1983 se decide formar un comit con el objetivo de crear el estndar ANSI (Instituto Nacional Americano de Estndares). El proceso dura seis aos y a principios de los 90 el estndar es reconocido por la ISO (Organizacin Internacional de Estndares) y comienza a comercializarse con el nombre ANSI C.
Paralelamente, en 1980 surge C++ de la mano de Bjarne
Stroustrup (tambin de Laboratorios Bell de AT&T). Disea este lenguaje con el objetivo de aadir a C nuevas caractersticas: clases y funciones virtuales (de SIMULA67), tipos genricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un autntico motor de objetos con herencia mltiple que permite combinar la programacin imperativa de C con la programacin orientada a objetos. Estas nuevas caractersticas mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicacin al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolucin de C++ es sin duda la incorporacin de la librera STL aos ms tarde, obra de Alexander Stepanov y Adrew Koening. Esta librera de clases con contenedores y algoritmos genricos proporciona a C++ una potencia nica entre los lenguajes de alto nivel. Debido al xito del lenguaje, en 1990 se renen las organizaciones ANSI e ISO para definir un estndar que formalice el lenguaje. El proceso culmina en 1998 con la aprobacin del ANSI C++. /* "Hola mundo" escrito en C++ */ #include <iostream> void main() { std::cout << "Hola mundo";
La ltima variante que ha surgido de C es el moderno C#.
En el ao 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseado por Anders Hejlsberg), que servir de lenguaje principal de la plataforma. C# es un hbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia mltiple) con la plena orientacin a objetos del segundo. La orientacin a objetos es tal que el propio programa est encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes ms utilizados. A pesar de su corta historia, ha recibido la aprobacin del estndar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO. /* "Hola mundo" escrito en C# */ class HolaMundo { static void Main() { System.Console.Write( "Hola mundo" ); } }