El documento describe la historia y características del lenguaje de programación C++. Explica que C++ evolucionó del lenguaje C para hacerlo más fácil de usar y agregar características de programación orientada a objetos. También describe el proceso de estandarización de C++ liderado por los comités ANSI e ISO para definir un estándar ampliamente aceptado.
0 calificaciones0% encontró este documento útil (0 votos)
76 vistas3 páginas
El documento describe la historia y características del lenguaje de programación C++. Explica que C++ evolucionó del lenguaje C para hacerlo más fácil de usar y agregar características de programación orientada a objetos. También describe el proceso de estandarización de C++ liderado por los comités ANSI e ISO para definir un estándar ampliamente aceptado.
El documento describe la historia y características del lenguaje de programación C++. Explica que C++ evolucionó del lenguaje C para hacerlo más fácil de usar y agregar características de programación orientada a objetos. También describe el proceso de estandarización de C++ liderado por los comités ANSI e ISO para definir un estándar ampliamente aceptado.
El documento describe la historia y características del lenguaje de programación C++. Explica que C++ evolucionó del lenguaje C para hacerlo más fácil de usar y agregar características de programación orientada a objetos. También describe el proceso de estandarización de C++ liderado por los comités ANSI e ISO para definir un estándar ampliamente aceptado.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 3
Programación en C++.
Algoritmos, estructuras de datos y objetos
En el Capítulo 2 se describirá en detalle el proceso completo y específico de ejecución de programas en lenguaje C. 1.10. C: EL ORIGEN DE C++ COMO LENGUAJE UNIVERSAL C es el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C, se ha producido porque este lenguaje no está prácticamente asociado a ningún sistema operativo, ni a ninguna máquina, en especial. Ésta es la razón fundamental, por la cual C, es conocido como el lenguaje de programación de sistemas, por excelencia. C es una evolución de los lenguajes BCPL —desarrollado por Martin Richards— y B —desarrollado por Ken Thompson en 1970— para el primitivo INIX de la computadora DEC PDP-7. C nació realmente en 1978, con la publicación de The C Programming Languaje, por Brian Kernighan y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, C fue creciendo en popularidad y los Datos programa ejecutable Computadora Programa Resultados Figura 1.24. Ejecución de un programa. Programa fuente Compilador Programa ejecutable Programa Existen errores en la copilación Ejecución no Montador Modificación programa Figura 1.25. Fases de ejecución de un programa. Introducción a la ciencia de la computación y a la programación 39 sucesivos cambios en el lenguaje a lo largo de los años junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron necesario pensar en la estandarización de la definición del lenguaje C. Así, en 1983, el American National Standard Institute (ANSI), una organización internacional de estandarización, creó un comité (el denominado X3J11) cuya tarea fundamental consistía en hacer “una definición no ambigua del lenguaje C, e independiente de la máquina”. Había nacido el estándar ANSI del lenguaje C. Con esta definición de C se asegura que cualquier fabricante de software que vende un compilador ANSI C incorpora todas las características del lenguaje, especificadas por el estándar. Esto significa también que los programadores que escriban programas en C estándar tendrán la seguridad de que correrán sus modificaciones en cualquier sistema que tenga un compilador C. C es un lenguaje de alto nivel, que permite programar con instrucciones de lenguaje de propósito general. También, C se define como un lenguaje de programación estructurado de propósito general; aunque en su diseño también primó el hecho que fuera especificado como un lenguaje de programación de Sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad. El estándar ANSI C formaliza construcciones no propuestas en la primera versión de C, en especial, asignación de estructuras y enumeraciones. Entre otras aportaciones, se definió esencialmente, una nueva forma de declaración de funciones (prototipos). Pero es, esencialmente, la biblioteca estándar de funciones, otra de las grandes aportaciones. Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programación más utilizados en la industria del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades. Prácticamente todos los fabricantes de sistemas operativos, Windows, UNIX, Linux, MacOS, Solaris..., soportan diferentes tipos de compiladores de lenguaje C y en muchas ocasiones distribuciones gratuitas bajo cualquiera de los sistemas operativos citados. Todos los compiladores de C++ pueden ejecutar programas escritos en lenguaje C, preferentemente si cumplen el estándar ANSI C.8 1.11. EL LENGUAJE C++: HISTORIA Y CARACTERÍSTICAS C++, Java y C#, los tres lenguajes más populares junto con C en esta primera década del siglo XXI son herederos directos del propio C con características orientadas a objetos y a Internet. Actualmente, y aunque C sigue siendo, tal vez, el más utilizado en el mundo de la educación como primer lenguaje de programación y también copa un porcentaje alto de utilización en el campo profesional, los tres lenguajes con características técnicas de orientación a objetos forman con C el poker de lenguajes más empleados en el mundo educativo, profesional y científico actual y previsiblemente de los próximos años. C++ es heredero directo del lenguaje C que, a su vez, se deriva del lenguaje B [Richards, 1980]. C se mantiene como un subconjunto de C++. Otra fuente de inspiración, como señala su autor Bjarne Stroustrup [Stroustrup, 1997]9 fue Simula 67 [Dahl, 1972] del que tomó el concepto de clase (con clases derivadas y funciones virtuales). El lenguaje de programación C fue desarrollado por Dennis Ritche de AT&T Bell Laboratories que se utilizó para escribir y mantener el sistema operativo UNIX (hasta que apareció C, el sistema operativo UNIX fue desarrollado por Ken Thompson en AT&T Bell Laboratories mediante en lenguaje ensamblador o en B). C es un lenguaje de propósito general que se puede utilizar para escribir cualquier tipo de programa, pero su éxito y popularidad está especialmente relacionado con el sistema operativo UNIX. (Fue desarrollado como lenguaje de programación de sistemas, es decir, un lenguaje de programación para escribir sistemas operativos y utilidades (programas) del sistema.) Los sistemas operativos 8 Opciones gratuitas buenas puede encontrar en el sitio del fabricante de software Borland. También puede encontrar y descargar un compilador excelente Dev-C++ en software libre que puede compilar código C y también código C++, en www. bloodshed.net y en www.download.com puede asímismo encontrar diferentes compiladores totalmente gratuitos. Otros numerosos sitios puede encontrar en software gratuito en numerosos sitios de la red. Los fabricantes de software y de computadoras (IBM, Microsoft, HP...) ofrecen versiones a sus clientes aunque normalmente no son gratuitos 9 P. 11
40 Programación en C++. Algoritmos, estructuras de datos y objetos
son los programas que gestionan (administran) los recursos de la computadora. Ejemplos bien conocidos de sistemas operativos además de UNIX son MS/DOS, OS/2, MVS, Lynux, Windows 95/98, Windows NT, Windows 2000, OS Mac, etc. La especificación formal del lenguaje C es un documento escrito por Ritchie, titulado The C Reference Manual. En 1997, Ritchie y Brian Kernighan, ampliaron ese documento y publicaron un libro referencia del lenguaje The C Programming Language (también conocido por el K&R). Aunque C es un lenguaje muy potente, tiene dos características que lo hacen inapropiado como una introducción moderna a la programación. Primero, C requiere un nivel de sofisticación a sus usuarios que les obliga a un difícil aprendizaje a los programadores principiantes ya que es de comprensión difícil. Segundo C, fue diseñado al principio de los setenta, y la naturaleza de la programación ha cambiado de modo significativo en la década de los ochenta y noventa. Para subsanar estas “deficiencias” Bjarne Stroustrup de AT&T Bell Laboratories desarrolló C++ al principio de la década de los ochenta. Stroustrup diseñó C++ como un mejor C. En general, C estándar es un subconjunto de C++ y la mayoría de los programas C son también programas C++ (la afirmación inversa no es verdadera). C++ además de añadir propiedades a C, presenta características y propiedades de programación orientada a objetos, que es una técnica de programación muy potente y que se verá en la última parte de este libro. Se han presentado varias versiones de C++ y su evolución se estudió en [Stroustrup 94]. Las características más notables que han ido incorporándose a C++ son: herencia múltiple, genericidad, plantillas, funciones virtuales, excepciones, etc. C++ ha ido evolucionando año a año y como su autor ha explicado: “evolucionó siempre para resolver problemas encontrados por los usuarios y como consecuencia de conversaciones entre el autor, sus amigos y sus colegas”10. IMPORTANTE: Página oficial de Bjarne Stroustrup Bjarne Stroustrupo, diseñador e implementador del lenguaje de programación C++ es la referencia fundamental y definitiva para cualquier estudiante y programador de C++. Sus obras The C++ Programming Language11,The Design and Evolution of C++ y C++. Reference Manual son lectura y consulta obligada. Su sitio web personal de AT&T Labs Researchs debe ser el primer sitio “favorito” que le recomendamos visite con cierta frecuencia. www.resarch.att.com/~bs El sitio es actualizado con frecuencia por Stroustrup y contiene gran cantidad de información y una excelente sección de FAQ (frequently asked questions). C++ comenzó su proyecto de estandarización ante el comité ANSI y su primera referencia es The Annotated C++ Reference Manual [Ellis 89]12. En diciembre de 1989 se reunió el comité X3J16 del ANSI por iniciativa de Hewlett Packard. En junio de 1991, a la estandarización de ANSI se unió ISO (International Organization for Standardization) con su propio comité (ISO-WG-21), creando un esfuerzo común ANSI/ISO para desarrollar un estándar para C++. Estos comités se reunen tres veces al año para aunar sus esfuerzos y llegar a una decisión de creación de un estándar que convirtiera a C++ en un lenguaje importante y de amplia difusión. En 1995, el Comité publicó diferentes artículos (working paper) y en abril de ese año, se publicó un borrador del estándar (Comité Draft) para su examen público. En diciembre de 1996 se lanzó una segunda versión (CD2) a dominio público. Estos documentos no sólo refinaron la descripción de las caracte- 10 [Stroustrup 98], p. 12 11 Esta obra ha sido traducida por un equipo de profesores de la universidad pontificia de Salamanca que coordinó y dirigió el autor de este libro. 12 Existe versión española de Addison-Wesley Díaz de Santos y traducida por los profesores Manuel Katrib y Luis Joyanes.
Introducción a la ciencia de la computación y a la programación 41
rísticas existentes, de C++ sino que también se amplió el lenguaje con excepciones, identificación en tiempo de ejecución (RTII, run_time type identification), plantillas (templates) y la biblioteca estándar de plantillas STL (Standard Template Library). Stroustrup publicó en 1997 la tercera edición de su libro The C++ Programming Language. Este libro sigue el estándar ANSI/ISO C++.