C++ Breve Historia de C++: Martin Richards Ken Thompson B BCPL

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 6

C++

Breve Historia de C++


En 1967 Martin Richards creó un lenguaje de programación BCPL, para escribir
sistemas operativos y compiladores y Ken Thompson creó el lenguaje B basándose en el
BCPL. Con B, Thompson escribió las primeras versiones de UNIX en los laboratorios
Bell durante 1970. Estos 2 lenguajes muy rústicos y dejaban muchas tareas al
programador.

En 1972 Denis Ritchie escribe un lenguaje basado en BCPL y B con varias mejoras que
contribuyen a su posterior popularidad; lo llamó C. La eficiencia del C en términos de
ejecución y administración de recursos lo hizo el preferido de las empresas de software
que diseñaban sistemas operativos y compiladores. Una de sus principales
características es su independencia del hardware, lo cual permitía inicialmente correr
programas C en cualquier plataforma con mínimas modificaciones. Pero las empresas
de software comenzaron a diseñar versiones de C particulares que le quitaban
portabilidad a los programas. Por eso, en el 1983 el ANSI creó un comité técnico para
su standarización. La versión aprobada junto a la ISO vió la luz en 1990 y se lo conoce
como ANSI C.

En 1980 Bjarne Stroustrup en los Laboratorios Bell, comenzó a experimentar con


versiones mejoradas de C (C con clases) con la única finalidad de escribir programas de
simulación orientada a eventos.

El nombre de C++ fue idea de Rick Masciatti haciendo uso del operador postincremento
del lenguaje y sugería que era el lenguaje que le seguía a C. Este compilador fue
creciendo con renovadas características que lo hacen muy original, manteniendo la
compatibilidad con su antecesor C. C++ incorpora clases y funciones virtuales
basándose en SIMULA67, tipos genéricos y expresiones de ADA, la posibilidad de
declarar variables en cualquier lugar de ALGOL68, así como otras características que
no existían antes: herencia múltiple, espacios en nombres, funciones virtuales puras, etc.
Alex Stepanov y Adrew Koenig idearon la biblioteca STL, la cual le da a C++ una
potencia única entre los lenguajes de alto nivel.

Debido a la enorme difusión de C++, y a las diferentes versiones que fueron


apareciendo, las organizaciones ANSI e ISO se reunieron en 1990 para definir el
Standard de este lenguaje, el cual fue aprobado en 1998.

Hoy día, C++ posee una notable inserción en el mundo de las computadoras y es un de
los lenguajes clásicos de programación: tanto sistemas operativos y compiladores, como
aplicaciones.
Sección de Acceso Rápido de Subtemas de Este Capítulo:
Introducción. | Conceptos Gral. | De C a C++. | C++ y ANSI C. | De Turbo C a Turbo C++. |
Mejoras de Turbo C++. | Antecesores de C. | ¿Por que Usar C o C++?. | Familia del C y C++. |

Antecedentes Historicos del C.

El lenguaje C fue inventado e implementado por primera vez en 1970 en AT&T por Dennis Ritchie en un
DEC PDP-11 usando Unix como Sistema Operativo. C es el resultado de un proceso de desarrollo
comenzando con un lenguaje anteriormente denominado BCPL, que aun hay quien lo usa principalmente
en Europa.

¿Por qué el nombre de C? Por la influencia que tuvo del lenguaje B, BCPL fue desarrollado por Martin
Richards e influenciado por B inventado en Bell Labs. por Ken Thompson. En los años 70´s el lenguaje B
llevo al desarrollo de C.

La versión original de C fue popularizada por el libro clásico "El Lenguaje de Programación C" por Brian
Kernighan y Dennis Ritchie. Durante muchos años el Estándar de C fue realmente la versión
proporcionada con la versión 5 del Sistema Operativo Unix. Con la Popularidad de las
Microcomputadoras se crearon muchas implementaciones de C, pero en realidad, como no existía ningún
estándar aparecieron muchas discrepancias. Para Remediar la situación, el Instituto de Estándares
Americano (ANSI) estableció un comité a principios del Verano de 1983 para crear el estándar que
definiera de una vez por todas al lenguaje C. La definición resultante, el estándar ANSI o " ANSI C " que
se esperaba fuera aprobada a fines de 1988.

La mayoría de las características del estándar ya se encuentran soportadas por compiladores modernos.

Uno de los propósitos del estándar fue asegurar que la mayoría de los programas existentes pudiesen
permanecer validos o, al menos, que las computadoras pudieran producir mensajes de advertencia acerca
de nuevos comportamientos.

Una Segunda contribución significativa del estándar es la definición de una biblioteca que acompañe a C,
la cual especifica funciones para tener acceso al Sistema Operativo (p/e leer archivos, escribir en ellos
etc.) E/S con formato, Asignación de Memoria, Manipulación de Cadenas y otras actividades semejantes,
una colección de Headers estándar proporcionan un acceso uniforme a las declaraciones de funciones y
tipos de datos.

