El lenguaje C++
El lenguaje C++
Historia, evolución,
Historia, evolución,
Nacimiento de C
Nacimiento de C
Fue Fue Dennis Ritchie Dennis Ritchie quien en 1969 creo el quien en 1969 creo el
lenguaje
lenguaje C C a partir de las ideas diseñadas pora partir de las ideas diseñadas por otro lenguaje llamado
otro lenguaje llamado B B inventado por inventado por Ken Ken Thompson
Thompson, quien en los años 70 fue el, quien en los años 70 fue el encargado de desarrollar el
encargado de desarrollar el lenguaje C.lenguaje C.
Ritchie lo inventó para programar la Ritchie lo inventó para programar la
computadora
computadora PDP-11 que utilizaba el sistemaPDP-11 que utilizaba el sistema UNIX (el propio Ritchie creo también
Éxito de C
Éxito de C
La historia de C está muy ligada a la de La historia de C está muy ligada a la de
UNIX, este sistema siempre ha incorporado UNIX, este sistema siempre ha incorporado
compiladores para trabajar en C. El lenguaje compiladores para trabajar en C. El lenguaje
C se diseñó como lenguaje pensado para C se diseñó como lenguaje pensado para
programar sistemas operativos. programar sistemas operativos.
Tuvo un éxito inmediato y sus programas eranTuvo un éxito inmediato y sus programas eran
muy compatibles con todo tipo de sistemas muy compatibles con todo tipo de sistemas
por lo que se transportó a todo tipo de por lo que se transportó a todo tipo de
máquinas y utilidades (proceso de textos, máquinas y utilidades (proceso de textos,
Estandarización
Estandarización
En 1983 el organismo En 1983 el organismo ANSI ANSI ((Instituto de Instituto de
Estándares de Estados Unidos
Estándares de Estados Unidos) empezó a ) empezó a producir un C estándar para normalizar su producir un C estándar para normalizar su
situación. situación.
En 1989 aparece el considerado como C En 1989 aparece el considerado como C
estándar que fue aceptado por
estándar que fue aceptado por ISO ISO ((Instituto Instituto Mundial de Estándares
Mundial de Estándares), organismo ), organismo
internacional de estándares. Actualmente este internacional de estándares. Actualmente este
C es universalmente aceptado como el C C es universalmente aceptado como el C
Evolución
Evolución
En 1986 En 1986 Bjarne Stroupstrup Bjarne Stroupstrup creo un creo un
lenguaje inspirado en
lenguaje inspirado en Simula Simula pero utilizando pero utilizando la sintaxis del lenguaje C.
la sintaxis del lenguaje C.
Hay que entender que C++ no es un C Hay que entender que C++ no es un C
mejorado, sino que utiliza la sintaxis de C para mejorado, sino que utiliza la sintaxis de C para crear un lenguaje mucho más potente y sobre crear un lenguaje mucho más potente y sobre todo preparado para utilizar la programación todo preparado para utilizar la programación
orientada a objetos, que está ya considerada orientada a objetos, que está ya considerada
como el método de programación más como el método de programación más
Ojo No Confundir
Ojo No Confundir
No obstante todos los compiladores de
No obstante todos los compiladores de
C++ admiten crear programas en C.
C++ admiten crear programas en C.
C y C++, comparten instrucciones casi
C y C++, comparten instrucciones casi
idénticas. Pero la forma de programar
idénticas. Pero la forma de programar
es absolutamente diferente.
es absolutamente diferente.
Saber programar en C no implica
Saber programar en C no implica
saber programar en C++
Antes de C++
Ventajas de C++
Ventajas de C++
Es un lenguaje que permite programar
Es un lenguaje que permite programar
de forma estructurada, modular y
de forma estructurada, modular y
orientado a objetos. Por lo que permite
orientado a objetos. Por lo que permite
la asimilación de todas estas técnicas.
la asimilación de todas estas técnicas.
Es un lenguaje que permite el manejo
Es un lenguaje que permite el manejo
de todo tipo de estructuras de datos.
de todo tipo de estructuras de datos.
Es un lenguaje compilado, lo que le
Es un lenguaje compilado, lo que le
hace muy rápido (quizá el más rápido,
hace muy rápido (quizá el más rápido,
Mas ventajas de C++
Mas ventajas de C++
Permite crear todo tipo de aplicaciones Permite crear todo tipo de aplicaciones (aunque no está pensado para crear
(aunque no está pensado para crear
aplicaciones para ejecutar desde Internet)
aplicaciones para ejecutar desde Internet)
Gracias a su capacidad de uso de objetos y Gracias a su capacidad de uso de objetos y clases, facilita la reutilización del código
clases, facilita la reutilización del código
Permite incorporar las librerías más Permite incorporar las librerías más utilizadas para hacer aplicaciones
utilizadas para hacer aplicaciones
Es el lenguaje que sirve de base para los Es el lenguaje que sirve de base para los lenguajes modernos como Java, C#, Perl,...
Después de C++
Entornos de
Entornos de
programación
programación
Editor de código.
Editor de código.
Programa utilizado
Programa utilizado
para escribir el código.
para escribir el código.
Intérprete o compilador.
Intérprete o compilador.
El software que
El software que
convierte el lenguaje en código máquina.
convierte el lenguaje en código máquina.
Depurador.
Depurador.
Programa que se utiliza para
Programa que se utiliza para
realizar pruebas sobre el programa.
realizar pruebas sobre el programa.
Organizador de ficheros.
Organizador de ficheros.
administrar los
administrar los
Compiladores
Compiladores
Turbo C/C++. Turbo C/C++.
http://community.borland.com/article/images/21751/tc
http://community.borland.com/article/images/21751/tc
pp101.zip
pp101.zip
Borland C/C++. Borland C/C++. Más orientado a C++, versión más Más orientado a C++, versión más
moderna moderna
Microsoft C/C++. Microsoft C/C++. Compilador C de Microsoft(95)Compilador C de Microsoft(95)
Visual Studio. Visual Studio. Ahora llamado Visual Studio .NET Ahora llamado Visual Studio .NET
GCC. GCC. Compilador C++ con licencia GNU Compilador C++ con licencia GNU http://gcc.gnu.org/http://gcc.gnu.org/
KDevelop. KDevelop. Entorno de programación en LinuxEntorno de programación en Linux
Primeras fases de
Primeras fases de
compilación
compilación
[1] Edición[1] Edición. El código se escribe en un editor de texto . El código se escribe en un editor de texto
o en un editor de código preparado para esta acción. El o en un editor de código preparado para esta acción. El archivo se suele guardar con extensión
archivo se suele guardar con extensión .cpp .cpp (también (también en
en cxx, c++ o cccxx, c++ o cc))
[2] Preprocesado[2] Preprocesado. Antes de compilar el código, el . Antes de compilar el código, el
preprocesador lee las instrucciones de preprocesador y preprocesador lee las instrucciones de preprocesador y las convierte al código fuente equivalente.
las convierte al código fuente equivalente.
[3] Compilación. [3] Compilación. El código fuente resultante en El código fuente resultante en
lenguaje C++ se compila mediante el software lenguaje C++ se compila mediante el software
apropiado, obteniendo un código máquina llamado apropiado, obteniendo un código máquina llamado archivo objeto (cuya extensión suele ser
archivo objeto (cuya extensión suele ser .obj.obj). Este ). Este código aún no es ejecutable ya que necesita incluir el código aún no es ejecutable ya que necesita incluir el código máquina. Estas funciones están incluidas en código máquina. Estas funciones están incluidas en archivos externos (
Fases de compilación
Ultimas fases de
Ultimas fases de
compilación
compilación
[4] Enlazado. [4] Enlazado. El código objeto se une al código El código objeto se une al código
compilado de las librerías y módulos invocados por el compilado de las librerías y módulos invocados por el código anterior. El resultado es un archivo ejecutable código anterior. El resultado es un archivo ejecutable
[5] Cargado. [5] Cargado. Normalmente lo realiza el propio Normalmente lo realiza el propio
entorno de ejecución. El archivo ejecutable se lanza entorno de ejecución. El archivo ejecutable se lanza
en el Sistemas Operativo en el Sistemas Operativo
[6] Ejecución de las instrucciones por la CPU. [6] Ejecución de las instrucciones por la CPU.
Es entonces cuando el procesador accede al código Es entonces cuando el procesador accede al código
máquina del programa ya convertido y ejecuta las máquina del programa ya convertido y ejecuta las
acciones.Será entonces cuando veamos los acciones.Será entonces cuando veamos los
Fases de compilación
El primer programa en C+
El primer programa en C+
+
+
En todos los lenguajes de programación, el
En todos los lenguajes de programación, el
primer programa a realizar es el famoso
primer programa a realizar es el famoso
Hola mundo,
Hola mundo,
un programa que escribe
un programa que escribe
este texto en pantalla.
este texto en pantalla.
#include <
#include <
iostream
iostream
>
>
int
int mainmain()() {
{
std::cout
std::cout << << "Hola mundo";"Hola mundo"; Return 0;
Return 0; }
Explicación del código
Explicación del código
[1]
[1]
La línea
La línea
include
include
permite utilizar
permite utilizar
funciones de la librería
funciones de la librería
iostream
iostream
que
que
es la que permite leer y escribir datos
es la que permite leer y escribir datos
por la consola del Sistema Operativo
por la consola del Sistema Operativo
[2]
[2]
La función
La función
main
main
es la función
es la función
cuyas instrucciones se ejecutan en
cuyas instrucciones se ejecutan en
[3]
[3]
La instrucción
La instrucción
std::cout <<
std::cout <<
"Hola mundo"
"Hola mundo"
es la encargada de
es la encargada de
escribir el texto
escribir el texto
"Hola mundo"
"Hola mundo"
por
por
pantalla
pantalla
[4]
[4]
La instrucción
La instrucción
return 0
return 0
finaliza el
finaliza el
programa e indica (con el valor cero)
programa e indica (con el valor cero)
que la finalización ha sido correcta.
Elementos del programa
Elementos del programa
Los programas en C++ se basan en sentencias Los programas en C++ se basan en sentencias
las cuales siempre se incluyen dentro de una las cuales siempre se incluyen dentro de una
función. función.
En el caso de crear un programa ejecutable, En el caso de crear un programa ejecutable,
esas sentencias están dentro de la función esas sentencias están dentro de la función
main.
main. A está función le precede la palabra A está función le precede la palabra void void
o la palabra
o la palabra intint..
Ahora bien al escribir sentencias hay que tener Ahora bien al escribir sentencias hay que tener
Normatividad
Normatividad
[1] [1] Toda sentencia en C++ termina con el "punto y Toda sentencia en C++ termina con el "punto y
coma" ( coma" (;;))
[2] [2] Los bloques de sentencia empiezan y terminan Los bloques de sentencia empiezan y terminan
delimitados con el símbolo de llave ({ inicio y fin }). delimitados con el símbolo de llave ({ inicio y fin }).
[3] [3] En C++ hay distinción entre mayúsculas y En C++ hay distinción entre mayúsculas y
minúsculas. No es lo mismo
minúsculas. No es lo mismo main main que que MAINMAIN. Todas . Todas las palabras claves de C++ están en minúsculas.
las palabras claves de C++ están en minúsculas.
[4] [4] Los nombres que pongamos nosotros también Los nombres que pongamos nosotros también
conviene ponerles en minúsculas ya que el código es conviene ponerles en minúsculas ya que el código es mucho más legible así.
Comentarios
Comentarios
Se trata de texto que es ignorado por el compilador Se trata de texto que es ignorado por el compilador
al traducir el código. Esas líneas se utilizan para al traducir el código. Esas líneas se utilizan para
documentar el programa. documentar el programa.
Esta labor de documentación es fundamental ya Esta labor de documentación es fundamental ya
que sino en cuanto pasa un tiempo el código no se que sino en cuanto pasa un tiempo el código no se
comprende bien (ni siquiera por el autor del comprende bien (ni siquiera por el autor del
mismo). mismo).
Todavía es más importante cuando el código va a Todavía es más importante cuando el código va a
ser tratado por otras personas; de otro modo una ser tratado por otras personas; de otro modo una
persona que modifique el código de otra lo tendría persona que modifique el código de otra lo tendría
Tipos de Comentarios
Tipos de Comentarios
En C++ hay dos tipos de comentarios:
En C++ hay dos tipos de comentarios:
1.- Comentarios delimitados entre los
1.- Comentarios delimitados entre los
símbolos
símbolos
/* Esto es un comentario el compilador
/* Esto es un comentario el compilador
hará caso omiso de este texto*/
hará caso omiso de este texto*/
El comentario puede ocupar más de una
El comentario puede ocupar más de una
2.- Comentarios iniciados con los
2.- Comentarios iniciados con los
símbolos //
símbolos //
En ellos se ignora todo el texto hasta
En ellos se ignora todo el texto hasta
el final de línea. Ejemplo:
el final de línea. Ejemplo:
int
int
x=5;
x=5;
//Comentario en la
//Comentario en la
misma línea
misma línea
Palabras Reservadas
Palabras Reservadas
Se llaman así a palabras que en C++ tienen
Se llaman así a palabras que en C++ tienen
un significado concreto para los
un significado concreto para los
compiladores.
compiladores.
No se pueden por tanto usar esas palabras
No se pueden por tanto usar esas palabras
para poner nombre a variables, constantes,
para poner nombre a variables, constantes,
funciones o clases definidas por el
funciones o clases definidas por el
programador.
programador.
La lista de palabras reservadas proceden
La lista de palabras reservadas proceden
Palabras reservadas ©
Palabras reservadas (C+
Palabras reservadas (C+
+)
Identificadores
Identificadores
Son los nombres que damos a las variables y Son los nombres que damos a las variables y
a las funciones de C. Lógicamente no pueden a las funciones de C. Lógicamente no pueden coincidir con las palabras reservadas.
coincidir con las palabras reservadas.
Además puesto que C distingue entre las Además puesto que C distingue entre las
mayúsculas y las minúsculas, hay que tener mayúsculas y las minúsculas, hay que tener cuidado de usar siempre las minúsculas y cuidado de usar siempre las minúsculas y mayúsculas de la misma forma es decir: mayúsculas de la misma forma es decir:
nombre, Nombre
nombre, Nombre y y NOMBRE NOMBRE
Reglas de los
Reglas de los
identificadores
identificadores
Deben comenzar por una letra o por el
Deben comenzar por una letra o por el
signo de subrayado (aunque comenzar
signo de subrayado (aunque comenzar
por subrayado se suele reservar para
por subrayado se suele reservar para
identificadores de funciones
identificadores de funciones
especiales del sistema).
especiales del sistema).
Sólo se admiten letras (del abecedario
Sólo se admiten letras (del abecedario
inglés, no se admite ni la ñ ni la tilde
inglés, no se admite ni la ñ ni la tilde
ni la diéresis), números y el carácter
ni la diéresis), números y el carácter
Líneas de preprocesador
Líneas de preprocesador
Las sentencias que comienzan con el
Las sentencias que comienzan con el
símbolo
símbolo
#
#
y que no finalizan con el punto
y que no finalizan con el punto
y coma son líneas de preprocesador (o
y coma son líneas de preprocesador (o
directivas de compilación).
directivas de compilación).
Son instrucciones que serán traducidas a
Son instrucciones que serán traducidas a
código fuente antes de iniciar el proceso
código fuente antes de iniciar el proceso
de compilado.
de compilado.