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, parte de un lenguaje anterior, el lenguaje B, escrito
por Ken Thompson en 1970.
En 1972 es Dennis Ritchie (de los Laboratorios
Bell de AT&T) quien diseña finalmente C a partir del B de Thompson,
aportando un diseño de tipos y estructuras de datos que consiguen una claridad
y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una
programación estructurada economizando las expresiones, con abundancia de
operadores y tipos de datos, codificando en alto y bajo nivel simultáneamente,
reemplazando ventajosamente la programación en ensamblador y permitiendo una
utilización natural de las funciones primitivas del sistema. Además, no está
orientado a ningún área en especial y sobre todo consigue un código objeto
altamente optimizado que repercute en que los programas son muy rápidos.
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, 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 incluido el C,
son los lenguajes más empleados en el mundo educativo, profesional y científico
actual.
Aunque
C es un lenguaje muy potente, tiene dos características que lo hacen
inapropiado como una introducción moderna a la programación ya que 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
a demás 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.
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”
Bjarne
Stroustrup
C++ es
un lenguaje orientado a objetos que se ha hecho muy popular y con una gran
difusión en el mundo del software y actualmente constituye un lenguaje estándar
para programación orientada a objetos, aunque también puede ser utilizado como
lenguaje estructurado al estilo de C si se desea trabajar al modo clásico de
programación estructurada, sobre todo si se desea trabajar con algoritmos y
estructura de datos.
La
última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft
presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por
Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un
híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar
operadores propia del primero (no incorpora la herencia múltiple) con la plena
orientación a objetos del segundo. La orientación a objetos es tal que el
propio programa está encapsulado en una clase. Actualmente C# se encuentra
entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha
recibido la aprobación del estándar de dos organizaciones: en el 2001 se
aprueba el ECMA y en el 2003 el ISO.
Historia
del C++
Los primeros programas se crearon mediante conmutadores. El lenguaje utilizado era el lenguaje máquina. Sólo era aplicable a pequeños programas.
El
lenguaje ensamblador apareció para evitar programas usando cadenas de ceros y
unos.
En los años 50 aparece el primer lenguaje de alto nivel denominado FORTRAN. Permite la construcción de programas largos, no obstante, se corría el peligro de crear programas difícilmente legibles.
En los años 50 aparece el primer lenguaje de alto nivel denominado FORTRAN. Permite la construcción de programas largos, no obstante, se corría el peligro de crear programas difícilmente legibles.
Para
evitar este problema, en los años 60 y 70 aparecen los lenguajes
estructurados (C, Pascal, Algol), están basados en estructuras de control
bien definidas, bloques de código, la ausencia de la instrucción GOTO, y
subrutinas independientes que soportan recursividad y variables locales.
Aunque
la programación estructurada nos ha llevado a excelentes resultados, cuando se
ha aplicado a problemas complejos, los resultados son menos satisfactorios,
algunos de los problemas que presenta el modelo tradicional de desarrollo de
sistemas de información surgen:
·
Cuando la complejidad del
sistema o su ambigüedad no permite un análisis inicial completo.
·
Si el sistema desarrollado no
se adapta a las necesidades de los usuarios, por falta de entendimiento inicial
entre usuarios y diseñadores.
·
Requiere excesivos recursos
dedicados a su mantenimiento.
·
Resulta difícil llevar a cabo
su modificación por cambios del entorno o de los requisitos iniciales.
·
Cuando necesita incorporar el
tratamiento de nuevos tipos de datos como imágenes, sonido, vídeo digital, etc.
Para
resolver estos problemas surge la Programación Orientada a Objetos.
La POO toma las mejores ideas incorporadas a la programación estructurada y las
combina con nuevos y potentes conceptos que permiten organizar los programas en
una forma más efectiva.
En los
años 70, nace Smalltalk como un lenguaje orientado a objetos puro. En la década
de los 80 aparecen lenguajes híbridos orientados a procedimientos y a objetos
como C++, e resumen:
·
C++ es un lenguaje de programación
creado por Bjarne Stroustrup en los laboratorios de At&T
en 1983, teniendo como el lenguaje C.
·
El C++ surgió como un lenguaje
orientado a la programación de sistemas y de herramientas, recomendado sobre
todo para programadores expertos, y que no llevaba implementadas muchas
funciones lo que hacen a c++ un lenguaje más comprensible.
·
C++ pretende llevar a C a un nuevo
paradigma de clases y objetos con los que se realiza una comprensión más humana
basándose en la construcción de objetos, con características propias solo de
ellos, agrupados en clases.
Características
de lenguaje C++
Tiene
un conjunto completo de instrucciones de control.
Ø Permite
la agrupación de instrucciones.
Ø Incluye
el concepto de puntero (variable que contiene la dirección de otra variable).
Ø Los
argumentos de las funciones se transfieren por su valor.
Ø E/S
no forma parte del lenguaje, sino que se proporciona a través de una biblioteca
de funciones.
Ø Legibilidad:
consiste en si el
lenguaje tiene una sintaxis sencilla, fáciles
de leer y fáciles de compilar
Ø Ortogonalidad:
permite combinar en una sola instrucción diversas características del lenguaje,
de esta manera se consiguen programas más cortos y más compactos.
Ø Naturalidad
para la aplicación: consiste en el lenguaje proporcione herramientas adecuadas
para el fin para el que está pensado.
Ø Soporte
a la abstracción: Solucionar tipos de problemas y
no problemas concretos. Debe permitir que el programador pueda crear funciones y procedimientos.
Ø Entorno
de programación: Los lenguajes han de ir acompañados de un entorno donde
programar.
Ø Portabilidad
de los programas: Es un lenguaje que permite crear programas que funcionen en
cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante,
etc.
Ø Permite
la separación de un programa en módulos que admiten compilación independiente.
Originalmente
el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se había
mencionado antes que, en su mayor parte, está escrito en C. Más adelante se
comenzó a utilizar en otros sistemas operativos para programar editores,
compiladores, etc.
Evolución
El Lenguaje C reúne características de programación intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel; con gran poderío basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayoría de los elementos de la programación estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programación de computadoras.
El Lenguaje C reúne características de programación intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel; con gran poderío basado en sus operaciones a nivel de bits (propias de ensambladores) y la mayoría de los elementos de la programación estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de software de sistemas y aplicaciones profesionales de la programación de computadoras.
En 1970 Ken Thompson de los laboratorios Bell
se había propuesto desarrollar un compilador para el lenguaje Fortran que
corría en la primera versión del sistema operativo Unix tomando como
referencias el lenguaje BCPL; el resultado fue el lenguaje B (orientado a palabras)
que resulto adecuado para la programación de software de sistemas.
Con B
creó las primeras versiones del sistema operativo UNIX en una computadora DEC
PDP-7. Este lenguaje tuvo la desventaja de producir programas relativamente
lentos.
En
1972, Dennis Ritchie, estaba finalizando su proyecto, en los famosos
laboratorios Bell. “El lenguaje C”, una evolución del B, implementando
originalmente en una DECPDP-11. Al contrario de sus antecesores, C era un
lenguaje con tipos, es decir, que cada elemento de información ocupaba una
palabra en memoria y la tarea de tratar cada elemento de datos como número
entero real, o arreglos, no recaía en el programador.
C era
conocido como el lenguaje con el cual se desarrolló el sistema operativo UNIX y
actualmente la mayoría de los sistemas operativos se codifican en C. Lo bueno
de este lenguaje es que no depende de la arquitectura de hardware. Es posible
escribir código en C, y llevarlos a otras máquinas. Eso lo convirtió en uno de
los lenguajes más portátiles del mercado.
En el lenguaje C, el operador ++ significa, incrementar la
variable, se eligió en nombre C++, debido a que éste agregaba al C original el
término de Programación Orientada a Objetos (POO), basadas en simula 67. Al ser
C++ una variación de C, los programas codificados en C pueden correr
tranquilamente en C++.
En 1990, el lenguaje ha sido descrito por
Stroustrup y Ellis en el Annotated C++ Reference Manual editado por
Addison-Wesley, existiendo una versión en español del mismo, con el título de
C++. Manual de Referencias con anotaciones publicado por Addison Wesley/Días de
Santos en 1994.
La
versión estandarizada por ANSI, la versión 3.0 es la que soportan la mayoría de
los fabricantes mundiales, como ser, Borland, AT&T, WatCom, Microsoft etc. Hoy
en día, Borland ofrece el compilador de C++ en la versión 5.5 de forma
gratuita. Lenguaje C++ Se pronuncia “ce plus plus”. Es un lenguaje
extremadamente poderoso y eficiente. C++ es un súper conjunto de C, para
aprender C++ significa aprender todo acerca de C, luego aprender programación
orientada al objeto y el uso de éstas con C++.
Variantes
Desde el inicio del lenguaje han surgido varias
ramas de evolución que han generado varios lenguajes:
·
Objective-C
es un primer intento de proporcionar soporte para la programación orientada a
objetos en C, de escasa difusión, pero actualmente usado en Mac OS X y GNUstep.
·
C++
(pronunciado C Plus Plus) diseñado por Bjarne Stroustrup fue el segundo intento
de proporcionar orientación a objetos a C y es la variante más difundida y
aceptada.
Esta versión combina la
flexibilidad y el acceso de bajo nivel de C con las características de la
programación orientada a objetos como abstracción, encapsulación y ocultación.
También se han creado numerosos lenguajes
inspirados en la sintaxis de C, pero que no son compatibles con él:
·
Java,
que une una sintaxis inspirada en la del C++ con
una orientación a objetos más similar a la de Smalltalk y Objective C.
·
JavaScript,
un lenguaje de scripting creado en Netscape e inspirado en la sintaxis de Java
diseñado para dar a las páginas web mayor interactividad. A la versión
estandarizada se la conoce como ECMAScript.
La
importancia de C++
La estandarización del lenguaje
ha llevado mucho tiempo, y como todo buen programa, no termina, sino que se
mejora paulatinamente. La última versión del estándar es el ANSI/ISO C99, de
1999 precisamente. Hoy en día se está trabajando para liberar la siguiente
versión, presumiblemente ANSI/ISO C07.
A diferencia de lenguajes
propietarios de una empresa como Java o C#, C++ es un lenguaje que pertenece a
todos y por lo tanto todos lo enriquecemos día a día. Pero todos pensamos de
forma diferente. Así, la idea del estándar es conciliar las diferentes posturas
y generar un lenguaje (con su librería estándar adyacente) lo suficientemente
potente y flexible para todos. Hay por supuesto otras razones. Quizás la más
notoria es el concepto de portabilidad. Muchas empresas crean diferentes
compiladores, y el lenguaje es tan extendido que se emplea para programar en
plataformas como Windows, MacOS, Linux, Unix/POSIX y hasta en sistemas
empotrados como PocketPC, Palm y otros dispositivos. El estándar garantiza esta
portabilidad entre plataformas.
·
Debido a que C es un lenguaje ampliamente
disponible, independientemente de la plataforma, y estandarizado, las
aplicaciones en C, amenudo pueden ejecutarse sobre un amplio rango de sistemas
de cómputo, con muy pocas o ninguna modificación.
·
Una de sus mayores ventajas es que c++ en su o
dependencia e n lo que a código fuente se refiere
·
Es un lenguaje que soporta diversos estilos de programación
genérica y POO
·
Todos los estilos se basan en una verificación
fuente de tipos y permiten alcanzar un alto nivel de abstracción
·
Es un lenguaje que está organizado de tal manera
que el lenguaje des mismo, puede hacerse gradualmente obteniendo beneficios
prácticos a lo largo del camino.
Conclusión
Nos dimos cuenta cual
tan importante fue el lenguaje C++ para la programación hoy en día, ya que
muchos de los programas que hoy utilizamos están hechos en C++. También podemos
cuán importante fue para el lenguaje C para el C++ ya que sin ella no podríamos
tenerlo hoy día, otra es porque fue una mejora para el C, ya que a pesar de ser
bueno a la hora programar, no acaba de ser factible, por eso creemos que el C++
es un gran bien para la programación de hoy en día.
Fuentes
Comentarios
Publicar un comentario