1.10. C: El Origen de C++ Como Lenguaje Universal: Excelencia

Descargar como docx, pdf o txt
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++.

También podría gustarte