estructura de lenguaje c++
TRANSCRIPT
Denis CastilloAdriana GarcésMaykol ManosalvaDiogo Lopes
ESTRUCTURA DE LENGUAJE DE PROGRAMACION
Prof. Jenny Ríos
INTRODUCCION
C++ es un lenguaje de programación creado por Bjarne Stroustrup en los laboratorios de At&T en 1983. Stroustrup tomó como base el lenguaje de programación más popular en aquella época el cual era C.
La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitieran la manipulación de objetos.
En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido
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.
Es decir, si yo quisiera hacer un programa sobre animales, crearía una clase llamada animales, en la cual cada animal, por ejemplo un pato, sería un objeto.
PRINCIPIOS DEL DISEÑO DEL LENGUAJESintaxis:
Es la forma correcta en que se deben escribir las instrucciones para el
computador en un lenguaje de programación específico, o sea su Estructura
Gramatical.
C++ hereda la sintaxis de C estándar, es decir, la mayoría de programas escritos
para el C estándar pueden ser compilados en C++.
Un programa en C++ es una secuencia de caracteres que se agrupan en
componentes léxicos (tokens) que comprenden el vocabulario básico del
lenguaje.
Estos componentes de léxico son: palabras reservadas, identificadores,
constantes, constantes de cadena, operadores y signos de puntuación.
Comentários:
/* Comentario estilo C*/, se puede extender // Este tipo de comentario termina al final de la línea, sólo es posible una línea de comentario .
La versión /*...*/ se utiliza para comentarios que excedan una línea de longitud, y la versión //... se utiliza sólo para comentarios de una línea.
Identificadores
Los identificadores (nombres de variables, constantes, etc.) deben comenzar con una letra del alfabeto (mayúscula o minúscula) o con un carácter subrayado y pueden tener uno o más caracteres. Los caracteres segundo y posteriores pueden ser letras, dígitos o un subrayado, no permitiéndose caracteres no alfanuméricos ni espacios.
test_prueba //legal X123 //legal multi_palabra //legal var25 //legal 15var //no legal
asm* auto breakcasecatch*charclass*const
continue default delete* dodoubleelse enurnextern
floatfor friend*gotoifinline*int long
new*operator*private*protected* public*register returnshort
signedsizeof static struct switchtemplate*this*throw*
try typedef unionunsignedvirtual* voidvolatile while
Palabras reservadas de C++
Las palabras reservadas o claves no se deben utilizar como identificadores, debido
a su significado estricto en C++.
Las palabras reservadas de C++ según el ARM (Siglas del libro de BJARNE
STROUSTRUP en el que se definen las reglas de sintaxis del lenguaje C++
estándar) son:
Declaración de constantes
En C++, los identificadores de variables/constantes se pueden declarar
constantes, significando que su valor se inicializa pero no se puede
modificar. Estas constantes se denominan simbólicas. Esta declaración se
realiza con la palabra reservada const.
const double PI = 3.1416; const char BLANCO = ' '; const double PI_EG = PI; const double DOBLE_PI = 2*PI;
Declaración De Variables:
En C++, las declaraciones de variables se pueden situar en cualquier
parte de un programa. Esta característica hace que el programador
declare sus variables en la proximidad del lugar donde se utilizan las
sentencias de su programa.
Ejemplo de Error de Sintaxis:
Suceden cuando existe código inválido que el compilador no entiende.
• intentas multiplicar una variable de tipo string (cadena) con una variable de tipo integer (entero). El compilador lo detectará porque no puede compilarlo así.
• Cuando olvidas cerrar algún paréntesis o algún corchete.
#include <stdio.h>int main () { int i ; for ( i= 0; i<100; ++1)
printf ( “%d\n” , i); double j; for ( j= 1.7547; j< 25.4675; j+= .001)
printf ( “%lf\n” , j); }
#include <stdio.h>int main (){ for ( int i= 0; i<100; ++i)
cout<< i <<endl; for ( int j= 1.7547; j<25.4675; j+= .001)
cout<< j<<;}
Ejemplos de Código en C++
Sistema de tipos
El concepto de tipo es muy importante en C++. Cada variable, argumento de función y valor devuelto por una función debe tener un tipo para compilarse. Asimismo, antes de evaluar cada una de las expresiones, el compilador da implícitamente un tipo a estas expresiones.
Algunos ejemplos de tipos son int, que almacena valores integrales, double, que almacena valores de punto o la clase std::basic_string de la biblioteca estándar, que almacena texto.
Puede crear su propio tipo definiendo un objeto class o struct.
El tipo especifica la cantidad de memoria que se asignará para la variable (o el resultado de la expresión), las clases de valores que se pueden almacenar en esa variable, cómo se interpretan estos valores (como patrones de bits) y las operaciones que se pueden realizar en ella.
Tipo Tamaño ComentarioINT 4 bytes Opción predeterminada para los valores enteros.
double 8 bytes Opción predeterminada para los valores de punto flotante.
bool 1 byte Representa valores que pueden ser true o false.
char 1 byte Se utiliza en los caracteres ASCII de cadenas de estilo C antiguas u objetos std::string.
wchar_t 2 bytes Representa valores de caracteres “anchos” . Es el tipo de carácter que se utiliza en las cadenas de tipo std::wstring.
unsigned char
1 byte C++ no tiene un tipo byte integrado. Utilice un carácter sin signo para representar un valor byte.
unsigned int
4 bytes Opción predeterminada para los marcadores de bits.
long long 8 bytes Representa valores enteros muy grandes.
Semántica
La semántica es considerada una aplicación de la matemática lógica, refleja el significado de programas o funciones.
Los programas pueden separarse en su parte sintáctica (la estructura gramatical) y su parte semántica (el significado).
Ejemplo de Errores semánticos:
el código de programación es válido porque el compilador lo entiende, pero el programa resultante no hace lo que el programador quiere que haga. No hay forma de que el compilador detecte estos errores.
Ejemplos:
1. Sumar uno 1 a la variable X
x -= 1; (En este caso estamos restándole 1 a la variable X).y += 1; (En este caso estamos sumándole 1 a la variable Y).
2. Actualizar todos los elementos de A
for (size_t i=1; i update(A[i]);
En este caso nos estamos olvidando de actualizar al arreglo A en su posición 0, es decir A[0], por lo que se trata de un error semántico.
3. Calcular el área de un rectángulo.
int CalcularArea( int ancho, int largo ){return ancho + largo;}
En la función anterior, la sintaxis es correcta, pero hay un error semántico.
En realidad para calcular el área del rectángulo se debería multiplicar en lugar de sumar.
Gestión de Memoria:
El lenguaje de programación C++ nos ofrece una gestión de memoria
muy cercana a la RAM, para realizar un uso eficiente de la memoria es
preciso conocer más de cerca cómo se organiza la memoria de un
programa.
Los tipos de memoria de un programa en C++
• Memoria global
• La pila (stack)
• Head (mónton) y Memoria Dinámica
Memoria global
La pila (stack)
Head
Gestión de Memoria:
C++ permite poder reservar memoria según se va necesitando, es decir, en
tiempo de ejecución.
Ventaja de utilizar memoria dinámica:
Los programas aprovecharán mejor la memoria del ordenador en el que se
ejecuten, usando sólo lo necesario.
C++ proporciona dos operadores para la gestión de memoria:
• new() permite reservar memoria del almacén libre.
• delete() permite liberar la memoria cuándo no se necesita
El Operador NEW
Permite reserva un bloque de memoria y devuelve la dirección de comienzo de
dicho bloque. Esta dirección se almacena en un puntero.
<variable_puntero> = new <tipo_dato> ;<variable_puntero> = new <tipo_dato> [num_componentes]; (array)
Cuando se invoca al operador new, el compilador realiza una comprobación de
tipos.
char *p = NULL ;p = new char ;
Si la operación falla, el operador new, devuelve el puntero nulo NULL.
int *p = NULL ; p = new int [100]; if (p == NULL)Cout <<“No hay suficiente memoria en el almacén”;
El Operador DELETE
Cuando ya no necesitemos más el espacio reservado debemos liberarlo, es
decir, indicar al ordenador que puede destinarlo a otros fines. Para ello
utilizamos el operador delete.
delete <variable_puntero>;
delete [ ] <variable_puntero>; (libera memoria para arrays)
Si no liberamos el espacio que ya no necesitamos, corremos el peligro de
agotar la memoria del ordenador.
Manipulación de Excepciones:
C++ proporciona un mecanismo para detectar errores de ejecución: las
excepciones. Para ello disponemos de tres palabras reservadas extra: try, catch y
throw, ejemplo:
int main() { int *x; int y = 100000000;
try { x = new int[y]; x[0] = 10; cout << "Puntero: " << (void *) x << endl; delete[] x; } catch(std::bad_alloc&) { cout << "Memoria insuficiente« << endl; } return 0;}
La manipulación de excepciones
consiste en transferir la ejecución
del programa desde el punto donde
se produce la excepción a un
manipulador que coincida con el
motivo de la excepción.
Como vemos en este ejemplo, un
manipulador consiste en un bloque
try, donde se incluye el código que
puede producir la excepción.
#include <iostream>using namespace std; int main() { try { throw 'x'; // valor de tipo char } catch(char c) { cout << "El valor de c es: " << c << endl; } catch(int n) { cout << "El valor de n es: " << n << endl; } return 0;}
A continuación encontraremos uno o varios manipuladores asociados al bloque try, cada uno de esos manipuladores empiezan con la palabra catch, y entre paréntesis un objeto.
También debe existir una expresión throw, dentro del bloque try. En nuestro caso es implícita, ya que se trata de una excepción estándar.
Lo que sucede es lo siguiente:
el valor devuelto por el throw
se asigna al objeto del catch
adecuado.
En este ejemplo, al tratarse de
un carácter, se asigna a la
variable 'c', en el catch que
contiene un parámetro de tipo
char.
Las excepciones se prefieren en C++ por las razones siguientes:
• Una excepción fuerza el código de llamada para reconocer una condición de error y para controlarla.
• Las excepciones no controladas detienen la ejecución del programa.
• Una excepción omite el punto en la pila de llamadas que puede controlar el error.
• Las funciones intermedias pueden dejar la propagación de excepciones.
• No tienen que coordinar con otros niveles.
• El mecanismo de "desenredo" de la pila de excepción destruye todos los objetos en el ámbito según reglas bien definidas después de que se produzca una excepción.
• Una excepción permite una separación limpia entre el código que detecta el error y el código que controla el error.
• Las excepciones son un medio apropiado para lidiar con los errores producidos por las funciones de bibliotecas.
PARADIGMAS DE LA PROGRAMACION
Un paradigma es una forma de representar y manipular el conocimiento,
representa un enfoque particular o filosofía para la construcción del software.
Diferentes paradigmas dan lugar a diferentes técnicas de programación, lo cual
no implica que ellos sean contradictorios, sino que más bien unos tienden a
complementar otros, por lo que la programación actual tiende a ser
multiparadigma.
C++ es un lenguaje de programación multiparadigma, ya que combina la
programación imperativa con la orientación a objetos; además con la
implementación de plantillas dio origen a un nuevo multiparadigma de
programación llamado Metaprogramacion.
PARADIGMA DE PROGRAMACIÓN IMPERATIVA
Es un paradigma que describe la programación en términos del estado del
programa y sentencias que cambian dicho estado. Los programas imperativos
son un conjunto de instrucciones que le indican al computador cómo realizar una
tarea.
Asociados al paradigma imperativo se encuentran los paradigmas procedural,
modular, y la programación estructurada.
Ejemplo:
PARADIGMA ORIENTADO A OBJETOS
La programación orientada a objetos es un paradigma de programación que
viene a innovar la forma de obtener resultados. Los objetos manipulan los datos
de entrada para la obtención de datos de salida específicos, donde cada objeto
ofrece una funcionalidad especial.
Muchos de los objetos pre-diseñados de los lenguajes de programación actuales
permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos
lenguajes permiten al usuario la creación de sus propias bibliotecas.
Esta basada en varias técnicas, incluyendo herencia, cohesión, abstracción,
polimorfismo, acoplamiento y encapsulamiento.
Su principal ventaja es la reutilización de códigos y su facilidad para pensar
soluciones a determinados problemas.
PARADIGMA DE LA METAPROGRAMACIÓN
Es la programación sobre la programación, o también se puede ver como
programas que construyen programas.
Uno de los principales objetivos de esta técnica es llevar a tiempo de
compilación cálculos que habitualmente se hacen en tiempo de ejecución.
Si bien es cierto que mecanismos como estos tienen algunos inconvenientes
como que por ejemplo hacen el código mas complicado de entender, desde el
punto de vista del programador entrañan un bonito reto a acometer, cuyo
principal objetivo puede ser la optimización.
Ejemplo:
El precompilador resolverá de manera estática, es decir no en ejecución, el valor de Factorial<4>::VALOR por un 24 calculado del modo siguiente:
DOMINIOS DE C++
El área de la aplicación informática de C++, es la comunidad de Sistemas, ya
que es el preferido para los entornos de escritorio, navegadores, aplicaciones
multimedia, entre otros.
C++ es un lenguaje de programación de propósito general. Todo puede
programarse con el, desde sistemas operativos y compiladores hasta
aplicaciones de bases de datos y procesadores de texto, pasando
por juegos, aplicaciones a medida, etc.
Las máquinas virtuales de Java y .NET, también son desarrolladas en C++; y
los compiladores e intérpretes en los lenguajes .NET y en el GCC.
PROGRAMAS ESCRITOS EN C++
PROGRAMA COMENTARIOS
Microsoft WindowsMicrosoft publico hace años que Windows XP esta hecho de 27 millones de líneas de código en C++
OSV Sistema Operativo para la nube.
apple iOS IPod.
4.x RIM BlackBerry OS El propio sistema operativo BlackBerry se desarrolla utilizando C ++.
La interfaz de usuario de Microsoft Windows
Apple MacOS interfaz de usuario (Aqua)
Nombre comercial de la interfaz grafica de Mac OS.
Microsoft Office Fue desarrollado utilizando ensamblador, se trasladó a C y luego se hizo utilizando C ++.
Corel WordPerfect Office Desarrollado en Java para la portabilidad en 1996, y abandonado 1997 porque era demasiado lento. El código fue reconstruida en C ++.
PROGRAMA COMENTARIOSMicrosoft Edge Internet Explorer
Mozilla Firefox
Safari Su fundamento es WebKit , un marco de C ++ .
Google Chrome Una de sus propuestas clave es el ultra rápido motor JavaScript V8 , escrita básicamente en C ++.
Microsoft Outlook
Microsoft Visual Studio
Nero Burning ROM
Java Virtual Machine (JVM)Adobe Photoshop
Facebook Sólo Facebook, no sus pluginsMicrosoft Visual C ++
uTorrent
Microsoft Windows Media Player
CONSIDERACIONES PRAGMÁTICAS
Son aquellas restricciones o características dadas por la computadora o la
implementación del lenguaje, es decir que afectan el programa de
codificación.
A continuación detallaremos las siguientes consideraciones pragmáticas
de nuestro lenguaje C++ .
1. Restricciones de arquitectura
2. Restricciones contextuales
3. Interpretes y equipos virtuales
4. Normalizaciones ANSI / ISO
5. Sistemas Heredados
Son aquellas limitaciones derivadas de las tecnologías disponibles
para implementar sistemas de información. Unas arquitecturas son
más recomendables de implementar con ciertas tecnologías,
mientras que otras tecnologías no son aptas para determinadas
arquitecturas.
Podemos encontrar bastantes requerimentos para la instalacion de
compliadores de las multiples plataformas que existen en el
mercado en la actualidad, pero nos centraremos en la que
estamos usando:
Dev-C ++.
RESTRICCIONES DE ARQUITECTURA
Los requerimientos mínimos para ejecutar Dev-C++ son:
• Microsoft Windows 95, 98, NT 4, 2000, XP, o superior
• 32 MB RAM
• 100 Mhz Intel compatible CPU
• 30 MB de espacio libre de disco
Los requerimientos aconsejados para Dev-C++ son:
• Microsoft Windows 2000, XP, o superior
• 64 MB RAM
• 400 Mhz Intel compatible CPU
• 200 MB de espacio libre de disco
RESTRICCIONES CONTEXTUALES
Se basa en la parte de los compiladores, es decir como ocurre el
proceso de compilación.
Un compilador es un programa que lee el código escrito en un lenguaje
(lenguaje origen), y lo traduce o traduce en un programa equivalente
escrito en otro lenguaje (lenguaje objetivo).
Como una parte fundamental de este proceso de traducción, el
compilador le hace notar al usuario la presencia de errores en el código
fuente del programa.
El C++ es un lenguaje que utiliza un compilador y su trabajo es el de llevar
el código fuente escrito en C++ a un programa escrito en lenguaje
máquina.
Entrando en más detalle un programa en código fuente es compilado
obteniendo un archivo parcial (un objeto), luego el compilador invoca al
linker que convierte al archivo objeto en un ejecutable, que es un archivo
que esta en formato binario (ceros y unos) y que puede funcionar por si
solo.
Además el compilador de C++ realiza una comprobación de errores en el
programa, es decir, revisa que todo este en orden, por ejemplo variables y
funciones bien definidas, esta fuera del alcance del compilador que por
ejemplo el algoritmo utilizado en el problema funcione bien.
La siguiente figura muestra los pasos para tener un programa ejecutable
desde el código fuente:
INTERPRETES Y EQUIPOS VIRTUALES
C++ en un lenguaje compilado, y no interpretado. Esta diferencia es
muy importante, ya que afecta mucho a varios aspectos relacionados
con la ejecución del programa.
En los lenguajes compilados el proceso de traducción sólo se hace una
vez. El programa compilador toma como entrada el código fuente del
programa, y da como salida un fichero que puede ser ejecutado por el
ordenador directamente.
Una vez compilado, el programa ejecutable es autónomo, y ya no es
necesario disponer del programa original ni del compilador para
ejecutarlo.
Existen numerosos equipos portables de C++ en el mercado, desde
ediciones gratuitas y descargables a través de internet, hasta
profesionales (de pago), a continuación una lista de algunos de ellos:
Bajo Microsoft Windows:
• Code::Blocks• Dev-C++• Visual C++• CodeLite
Compiladores gratuitos
• Appe C++• Bloodshed Dev-C++• Borland C++• Digital Mars C++• Intel C++ para Linux• DJ Delories´s C++
Bajo MacOS:
• Xcode• Zinjai• CodeLite
Compiladores pagados
• Borland C++• Comeau C++ • Compaq C++• Green Hills• IBM C++• Intel C++
NORMALIZACIONES ANSI / ISO
El Instituto Nacional Americano de Estándares (ANSI, por sus siglas en
inglés: American National Standards Institute) es una organización sin
fines de lucro que supervisa el desarrollo de estándares para
productos, servicios, procesos y sistemas en los Estados Unidos.
ANSI es miembro de la Organización Internacional para la
Estandarización (ISO).
La Organización Internacional de Normalización (ISO) es una
organización para la creación de estándares internacionales
compuestos por diversas organizaciones nacionales de
estandarización.
C ++ ha sido estandarizado por ISO mediante un grupo de trabajo
conocido como el JTC 1 / SC22 / WG21. Hasta el momento, se han
publicado cuatro revisiones del estándar C ++ .
• En 1998, C ++ es estandarizado por primera vez como ISO / IEC 14882: 1998,
que se conoce informalmente como C ++ 98.
• En 2003, se publicó una nueva versión del estándar C ++ denominado ISO / IEC
14882: 2003.
• En 2011 se publico C ++ 11(14882: 2011) incluyó muchas adiciones al núcleo
del lenguaje y la biblioteca estándar.
• En 2014, C ++ 14 fue lanzado como una pequeña extensión de C ++11, que
ofrece principalmente correcciones de errores y pequeñas mejoras.
Una importante revisión, informalmente conocido como, C ++ 17, está
prevista para el año 2017, que es casi en su totalidad de funciones.
• ISO / IEC TR 18015: 2006 sobre el uso de C ++ en sistemas integrados y en
implicaciones de rendimiento del lenguaje C ++ y características de la
biblioteca.
• ISO / IEC TR 19768: 2007 también conocido como el Informe Técnico C ++,
• ISO / IEC TR 29124: 2010 en las funciones matemáticas especiales,
• ISO / IEC TR 24733: 2011 en decimal de coma flotante aritmética,
• ISO / IEC TS 18822: 2015 en la biblioteca de sistema de archivos estándar,
• ISO / IEC TS 19570: 2015 en paralelo versiones de los algoritmos de la
biblioteca estándar,
• ISO / IEC TS 19841: 2015 en el software de memoria transaccional,
• ISO / IEC TS 19568: 2015 en un nuevo conjunto de extensiones de
biblioteca, algunos de los cuales ya están integrados en C ++ 17,
• ISO / IEC TS 19217: 2015 en los Conceptos de C++
Como parte del proceso de normalización, ISO también publica informes
técnicos y especificaciones:
SISTEMAS HEREDADOS
C++ nació como una extensión del lenguaje C, para conseguir aunar la
eficiencia del lenguaje C con las ventajas del modelo orientado a objetos.
El primer paso hacia C++ se produjo en 1980, cuando se presentó un
primer lenguaje llamado C with classes.
En 1983/84 se rediseñó este lenguaje, pasando a llamarse C++.
Tras pequeños refinamientos, en 1985 se puso a disposición de todo el
mundo y se documentó en el libro de Bjarne Stroustrup, “The C++
Programming Language”.
CUALIDADES DE UN LENGUAJE DE PROGRAMACIÓN
Para saber cuando un lenguaje es eficiente, existen determinados
criterios o características que nos ayudan, cabe mencionar que no existen
lenguajes buenos o malos sino apropiados e inapropiados para una
determinada situación o problema.
A continuación analizaremos los siguientes criterios:
Basándonos en una serie de preguntas, que nos ayudaran a entender de
una mejor manera en que consiste cada uno de ellos
Simplicidad y Claridad
Uniones
Ortogonalidad
Fiabilidad de los Programas
Aplicabilidad
Abstracción
Implementación Eficiente
SIMPLICIDAD Y CLARIDAD:
Se refiere al grado de dificultad para el programador de escribir y leer
programas de otros, aprender y enseñar el lenguaje.
¿Es fácil para un programador escribir un programa en C++?
Esto depende del tipo de programador, llegar a ser un programador eficiente es
producto de un proceso de aprendizaje que tarda años, si en algún punto de ese
proceso el programador aprendió a utilizar C, le será mucho mas fácil escribir un
programa en C++, que a un programador que solo tenga conocimientos en
prolog por ejemplo.
Hay lenguajes como C++ que sacrifican la simplicidad y claridad a cambio de la
velocidad y eficiencia. Por eso se dice que “C++ es un lenguaje para
programadores expertos”.
¿Hasta que punto es inteligible C++ para un lector medio?
Nuevamente depende del tipo de lector, definitivamente debe ser
alguien con conocimientos básicos en programación, para que al menos
logre entender que hace, para que sirve cada línea de código.
¿Es fácil aprender y enseñar C++?
Aprender programación definitivamente no es algo que pueda hacerse
de un día para otro, y requiere de una gran cantidad de trabajo duro y
dedicación, C++ es un lenguaje con cierta complejidad, sin embargo, es
relativamente fácil de aprender o enseñar, si se tiene la actitud correcta.
“El que quiere, puede” pero no hay que olvidar que La programación es
un arte que se aprende en modo “prueba y error”.
UNIONES
Se refiere al momento en que se define el tipo de dato de las variables.
Es decir, en un lenguaje fuertemente tipado, la definición del tipo de una
variable se puede hacer en tiempo de compilación.
¿Cómo maneja la parte de uniones C++?
En C++, las uniones son expresados casi igual que las estructuras. Los
elementos, no necesitan ser valores simples.
Las uniones pueden referenciarse completas, usando su nombre, como
hacíamos con las estructuras, y también se puede acceder a los
elementos en el interior de la unión usando el operador de selección (.),
un punto. También pueden declararse más objetos del tipo de la unión
en cualquier parte del programa
ORTOGONALIDAD
Se refiere al significado de las palabras reservadas o símbolos
¿Un símbolo o una palabra reservada tiene siempre el mismo significado,
independientemente del contexto que utilicemos?
Si una palabra reservada siempre tiene el mismo significado
independientemente del contexto en que se use el lenguaje tiene mayor
Ortogonalidad que en otro donde no sucede eso.
Un ejemplo es el significado de “+” si siempre representa la suma
aritmética como en C++, es ortogonal, por el contrario si representa a la
suma para variables numéricas y concatenación para variables de tipo
cadena, entonces es menos ortogonal.
¿Tiene C++ un pequeño número de características básicas que
interactúan de forma predecible, sin importar como las combinemos en
un programa?
Si cuenta con características que se comportan igual siempre, es decir
siempre van a cumplir con la misma función independiente de donde las
ubiques, como por ejemplo:
• {} Las llaves sirven para definir el principio y el final de un bloque de
instrucciones.
• ; El punto y coma se utiliza para dar fin a una línea.
• - El operador menos siempre va a ser la resta aritmetica.
Entre otras.
FIABILIDAD DE LOS PROGRAMAS:
Se refiere al comportamiento del programa, al momento de ejecutarlo
más de una vez con el mismo conjunto de datos de entrada.
¿El programa se comporta igual cada vez que lo ejecutamos con los
mismos datos de entrada?
Si siempre se comportara de la misma manera, ya que que C++ es un
lenguaje fuertemente tipado y tiene una sintaxis y semántica bien
definida.
¿Se comporta igual cuando lo ejecutamos en plataformas distintas?
Si esto gracias a su portabilidad, que hace que pueda ser usado en
diferentes tipos de S.O y por tanto se adapta a la infraestructura donde
vaya a ejecutarse el software.
¿El lenguaje proporciona un soporte adecuado para las aplicaciones del
dominio en el que lo estamos utilizando?
APLICABILIDAD
Si, por esta razón C++, es muy usado en aplicaciones científicas (para
experimentos informáticos, físicos, químicos, matemáticos), industriales
(industria robótica, cibernética, sistemas de información y base de
datos para la industria petrolera y petroquímica, la simulación de
maquinas de manufactura), simulaciones de vuelo, etc.
El lenguaje debe facilitar la creación de programas que funcionen en
el mayor número de entornos computacionales.
ABSTRACCIÓN:
Se refiere al nivel de complejidad de las funciones o clases
incorporadas que le ahorran al programador tiempo de desarrollo al
proporcionarle algoritmos ya implementados.
¿Cuántas veces hemos reinventado un algoritmo de ordenación o
estructura de datos de listas enlazadas que probablemente haya sido
complementado ya miles de veces?
Probablemente muchas y esto debido a que C++ cuenta con librerías
que son cierto tipo de archivos que podemos importar y estos archivos
contienen las especificaciones de diferentes funcionalidades ya
construidas y utilizables, como por ejemplo leer del teclado o mostrar
algo por pantalla entre muchas otras más.
IMPLEMENTACION EFICIENTE
Es la facilidad o dificultad que se tiene para implementar prácticamente
un lenguaje de programación.
¿Nos permite las construcciones y las características de C++, su
implementación práctica y eficiente en las plataformas coetáneas?
C++ Es un lenguaje de nivel intermedio, permitiendo beneficiarse de las
ventajas de ambos tipos de lenguajes, y así obteniendo características
de ambos como por ejemplo; la Sencillez, uniformidad y Portabilidad.
Es un lenguaje de propósito general. Se ha utilizado para el desarrollo
de muy diversas aplicaciones y los programas escritos en C++ son
fácilmente trasportables a otros sistemas.
INFOGRAFÍA
http://www.conocimientosweb.net/dcmt/ficha13499.html
http://aldairjaimes.blogspot.com/2011/04/historia-y-aplicabilidad-de-la.html
https://www.programarya.com/Cursos/C++/Bibliotecas-O-Librerias
https://alanchavez.com/lenguajes-de-programacion-faciles-de-aprender/
https://aprendiendoarduino.wordpress.com/2015/03/26/lenguaje-de-
programacion-c/
https://es.wikipedia.org/wiki/Arquitectura_de_software
http://metodos.fam.cie.uva.es/~imartin/noticias/varios/ML33/adjuntos/
index.html
https://www.google.com.co/#q=historia+de+c%2B%2B
https://en.wikipedia.org/wiki/C%2B%2B
http://www.zator.com/Cpp/E5.htm
INFOGRAFÍA
http://foro.elhacker.net/ejercicios/
ejercicios_resueltos_c_programacion_estructurada-t201980.0.html
http://www.infor.uva.es/~cvaca/asigs/docpar/intro.pdf
https://ociotec.com/metaprogramacion-con-plantillas-en-cpp/
https://zbutton.wordpress.com/2009/10/12/%C2%BFque-es-la-
metaprogramacion/
http://www.zator.com/Cpp/E1_2.htm
http://tony-valderrama.blogspot.com/2008/08/paradigmas-de-programacin-
y-muchos.html
http://www.genbetadev.com/cc/los-grandes-proyectos-informaticos-se-
programan-en-c-y-c
https://kevinldp.wordpress.com/dominios-de-la-programacion/