La mayor parte de las bibliotecas esta estrechamente modelada con base en la biblioteca estándar del
sistema Unix.

BCPL y B son lenguajes "carentes de Tipos". En contraste, C proporciona una variedad de tipos de datos.
Los tipos de datos fundamentales son caracteres, enteros y números de punto flotante de varios tamaños.
Además existe una jerarquía de tipo de datos derivados, creados con apuntadores, arreglos, estructuras y
uniones. Las expresiones se forman a partir de operadores y operandos, cualquier expresión, incluyendo
una asignación o una llamada a función, puede ser una proposición. Los apuntadores proporcionan una
aritmética de direcciones independiente de la maquina.

C proporciona las construcciones fundamentales de control de flujo que se requieren en programas bien
estructurados: Agrupación de proposiciones, toma de decisiones (if-else), selección de un caso entre un
conjunto de ellos (switch), iteración con la condición de paro en la parte superior (while, for) o en la parte
inferior (do) y terminación prematura de ciclos (break).
Dentro de los cambios de C, hay uno de relevancia, en New Jersey en 1980, Bjarne Stroustrop desarrollo
en Bell Labs. a C++ o llamado también "C con clases", por lo que en 1983 se cambio el nombre por el de
C++. Desde entonces ha experimentado 2 revisiones de importancia, una en 1985 y otra en 1989.

El propósito de C++ es extender a C para proporcionar ocultamiento de información y un estilo de


programación que haga énfasis en las Clases de Objetos.

La compatibilidad con C, la eficiencia y la verificación estricta en tiempo de compilación fueron las


metas principales para el diseño de C++:

 La compatibilidad con C permite que el código fuente existente en C continúe utilizándose. La


mayoría de las implementaciones de C++ son incluso "compatibles en ligado " con C, lo cual
significa que un código en C++ compilado por separado puede ligarse con acervos en C ya
existentes, sin necesidades de compilar de nuevo los acervos.

 Ya se destaco la eficiencia, por la cual no debe de haber ningún problema al usar C++ en lugar
de C.

La similitud entre C y C++ es sin embargo engañosa, debido a que C++ requiere un método de
programación nuevo, un nuevo paradigma llamado "Orientado a Objetos" que da nuevos beneficios con el
uso de las clases y los objetos.

Stroustrup [1986] advierte: "Mientras mas se conoce a C, es mas difícil evitar escribir en C++ con estilo
C, y perder ahí algunos beneficios potenciales de C++ ".

Como podrá comprobar, una de las razones que motivaron al desarrollo de C++ fue la de permitirle al
programador manejar programas de una complejidad cada vez mas creciente.

Es un hecho que C++ es un Superconjunto de C; por lo que la mayoría de los programas de C son
también implícitamente programas de C++, sin embargo, hay una cuantas diferencias mínimas entre
ANSI C y C++ que impiden que pocos programas de C se puedan compilar mediante un compilador C++
o viceversa:

 Es un hecho que C++ es un Superconjunto de C; por lo que la mayoría de los programas de C


son también implícitamente programas de C++, sin embargo, hay una cuantas diferencias
mínimas entre ANSI C y C++ que impiden que pocos programas de C se puedan compilar
mediante un compilador C++ o viceversa:

 En C una constante de carácter se eleva de forma automática a un entero. En C++ esto no


sucede.

 En C no es un error declarar una variable Global varias veces (aunque esto sea una mala
practica) En C++ esto es un error.

 En C un identificador puede tener hasta 31 caracteres de longitud. En C++ no hay tal limite. No
obstante que desde un punto de vista practico, identificadores extremadamente largos son
difíciles de manejar.

 El uso en C++ de la cabecera IOSTREAM.H y todas de sus funciones que en C no se manejan.

 El manejó en C++ con todas sus características de Clases y Objetos tal como los Constructores,
destructores, funciones amigas, sobrecarga de funciones, referencias, herencia, poliformismo,
encapsulación, abstracciones etc. que en C no se manejan.

 El uso de la cabecera COMPLEX.H para el manejo de números complejos.


 El uso en C++ de la clase BCD. Otra manera de representar un numero real es la de usar la
técnica de Decimal Codificado en Binario o BCD. Su principal ventaja es que no se producen
errores de redondeo, esto es mediante la cabecera BCD.H

 Las Extensiones de los archivos de cada uno es para ANSI C *.c para C++ *.cpp

Conceptos Generales de C
De C a C++. C++ es un Superconjunto de C. Todas las construcciones de C están presentes en C++. Los
programas que se compilan bajo C deberían poder hacerlo bajo C++. Los programas que siguen el
estándar de Kernighan y Ritchie pueden dar origen a errores cuando se someten a un compilador de C++,
y siempre dan origen a avisos. Los programas que no generan avisos bajo Turbo C 2.0 tampoco deberían
generar errores al ser compilados bajo turbo C++.

