martes, 10 de enero de 2017

INTRODUCCIÓN AL LENGUAJE C++





CAPÍTULO 1 INTRODUCCIÓN AL LENGUAJE C++


HISTORIA
La historia del lenguaje de programación C++ comienza a principios de los años 70,
con un programador de nombre Dennis Ritchie que trabajaba en los laboratorios de
AT&T Bell.
Trabajando con un lenguaje llamado BCPL inventado por Martin Richards (que luego
influyó para crear el B de Ken Thompson), Dennis deseaba un lenguaje que le
permitiese manejar el hardware de la misma manera que el ensamblador pero con
algo de programación estructurada como los lenguajes de alto nivel. Fue entonces
que creó el C que primeramente corría en computadoras PDP-7 y PDP-11 con el
sistema operativo UNIX. Pero los verdaderos alcances de lo que sería éste, se verían
poco tiempo después cuando Dennis volvió a escribir el compilador C de UNIX en el
mismo C, y luego Ken Thompson (diseñador del sistema) escribió UNIX
completamente en C y ya no en ensamblador.
Al momento de que AT&T cedió (a un precio bastante bajo) el sistema operativo a
varias universidades, el auge de C comenzaba. Cuando fueron comerciales las
computadoras personales, empezaron a diseñarse varias versiones de compiladores
C, éste se convirtió en el lenguaje favorito para crear aplicaciones.
En 1983, el Instituto Americano de Normalización (ANSI) se dio a la tarea de
estandarizar el lenguaje C, aunque esta tarea tardó 6 años en completarse, y
además con la ayuda de la Organización Internacional de Normalización (ISO), en el
año de 1989 definió el C Estándar.
10
A partir de éste, se dio pie para evolucionar el lenguaje de programación C. Fue en
los mismos laboratorios de AT&T Bell, que Bjarnes Stroutstrup diseñó y desarrolló
C++ buscando un lenguaje con las opciones de programación orientada a objetos.
Ahora el desarrollo del estándar de C++ acaparaba la atención de los diseñadores.
En el año 1995, se incluyeron algunas bibliotecas de funciones al lenguaje C. Y con
base en ellas, se pudo en 1998 definir el estándar de C++.
Algunas personas podrían pensar que entonces C++ desplazó a C, y en algunos
aspectos podría ser cierto, pero también es cierto que algunas soluciones a
problemas requieren de la estructura simple de C más que la de C++, C
generalmente es usado por comodidad para escribir controladores de dispositivos y
para programas de computadoras con recursos limitados.
La base del lenguaje fue creada por programadores y para programadores, a
diferencia de otros lenguajes como Basic o Cobol que fueron creados para que los
usuarios resolvieran pequeños problemas de sus ordenadores y el segundo para que
los no programadores pudiesen entender partes del programa.
C++ es un lenguaje de nivel medio pero no porque sea menos potente que otro, sino
porque combina la programación estructurada de los lenguajes de alto nivel con la
flexibilidad del ensamblador. La siguiente tabla muestra el lugar del lenguaje respecto
a otros.
11
Alto nivel Ada
Modula-2
Pascal
Cobol
FORTRAN
Basic
Nivel
medio
Java
C++
C
FORTH
Macroensamblad
or
Nivel bajo Ensamblador
Tabla 1 Lugar de C++
1
Ejemplos de lenguajes estructurados:
No
estructurados
FORTRAN
Basic
Cobol
Estructurado
s
Pascal
Ada
C++
C
Java
En la actualidad los lenguajes que originalmente eran no estructurados han sido
modificados para que cumplan con esta característica, tal es el caso de Basic, que
actualmente soporta la programación orientada a objetos. Podemos notar cuando un
lenguaje de programación es viejo si vemos que no cumple con la programación
estructurada. C++ es, también, un lenguaje orientado a objetos, y es el mismo caso
de Java. Al referirnos a lenguaje estructurado debemos pensar en funciones, y
también a sentencias de control (if, while, etc.)
1 Herbert Schildt. C Manual de referencia.
12
Muchos compiladores de C++ están orientados hacia el desarrollo bajo entornos
gráficos como Windows 98. Este sistema operativo está escrito casi completamente
en C, incluso cuando la compañía Microsoft creó el compilador Visual C++. “Pero
deberíamos preguntarnos si esta aparente anomalía refleja una mentalidad inmadura
de C++ entre los diseñadores del este sistema y el deseo de la compañía de influir
en el código de sistema operativo existente o una relativa idoneidad de los dos
lenguajes para escribir sistemas operativos”2
. En lo personal, pensaría en otra razón
popular entre usuarios de Linux.
C++ es un superconjunto de C, cualquier compilador de C++ debe ser capaz de
compilar un programa en C. De hecho la mayoría admite tanto código en C como en
C++ en un archivo. Por esto, la mayoría de desarrolladores compilan con C++ su
código escrito en C, incluso hay quienes, siendo código en C ponen la extensión
CPP (extensión de los archivos de código C++) y lo compilan con C++ (hasta hace
unos días yo hacía esto), lo cual no es recomendable por norma al programar.
Cuando se compila código C en un compilador C++ este debe cumplir con los
estándares definidos en 1989, cualquier palabra definida en el estándar de 1999 no
funcionará.
La evolución de C++ continúa, y la diversidad de compiladores contribuye a ello.
LENGUAJES ASOCIADOS
C++ Builder
Creado por una empresa de nombre Inprise, sobradamente conocida por la calidad
de sus herramientas de desarrollo, que llevan la firma Borland, entre las que están
Borland C++, Intrabuilder, JBuilder, Delphi, C++ Builder.
2 Al Stevens, Programación con C++.
13
C++ Builder surgió de la fusión de dos tecnologías: Borland C++ que soporta el
lenguaje C++ estándar con todas sus novedades, y el entorno RAD de Delphi.
Visual C++
En el año de 1992, la compañía Microsoft introduce C/C++ 7.0 y la biblioteca de
clases MFC, los cuales tenían la finalidad de que el desarrollo de aplicaciones para
Windows, escritas en C, fuera más fácil. Sin embargo, no resultó como esperaban,
así que un año más tarde fue creado Visual C++ 1.0, que parecía más amigable a los
desarrolladores, porque tenía una versión mejorada de las clases MFC.
Con Visual C++ se introdujo una tecnología de desarrollo a base de asistentes. En
general es un entorno de desarrollo diseñado para crear aplicaciones gráficas
orientadas a objetos. Pero si cree que se trata sólo de arrastrar componentes hacia
un “formulario”, como lo puede hacer en Visual Basic, está muy equivocado. La
programación en él es más compleja que eso.
C#
Este lenguaje es una evolución de C y C++. Creado por Microsoft y presentado como
Visual C# en el conjunto de Visual Studio .NET. Está diseñado para crear una amplia
gama de aplicaciones empresariales. La biblioteca para programar en este lenguaje
es .NET Framework. El lenguaje es simple, moderno, y está orientado a objetos.
El código de C# se compila como código administrado, lo que significa que se
beneficia de los servicios de Common Language Runtime. Estos servicios incluyen la
interoperabilidad entre lenguajes, la recolección de elementos no utilizados, mayor
seguridad y mejor compatibilidad entre las versiones.
14
Java
El lenguaje de programación Java se había creado como una plataforma para
desarrollo de sistemas de información para Internet y para aparatos
electrodomésticos. Fue creado con base en C++. Poco tiempo después de su
liberación (en 1995), se empiezan a ver las capacidades de este lenguaje. Pronto
deja de ser un lenguaje que sólo se usaba en Internet, y empiezan a crearse
programas completos con él.
El lenguaje es orientado a objetos y multiplataforma, esto quiere decir que el código
se puede transportar a diferentes sistemas operativos y ejecutarse en ellos por medio
de la maquina virtual de Java.
Al igual que con C++ existen varios compiladores para este lenguaje como lo son
JBuilder y Visual J++ (ahora evolucionado a J#).
ESTRUCTURA BÁSICA DE UN PROGRAMA
#include <iostream.h> }declaración de librerías
int main(void){ }función main
    cout<<”hola mundo”<<endl; }secuencia de instrucciones
    return 0; }valor de retorno de la
