sábado, 1 de diciembre de 2012

Historia de C y C++


C++ evolucionó de C, el cual, a su vez, evolucionó de dos lenguajes de programación anteriores, BCPL y B. En 1967, Martin Richards desarrolló BCPL como un lenguaje para escribir software para sistemas operativos y compiladores. Ken Thompson modeló muchas de las características de C en su lenguaje B, luego del desarrollo de su contraparte BCPL y, en 1970, utilizó B para crear las primeras versiones del sistema operativo UNIX en los laboratorios Bell, sobre una computadora DEC PDP-7. Tanto BCPL como B eran lenguajes “sin tipo” (cada uno ocupaba una “palabra” en memoria y, por ejemplo, el trabajo de procesar un elemento como un número completo o un número real era responsabilidad del programador).
            El lenguaje C  evolucionó a partir de B; dicha evolución estuvo a cargo de Dennis Ritchie en los laboratorios Bell y, en 1972, se implementó en una computadora DEC  PDP-11. C utiliza muchos conceptos importantes de BCPL y B cuando agrega tipos de datos y otras características. Inicialmente, C  se hizo muy popular como lenguaje de desarrollo para sistema operativo UNIX. En la actualidad, la mayoría de los sistemas operativos están escritos en C  y/o C++, y  C  se encuentra disponible para la mayoría de las computadoras, y es independiente del hardware. Con un diseño cuidadoso, es posible escribir programas en C que sean portables para la mayoría de las computadoras.
            Para fines de la década de los setenta, C  evolucionó en lo que ahora se conoce como “C tradicional”, “C  clásico”, o “C  de Kernighan y Ritchie”.  La publicación que en 1978 Prentice Hall hiciera del libro de Kernighan y Ritchie, El lenguaje de programación C,  atrajo mucho la atención de la gente a dicho lenguaje.
            La amplia utililzación de C para distintos tipos de computadoras (en ocasiones llamadas plataformas de hardware) ocasionó, desafortunadamente, muchas variantes. Éstas eran similares, pero a menudo incompatibles, lo que se volvió un problema serio para los desarrolladores que necesitaban escribir programas que se pudieran ejecutar en distintas plataformas. Entonces, se hizo evidente la necesidad de una versión estándar de C. En 1983, se creó el comité técnico X3J11 bajo la supervisión del American National Standards Committee on Computers and Information  Processing (X3), para “proporcionar una definición del lenguaje clara e independiente de la computadora”. En 1989, el estándar fue aprobado. ANSI cooperó con la International Organization for Standardization (ISO) para estandarizar C  a nivel mundial; el documento conjunto del estándar se publicó en 1990 y se le conoce como ANSI/ISO 9899:1990. Las copias de este documento pueden solicitarse a la ANSI. La segunda edición del libro de Kernighan y Ritchie, publicada en 1988, menciona esta versión denominada ANSI C, una versión del lenguaje que actualmente se utiliza a nivel mundial.
            A principios de la década de los ochenta, Bjarne Stroustrup desarrolló una extensión de C en los laboratorios Bell: C++. C++ proporciona un conjunto de características que “pulen” al lenguaje C; pero lo más importante, proporciona la capacidad de una programación orientada a objetos.
            Una revolución se está gestando en la comunidad del software. Escribir software rápida, correcta y económicamente es aún una meta escurridiza, en una época en la que la demanda de nuevo y más poderoso software se encuentra a la alza. Los objetos son, esencialmente, componentes reutilizables de software que modelan elementos reales. Los desarrolladores de software están descubriendo que utilizar una metodología de diseño e implementación modular y orientada a objetos puede hacer más productivos a los grupos de desarrollo de software, que mediante las populares técnicas de programación anteriores, tales como la programación estructurada. Los programas orientados a objetos son más fáciles de comprender, corregir y modificar.
            Se han creado muchos otros lenguajes orientados a objetos, incluyedo Smalltalk; desarrollado por Xerox en su Centro de Investigaciones de Palo Alto (PARC). Smalltalk es un lenguaje orientado a objetos puro (literalmente todo es un objeto). C++ es un lenguaje híbrido (en él es posible programar tanto en estilo C, como en estilo orientado a objetos, o en ambos).

No hay comentarios:

Publicar un comentario