Para confirmar esto, Turbo C++ distingue entre un programa C y un programa C++ examinando su
extensión. si el nombre del archivo fuente termina en .c se considera un programa de C; si termina en
.cpp, se entiende que es un programa C++, a no ser que la opción C++ haya sido activada en el menú
Options/Compiler.

C++ y ANSI C. Comparten algo mas que una herencia en común. Muchas de las extensiones de C ANSI,
tales como el formato de la declaración de sus funciones y el uso de los tipos de fuentes de datos, se
trasladan a C++. Además de esto, C++ ha ampliado con objeto de incluir las ultimas novedades ANSI y
guardar la máxima compatibilidad. C++ comparte las siguientes características con ANSI, aunque exista
alguna diferencia menor:

 Prototipo de Funciones.

 Variables register

 #pragmas

De Turbo C a Turbo C++. Aunque Turbo C++ se desvía de Turbo C, la interrelación entre ambos es
inconfundible. Turbo C++ conserva tanto la versión del compilador Orientado a la línea de ordenes, como
el entorno interactivo de desarrollo (IDE), pero en un entorno de ventanas. Además, Turbo C++ admite
ahora la entrada de información desde un ratón o desde el teclado.

Las 3 mejoras significativas de Turbo C++ son:

 El entorno Interactivo de Desarrollo. Que permite al programador editar, compilar, enlazar y


depurar en el mismo entorno sin necesidad de conmutar del editor al compilador y al depurador.
El programador puede ajustar la compilación y el enlazado a través de opciones del menú, en vez
de memorizar las opciones de compilación de las líneas de ordenes.

 VROOMM. Gestor de Memoria VROOMM (Virtual Runtime Object Oriented Memory


Manager), que es un sofisticado gestor de superposición de memoria que permite a los
programadores crear programas de tamaño superior a los 640 Kb.

 Soporte del lenguaje Ensamblador. Al admitir pseudoregistros y tipo interrupciones.


Diagrama mas Explícito de los antecesores de C y C++

¿Por usar C o C++?

 Es un lenguaje de Alto nivel.

 Tienen una escritura Elegante, es decir, programas legibles y entendibles.

 Tiene programas portables a otros sistemas.

 Excelentes compiladores disponibles.

 La compilación es rápida y pequeña.

 Sus características de C permiten acceder al control del Hardware.

 Durante la programación se pueden considerar detalles de bajo nivel.

EspecÍficamente el compilador de Borland C++:

 Una magnifica interface con el usuario..

 Se pueden configurar la mayoría de sus características para fomentar hábitos.

 Los errores de sintaxis son inmediatamente detectados con el Editor.


 El editor emula a los populares editores de texto.

 Desde el editor tu tienes el control del depurador.

 Borland C++ incluye características estándar para facilitar el desarrollo de grandes aplicaciones
de Software.

 Borland C++ corre bajo el ambiente Windows de cualquier versión (inferiores a la 3.0), y
contiene un Kit de herramientas para el desarrollo de aplicaciones de Windows (cabecera
Windows.h)

Para Efectos practicos de este tutorial, se podran correr las aplicaciones en la versón Borland C++ 3.0 de
DOS, pero tambien puede Ud utilizar la versión Borland 3.1 C++ para Windows.

¿CUALES SON LAS CARACTERISTICAS DE TURBO C++ 3.0 PARA DOS?. De manera interna
Turbo C++ contiene una pequeña guia de aprendizaje para guiar al programador en su avance cotidiado
de trabajo, con una ayuda sensible al contexto, y mantiene un gran poder en su editor, compilador,
depurador y ensamblador, todo para un desarrollo de aplicaciones de C y C++ facílmente. Ademas cuenta
con las siguientes ventajas:Contiene capacidades para ensamblador, programación Orientada a Objetos,
Soporte para Templates, Librerias de Clases Standares incluyendo iostreams, y números complejos,
cabeceras precompildas para una compilación rapída, Un Administrador inteligente de Proyectos con una
utileria MAKE, mas de 450 librerias de funciones incluyendo las gráficas, incluye editor multi-archivos
con soporte para macros, archivos muy grandes, ilimitado un-do y re-do,y una sintaxis sobresaltada por
colores.

¿QUE REQUERIMIENTOS DE SISTEMA NECESITO?, Una PC 286 o superior, MS-DOS 3.31 o


posterior, 1 MB en RAM, un DD con un minimo de espacio libre de 5 Mb.

C Pertenece a una familia bien establecida de lenguajes cuya tradición enfatiza virtudes como fiabilidad,
regularidad, simplicidad de uso. Los miembros de esta familia se llaman a menudo "Lenguajes
Estructurados", cuya disciplina es hacer programas fáciles de leer y escribir, esto fue todo un Paradigma o
Ideología en los años 70´s.

C++ ya no entra dentro de esta familia de lenguajes Estructurados, si no en el ultimo de los Paradigmas
establecidos en los 80´s y 90´s: El Orientado a Objetos.

También podría gustarte