función
} }llaves de cierre de la
función
Analicemos cada parte de nuestro primer programa.
15
#include <iostream.h>
La parte del #include se refiere a la biblioteca de funciones que vamos a utilizar. Es
decir para llamar a una biblioteca en particular debemos hacer lo siguiente:
#include <librería_solicitada>
El estándar de C++ incluye varias bibliotecas de funciones, y dependiendo del
compilador que se esté usando, puede aumentar el número.
int main(void){
Todo programa en C++ comienza con una función main(), y sólo puede haber una.
En C++ el main() siempre regresa un entero, es por eso se antepone “int” a la
palabra “main”. Los paréntesis que le siguen contienen lo que se le va a mandar a la
función. En este caso se puso la palabra “void” que significa vacío, es decir que a la
función main no se le está mandando nada, podría omitirse el void dentro de los
paréntesis, el compilador asume que no se enviará nada. La llave que se abre
significa que se iniciará un bloque de instrucciones.
cout<<”hola mundo”<<endl;
Esta es una instrucción. La instrucción cout está definida dentro de la biblioteca
iostream.h, que previamente declaramos que íbamos a utilizar. Una función, en
este caso main() siempre comienza su ejecución con una instrucción (la que se
encuentra en la parte superior), y continúa así hasta que se llegue a la última
instrucción (de la parte inferior). Para terminar una instrucción siempre se coloca “;”.
Pero además de instrucciones se pueden invocar funciones definidas por el usuario
(por supuesto diferentes de main) como se verá mas adelante.
return 0;
Esta es otra instrucción, en este caso la instrucción return determina que es lo que
se devolverá de la función main(). Habíamos declarado que main devolvería un
16
entero, así que la instrucción return devuelve 0. Lo cual a su vez significa que no han
ocurrido errores durante su ejecución.
}
La llave de cierre de la función main() indica el termino del bloque de instrucciones.
En algunos programas de ejemplo, notará el uso de dobles diagonales (“//”). Estas
diagonales se usan para escribir comentarios de una línea dentro del código del
programa. Además podrá encontrar el uso de “/*” “*/” estos caracteres encierran un
comentario de varias líneas y cualquier cosa que se escriba dentro de ella no
influenciará en el desempeño del programa.
También verá que muchas veces utilizaremos una diagonal invertida (“\”). Este signo
se utiliza cuando una instrucción ocupará varias líneas y por razones de espacio en
la hoja es mejor dividirla en partes.

No hay comentarios:

Publicar un comentario