Instalación Qt 5.2 para Windows 7 ( MinGW, CMake)

viernes, 3 de enero de 2014 4 comentarios



"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
Confucio
Un cordial saludo gente,    en este post  mostrare la instalación y configuración para el IDE de programación Qt Creator  en su versión 5.2 para Windows 7. Junto a  las librerías MinGW y CMake .
Básicamente es una plataforma IDE    (entorno de desarrollo integrado) adaptado a las necesidades de los desarrolladores. Entre los lenguajes que maneja este editor podemos mencionar:

  • C ++
  • QML 
  • ECMA.
  • CSS
  • JAVASCRIPT

En esta oportunidad  usaremos el entorno de desarrollo para programar en el lenguaje c++, usando compiladores y gestores de archivos  independientes de QT . Por lo cual mostrare lo necesario para la instalación.

Las herramientas:



Qt 5.2.0 for Windows


Librerías de Qt y el ID de desarrollo en cualquiera de sus versiones, para este caso usare la versión Qt 5.2.0 for Windows 32-bit (MinGW 4.8, OpenGL, 689 MB).
Nota: En las versiones anteriores a las 4.8, era necesario descargar 2 archivos por separado de la misma pagina, tanto el editor y las librerías. Para las versiones mas actuales solamente es necesario descargar un archivo para nuestro sistema operativo, el cual ya incluye los dos  en el instalador.
Obtenidas desde su pagina oficial http://qt-project.org/downloads




Compilador para c++


MinGW32  es una implementación de los compiladores GCC y G++  para la plataforma Win32, que permite migrar la capacidad de este compilador en entornos Windows.
MinGW proporciona un completo conjunto de herramientas de programación de código abierto que es adecuado para el desarrollo de aplicaciones de MS-nativas de Windows, y que no dependen de ningún tercero   C-Runtime DLL. (Se hace depender de una serie de DLL proporcionada por Microsoft sí mismos, como componentes del sistema operativo, más notables entre éstos es MSVCRT.DLL, la biblioteca de tiempo de ejecución de Microsoft C Además, las aplicaciones de rosca. deben enviar con una DLL soporte para hilos de libre disposición, proporcionado como parte de sí mismo MinGW).
http://www.mingw.org/



CMake se utiliza para controlar el proceso de compilación de software utilizando la plataforma simple y compilador de archivos de configuración independientes, como también es de gran utilidad manipulación de     entornos gráficos 2D y 3D.
CMake es una familia de herramientas diseñada para construir, probar y empaquetar software. CMake se utiliza para controlar el proceso de compilación del software usando ficheros de configuración sencillos e independientes de la plataforma. Cmake genera makefiles nativos y espacios de trabajo que pueden usarse en el entorno de desarrollo deseado. Es comparable al GNU build system de Unix en que el proceso es controlado por ficheros de configuración, en el caso de CMake llamados CMakeLists.txt. Al contrario que el GNU build system, que está restringido a plataformas Unix, CMake soporta la generación de ficheros para varios sistemas operativos, lo que facilita el mantenimiento y elimina la necesidad de tener varios conjuntos de ficheros para cada plataforma.
http://www.cmake.org/cmake/resources/software.html





Primer paso Instalar CMake


Primero instalamos Cmake en su  versión correspondiente a cada arquitectura  de nuestro pc. Ya sea 32 o 64 byts.





Se elige el lugar de la instalación   pero  este puede ser instalado en cualquier carpeta del ordenador siempre y cuando recordemos  la ruta. Esta nos servirá mas adelante para la configuración.


Se selecciona la opción instalar y se espera que haga el proceso. Al finalizar la misma solamente le dan salir.


Segundo paso Instalar MinGW


Instalaremos la herramienta mingw. Este es   un gestor de archivos los cuales dan una apariencia del gestor GNU. De Linux llamado sinaptic. Que permitirá descargar e instalar los paquetes  que deseamos. Para este caso seleccionaremos las siguientes  opciones:





Al terminar de configura el sistema este te permitirá elegir los programas que deseas instalar.
Para los cuales debes marcar para instalar los siguientes:
Dando clic derecho sobre el nombre y en la opción marcar para instalar o también puede darle doble clic.
mingw32 – gcc- g++  : los cuales los compiladores respectivamente
ming-developer – toolkit. : herramientas del sistema
msys-base: libreriras del sistema


Cuando ya este seleccionadas se va a la pestaña Istallation-> en la opcion aplicar cambios.
En este caso solamente  dejaremos que descargue los archivos correspondientes y su instalación.

Al finalizar la misma solamente le dan salir.




Tercer paso Instalación de Qt


Si elegiste una versión anterior a la de 5.1  debes tener en cuenta que necesitas descargar los 2 archivos tanto librerías y el creator de QT.
Los cuales debes instalar de  la siguiente forma. Primero QT creator y seguidamente debes instalar Qt librerías.
Si elegiste la versión más reciente solamente debes darle instalar a un único archivo como a continuación se muestra. La instalación de versiones anteriores no difiere de esta. Son exactamente los mismos paso. Lo único que cambia es que son 2 archivos instalables.




En esta sección para seleccionar componentes, se deja por defecto ya que nosotros instalamos previamente el nuevo compilador que usara nuestro IDE.

Aceptamos los términos de uso bajo algún tipo de licencia GPL  a nuestro gusto. 


Esperamo que termine la instalacion.

Al finalizar la instalacion abrimos el IDE para realizar las configuraciones adecuadas.





Configuraciones


Abrimos el IDE y nos dirigimos a las pestaña tools.
Y elegimos opciones.
En un costado nos aparecerá una serie de opciones las cuales nos permite modificar el entorno.




Ahora nos dirigimos a la pestaña con el nombre Cmake. El cual aparecerá vació y por medio del botón Brows navegaremos en nuestro disco duro, para localizar el archivo cmake.exe.
El cual normalmente se encuentra en esta dirección: C:\Program Files\CMake 2.8\bin\cmake.exe.
Si en dado caso instalaste los archivos de cmake en otro disco solamente debes cambiar la letra de la unidad.

Ahora nos vamos a la pestaña de compiladores, que al inicio tiene detectado uno por defecto,pero dicho compilador no sera utilizado, en nuestro caso nosotros instalamos por nuestra cuenta dichos archivos con el MinGW.
Por tanto le damos agregar uno nuevo de tipo MinGW.



Al añadir un nuevo compilador, nos posicionamos sobre el y con la ayuda del botón Brows navegaremos en nuestro disco duro, para localizar el archivo mingw32-make.exe.
El cual normalmente se encuentra ubicado en C:\MinGW\bin\mingw32-make.exe.
Si en dado caso instalaste los archivos de MinGW en otro disco solamente debes cambiar la letra de la unidad.

Ahora nos moveremos a la pestaña Kits que al inicio tiene detectado un Desktop por defecto. Pero este no sera utilizado.
Por tanto crearemos uno nuevo de la siguiente manera.
Seleccionamos el que se encuentra por defecto y con el botón Clone, clonamos la entidad.

Ya clonada la entidad podemos cambiarle nombre al mismo y configura como se muestra en la siguiente imagen.

Al finalizar dicha configuración, solamente debemos dar clic en el botón Apply, para aplicar los cambios realizados.
Y con esto finaliza la configuración.

Vídeo:







Programación Orientado a Objetos

miércoles, 1 de enero de 2014 0 comentarios



"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
 Confucio
La POO es de manera  simplificada  un sistema de programación que utiliza objetos para la resolución de problemas, interrelacionándolos mediante mensajes.
Es decir que la Programación Orientada a Objetos aparece como una evolución natural en los paradigmas de programación que busca solucionar los principales problemas del paradigma anterior.
Los Objetivos principales de este paradigma son los siguientes:
  • Distinta abstracción del mundo.
  • Dificultad en modificación y actualización.
  • Dificultad en mantenimiento.
  • Dificultad en reutilización.


Caracteristicas de la Programacion Orientada a Objetos






Conceptos de clase y objeto, que proporcionan una abstracción del mundo centrada en los seres y no en los verbos.
Los datos aparecen encapsulados dentro del concepto de clase.
El acceso a los datos se produce de manera controlada e independiente de la representación final de los mismos.
Como consecuencia, se facilita el mantenimiento y la evolución de los sistemas, al desaparecer las dependencias entre distintas partes del sistema.
Mediante conceptos como la composición, herencia y polimorfismo se consigue simplificar el desarrollo de sistemas.
La composición y la herencia nos permiten construir clases a partir de otras clases, aumentando en gran medida la reutilización.




Objetos y Clases


Mediante la POO, a la hora de tratar un problema, podemos descomponerlo en subgrupos de partes relacionadas. Estos subgrupos pueden traducirse en unidades auto contenidas llamadas objetos. Antes de la creación de un objeto, se debe definir en primer lugar su formato general, su plantilla, que recibe el nombre de clase.
Una clase, por lo tanto, puede definirse como un tipo de datos cuyas variables son objetos o instancias de una clase. Puede decirse que el concepto de clase es estático y el concepto de objeto es dinámico; ya que, sólo existe en tiempo de ejecución. Cada objeto de una clase comparte con el resto las operaciones, y a la vez posee sus propios valores para los atributos que posee:
Esto es, su estado. Las operaciones, también llamadas mensajes, se usarán tanto para cambiar el estado de un objeto como para comunicar objetos entre sí mediante el paso de mensajes.


Pilares del Paradigma a Objetos


Abstracción


Esta es una cualidad de los seres humanos que les permite encontrar lo básico que hay de común en una serie de objetos. Mediante la abstracción la mente humana modela la realidad en forma de objetos. Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar. Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.



Encapsulación


Una de los pilares básicos de la POO es la encapsulación de los datos. Según los principios de este paradigma de programación, el acceso a los datos de una clase debe realizarse de forma controlada, protegiéndolos de accesos no deseados. Cuando se desarrolla una aplicación, a veces es necesario ocultar los tipos de datos usados para que el usuario permanezca independiente de los detalles de los mismos.
La encapsulación es el mecanismo que enlaza el código y los datos, a la vez que los asegura frente a accesos no deseados. La principal razón del uso de la encapsulación es evitar el acceso directo a atributos de una clase desde fuera de la propia clase. Se busca, principalmente, que el acceso a estos atributos se realice siempre mediante funciones miembro de la propia clase. El acceso a ciertos elementos de datos se puede controlar de forma estricta considerándolos privados.

Polimorfismo

El polimorfismo es el tercer pilar de la programación orientada a objetos. Supone un paso más en la separación entre la interfaz y la implementación. Permite mejorar la organización del código y simplificar la programación. Además, aumenta las posibilidades de extensión y evolución de los programas.
Está directamente relacionado con las jerarquías de clase. Básicamente, nos va a permitir que unos objetos tomen el comportamiento de objetos que se encuentran más abajo en la jerarquía, aumentando enormemente la expresividad del lenguaje. En definitiva, se trata de la posibilidad de que la identificación del tipo de un objeto se haga en tiempo de ejecución en vez de en tiempo de compilación. De esta manera, se pueden, incluso, construir estructuras en las que cada uno de sus elementos es de un tipo diferente.



Herencia


Se puede agregar que la herencia es el proceso por el cual un objeto adquiere las propiedades de otro objeto.  Por ejemplo, un perro es un mamífero, y los mamíferos son animales, y los animales seres vivos. Del mismo modo,  se promueve en gran medida que las relaciones entre objetos se basen en construcciones jerárquicas. Esto es, las clases pueden heredar diferencialmente de otras clases (denominadas "superclases") determinadas características, mientras que, a la vez, pueden definir las suyas propias. Tales clases pasan, así, a denominarse "subclases" de aquéllas.



Antecedentes de C++

sábado, 21 de diciembre de 2013 0 comentarios



"Cualquiera  puede escribir código que la PC entienda. Los buenos programadores escriben código que los humanos pueden entender." -
 Martin Fowler . 
A principios de la década de los ochenta, Bjarne Stroustrup desarrolló una extensión de C en los laboratorios Bell: C++. Este lenguaje proporciona un conjunto de características que “pulen” al lenguaje C, pero lo más importante es que proporciona la capacidad de una programación orientada a objetos.
Una revolución se está gestando en la comunidad del software. Escribir software rápida, correcta y económicamente es aún una meta escurridiza, en una época en que la demanda de nuevo y más poderoso software se encuentra a la alza. Los objetos son en esencia componentes reutilizables de software, que modelan elementos del mundo real. Los
desarrolladores de software están descubriendo que el uso de una metodología de diseño e implementación modular y orientada a objetos puede hacerlos más productivos que mediante las populares técnicas de programación anteriores. Los programas orientados a objetos son más fáciles de entender, corregir y modificar.

Historia de C++


El lenguaje de programación C++, desarrollado en AT&T por Bjarne Stroustrup a principios de la década de los ochenta, se basa en dos lenguajes (C, que se desarrolló inicialmente en AT&T para implementar el sistema operativo UNIX a principios de la década de 1970, y Simula 67, un lenguaje de programación de simulación, desarrollado en Europa y puesto en circulación en 1967). C++ absorbió las características de C y agregó las herramientas de Simula para crear y manipular objetos.
Ninguno de los lenguajes C o C++ estaba diseñado originalmente para usarse ampliamente, más allá de los laboratorios de investigación de AT&T. Pero el soporte básico se desarrolló rápidamente para cada uno de ellos.

Características de C++


Lenguaje  Orientado a objetos.
A mediados de los años 60 se empezó a vislumbrar el uso de las computadoras para la  simulación de problemas del mundo real. Pero el mundo real está lleno de objetos, en la  mayoría de los casos complejos, los cuales difícilmente se traducen a los tipos de datos  primitivos de los lenguajes imperativos. Así es que a dos noruegos, Dahl y Nygaard , se  les ocurrió el concepto de objeto y sus colecciones, llamadas clases de objetos, que  permitieron introducir abstracciones de datos a los lenguajes de programación. La  posibilidad de reutilización del código y sus indispensables modificaciones, se reflejaron en  la idea de las jerarquías de herencia de clases. A ellos también les debemos el concepto de  polimorfismo introducido vía procedimientos virtuales. Todos estos conceptos fueron  presentados en el lenguaje Simula 67, desde el año 1967. Aunque pensado como lenguaje  de propósito general, Simula tuvo su mayor éxito en las aplicaciones de simulación  discreta, gracias a la clase SIMULATION que facilitaba considerablemente la  programación.


Ventajas

  • En c++,  la unidad de programación es la clase , aparit de la cual los objetos son producidos. Se trata de una programación orientada a objetos.
  • Las bibliotecas estándar de c++ proporcionan un conjunto extenso de capacidades de entrada y salida de tipo seguro. No podrá introducirse datos equivocados dentro del sistema.  
  • Lenguaje muy didáctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
    Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
  • Permite elaborar aplicaciones sencillas , hasta sistemas operativos y mucho más, todo eso dependiendo del manejo del lenguaje.
    Actualmente, puede compilar y ejecutar código de C, ya viene con librerías para realizar esta labor.
  • Es un lenguaje muy empleado, existen muchos tutoriales en línea, libros, códigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho más con este lenguaje.
  • Existen muchos algoritmos cuyo pseudocódigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solución (porque el que veas un fragmento de código no asegura que sea correcto al 100%).

Desventajas

  • Uso de DLLs (librerías dinámicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas librerías, y correr los riesgos por el manejo de esta memoria.
  • Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
  • Manejo de punteros y memoria respecto a ello. Claro, esta también es una gran ventaja porque permite un mejor control de la memoria y una buena administración de recursos de computadora, pero la inexperiencia de los desarrolladores o la pérdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
    No es recomendable para desarrollo de páginas Web.
  • Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows.

Antecedentes del lenguaje C

1 comentarios



Si no fuera por el C, estaríamos escribiendo programas en BASI, PASAL, o OBOL. 
La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico  de los humanos, fue inventada para facilitar el trabajo intelectual. Es  decir que esta fue específicamente diseñada para brindar soluciones  a través de algoritmo que resuelve el problema, el programador lo codifica en un lenguaje de programación, el cual la  computadora es capaz de entender, luego la computadora ejecuta el algoritmo expresado  como programa en el lenguaje de programación en cuestión  y listo.
En consecuencia, los lenguajes de  programación tienen que adaptarse a éstas crecientes necesidades y aumentar la  expresividad para poder resolver problemas muy diversos y cada vez más complejos.
Además, tienen que ofrecer cierta eficiencia en la ejecución. Es un logro difícil de alcanzar  y por lo tanto, se requiere una búsqueda constante de nuevos lenguajes para ello.

Historia de C


C es una evolución de los lenguajes BCPL -desarrollado por Martin Richards- y B –desarrollado por Ken Thompson en 1970- para el primitivo UNIX 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 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.

Características de C


Este es un lenguaje  de  programación  de propósito general que ofrece como ventaja economía  de expresión, control de flujo y estructura de datos mordernos y un rico conjunto de operadores. A demás, C no es un lenguaje  de muy alto nivel, y no esta especializado en alguna área especial de aplicación. Pero su ausencia de restricciones y su generalidad lo hacen más conveniente y efectivo para muchas tareas que otros lenguajes.
Este lenguaje ha sido estrechamente asociado con el sistema unix en donde fue desarrollado puesto que tanto que el sistema como los programas que corren en el están escritos en lenguaje C. Sin embargo este no está ligado a ningún sistemas operativo ni a ninguna máquina, debido a su utilidad para escribir compiladora y sistemas operativos, se utiliza con igual eficacia para escribir importantes programas de diversas disciplinas.

Lenguaje Imperativo

En este tipo de lenguajes, cuyo origen  está ligado a la propia arquitectura de von Neumann, la arquitectura consta de una  secuencia de celdas, llamadas memoria, en la cual se pueden guardar en forma codificada,  los mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de  manera secuencial una serie de operaciones, principalmente aritméticas y booleanas,  llamadas comandos. En general, un lenguaje imperativo ofrece al programador conceptos  que se traducen de forma natural al modelo de la máquina
Ventajas
  • C se caracteriza por su velocidad de ejecución. En los primeros días de la informática, los problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en lenguaje ensamblador (lenguaje muy cercano al lenguaje máquina).
  • El lenguaje C es poderoso y flexible, con órdenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.
  • Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.
  • Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación -propiedad conocida como portabilidad-. El hecho de que C sea portable es importante ya que la mayoría de los modernos computadores tienen un compilador C, una vez que se aprende C no tiene que aprenderse un nuevo lenguaje cuando se escriba un programa para otro tipo de computadora. No es necesario reescribir un problema para ejecutarse en otra computadora.
  • Debido a que existen muchos programas escritos en C, se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones. Existen bibliotecas del lenguaje C que soportan aplicaciones de bases de datos, gráficos, edición de texto, comunicaciones, etc.
Desventajas
  • C es un lenguja de relativo bajo nivel.
  • Este trata el mismo tipo de objeto que la mayoría de las computadoras, llamadas caracteres, números y direcciones.
  • No proporciona operaciones para tratar directamente con objetos compuestos, tales como cadenas de caracteres, conjuntos, listas o arreglos.
  • No existen operaciones que manipulen arreglos o cadenas completas.
  • El lenguaje no define ninguna facilidad para asignación de almacenamiento que no sea la de definición estática y la disciplina de pilas y provistas por las variables locales de funciones.
  • No emplea heap ni recolector de basura.
  • En si mismo no proporciona capacidades de entrada y salida; no hay propociones Read o write, ni métodos propios de acceso a archivos.

IDES para programar C++

martes, 17 de diciembre de 2013 0 comentarios



"Desde muchos puntos de vista aprender a programar es toda una disciplina,  que requiere nuestro mejor tiempo y dedicación."

 

La principal razón por que las personas aprenden leguajes y técnicas  de programación es utilizar la computadora  como una herramienta para resolver problemas.
Como hemos mostrado en publicaciones anteriores, la programación no es una ciencia  de conocimientos lineales, es decir, existen muchas ramas  en  las cuales podemos desempeñarnos.  Entre ellas aplicaciones web, móviles o de escritorio.
Primero que nada  debemos adquirir cientos conceptos y herramientas  básica para iniciar, a continuación mostrare algunos de ellos que son de mucha utilidad.

IDE :


Qué es un IDE de programación?

Todo código de programación no es mas que un archivo de texto simple,  por lo tanto todo programa podría escribirse con un procesador de texto como el Block de Notas de Windows o en el   de Linux.
Claro que hacer un programa   usando solo un procesador de texto es extremadamente complejo o por lo menos muy lento ya que un programa no es solo código, se necesita un compilador, vistas previas de lo que estamos desarrollando, corrección del código, característica fundamental que nos ahorrará cientos de horas de trabajo si solo usaremos un editor de texto.

IDE

Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

Visual Estudio y C++


Empezando por la versión de Microsoft, el Visual C++ es quizás el mas completo de todos los entornos que vamos a encontrar para trabajar en C++. Junto con sus completas librerías (el conjunto SDK) podemos crear casi de todo, y además es la plataforma utilizada por mas del 90% de los desarrolladores de video juegos ya sea en 2D o en 3D.
Su compilador es muy veloz, el depurador es excelente, permite el encarpetamiento de clases para mejorar la organización de los proyectos y tiene una integración sencilla con herramientas externas.
Sus desventajas son, que no es conveniente utilizarlo si vamos a realizar proyectos pequeños ya que requiere demasiadas especificaciones antes de poder empezar a tipear código, además sus diferentes versiones van desde los u$s 600 hasta los u$s 10939, es un producto caro, no es recomendable para personas que quieren comenzar en la programación C++ y sus requerimientos en memoria son mucho mas altos que los de sus competidores.
Mejor conformidad C + + lenguaje . Soporte para C + 11 se inició en Visual Studio 2010, que incluye funciones automáticas y lambda. En Visual Studio 2012, implementamos más del ejemplo de norma-por ejemplo, para los lazos, hilos estándar y futuros basados ​​en la gama. Visual Studio 2013 ofrece incluso las plantillas más variadic, delegando constructores, inicializadores de miembros de datos no estáticos, inicialización uniforme, 'utilizando' alias y otras características. Para obtener más información, consulte el C + + Conformidad Hoja de Ruta en el blog de ​​Soma, y aprender sobre el futuro de C + + a partir de hierbas Sutter.
Editor, editor, redactor! Estamos introduciendo nuevas características del editor que aumentan la productividad, ahorrar tiempo y ofrecer un mejor contexto. Hemos añadido más de 40 ajustes para ayudarle a controlar / C + formato C + código. finalización Brace cierra automáticamente los frenos (y otros personajes que por lo general vienen en pares).Parámetro Ayuda tooltips ahora cambiará automáticamente a la mejor la sobrecarga de juego, basado en el número de parámetros que 've escrito. La mejorada barra de desplazamiento vertical proporciona información visual acerca de su archivo. Puede usar Peek Definición para ver definiciones en línea en lugar de abrir una nueva ficha de documento. (Para verlo en acción, coloque el cursor en el símbolo y presione Alt + F12.) Navegar hacia usa inteligente de búsqueda semántica para ayudarle a encontrar definiciones o archivos de símbolos. Para obtener una lista de las mejoras de edición y productividad, vea Mejoras de C + + IDE de Visual Studio 2013 y 2013 Características Nuevo Editor de Visual Studio .
Mejor rendimiento y mejor calidad del código . Hemos mejorado el compilador Visual C + para que genere código más rápido, incluso de las fuentes existentes. Hemos añadido una optimización que cambia el orden de ciertas bucles anidados, para reducir puestos de acceso a la memoria. También hicimos la auto-vectorizador inteligente al permitir que el compilador ahora vectorizar un mayor número de bucles, incluyendo los bucles que realizan manipulación de punteros, que es un patrón común para las bibliotecas como STL (por ejemplo, transformar). También estamos introduciendo Perfil optimización guiada (PGO) para Windows para almacenar aplicaciones, vector convención de llamada para las plataformas x86/x64, y otras mejoras.




QT Creator y C++


Qt Creator es una cruz-plataforma IDE (entorno de desarrollo integrado) adaptado a las necesidades de los desarrolladores de Qt.
Forma parte del Proyecto Qt [qt-project.org] .

Editor de código avanzado

Qt Creator se centra en proporcionar características que ayudan a los nuevos usuarios de Qt a ponerse en marcha más rápido,
y también aumentar la productividad de los desarrolladores de Qt con experiencia.
  • Editor de código con +, C + QML y ECMA apoyo guión
  • Herramientas rápidas de navegación de código
  • El resaltado de sintaxis y autocompletado de código
  • La comprobación de código estático y toques de estilo a medida que escribe
  • Soporte para el código fuente de refactorización
  • Ayuda sensible al contexto
  • Plegado de código
  • Modos de juego Paréntesis y selección paréntesis

Depurador de Visual

El depurador visual C + + es consciente de la estructura de muchas clases de Qt, lo que aumenta su capacidad para mostrar los datos de Qt claramente.
Además, Qt Creator muestra la información en bruto de GDB de una manera clara y concisa.
  • Interrumpir la ejecución del programa.
  • Paso a través de la línea por línea del programa o instrucción por instrucción.
  • Establezca puntos de interrupción.
  • Examinar contenido de la pila de llamadas, vigilantes, y las variables locales y globales.

GUI diseñadores

Integrado GUI diseño y las formas de constructor para proyectos de C + +, lo que le permite rápidamente diseñar y construir widgets y diálogos utilizando formularios en pantalla utilizando los mismos controles que se van a utilizar en la aplicación. Las formas son completamente funcionales, y se pueden previsualizar inmediatamente para asegurarse de que van a verse y sentirse exactamente como usted pensó.



Eclipse y C++


Este IDE es, a mi entender, una de las mejores opciones para proyectos pequeños, medianos y hasta para algunos grandes proyectos, al igual que DEV C++ colorea el código y es gratuito.
Es un proyecto creado dentro del ámbito universitario y esta en constante actualización. Contiene un buen depurador, utiliza MinGW y contiene muchas opciones para la creación de proyectos con POO.
Pero sus desventajas son, la lentitud tanto para compilar como para depurar, y su instalación es verdaderamente tediosa. Necesitaremos tener motor java instalado o descargarlo desdehttp://www.java.com/es/download/ ya que originalmente se creo como un IDE para java y contiene algunos bugs, sin embargo no deja de ser una de las mejores opciones a la hora de iniciarnos, algo difícil al principio pero cuando descubramos todas sus opciones lo encontraremos realmente útil.
Para descargarlo debemos elegir alguno de los mirrors en su pagina de descargas y luego deberemos seguir las instrucciones en su tutorial en la parte -> C/C++Developers, y luego en la ventana de ayuda, en el índice de contenidos con la solapa -> “before begin”, instalando el MinGW 5.1.3 si tenemos Windows, o el Cygwin si tenemos Linux. Luego deberemos seguir todos los pasos descriptos instalando todo lo que nos pide desde los links que proporciona el mismo.
El plugin necesario para desarrollar en C/C++ con Eclipse se llama CDT (C/C++ Development Tooling). Veamos como instalarlo.



BLOODSHED DEV C++

 


Es un entorno gratuito, aun muy joven, pero totalmente muy recomendable si estamos ingresando a la programación en C++ , además nos va marcando el código en diferentes colores para una mejor comprensión del mismo.
Lo mejor es que sus librerías se van actualizando día a día con versiones nuevas en Internet y sus requerimientos de memoria son bajos, es un entorno prometedor a futuro y podemos descargar la ultima versión de su pagina http://www.bloodshed.net/.
También deberemos descargar la librería MinGW desde la paginahttp://sourceforge.net/project/showfiles.php?group_id=2435. Recomiendo descargar la versión MinGW 5.1.3 es la última versión y funciona muy bien.
Otra desventaja que tiene este IDE es que no posee diseñador de formularios pero puede ser complementado con librerías como qt (descargar de: http://www.trolltech.com), muchas veces se puede colgar y el depurador es algo pobre.



Code :: Blocks y C++


Code :: Blocks es una IDE + + C libre construido para satisfacer las necesidades más exigentes de sus usuarios. Está diseñado para ser muy extensible y totalmente configurable.
Por último, un IDE con todas las características que usted necesita, tener un aspecto coherente, la sensación y el funcionamiento a través de plataformas.
Construido alrededor de un marco de plugin, Code :: Blocks se puede ampliar con plugins . Cualquier tipo de funcionalidad se puede añadir mediante la instalación de / codificación de un plugin. Por ejemplo, la compilación y depuración de funcionalidad ya está prevista por los plugins!

Lo más destacado:

  • Open Source! GPLv3, sin costes ocultos.
  • Cruz-plataforma . Se ejecuta en Linux, Mac, Windows (utiliza wxWidgets).
  • Escrito en C + +. No lenguajes interpretados o librerías propietarias necesarios.
  • Extensible mediante plugins

Compilador:

  • Soporte para múltiples compilador :
    • GCC (MinGW / GCC GNU)
    • MSVC + +
    • Digital Mars
    • Borland C + + 5.5
    • Open Watcom
    • ... Y más
  • Muy rápido sistema de generación personalizada (no makefiles necesarios)
  • Apoyo a la paralela construye (utilizando núcleos adicionales de la CPU)
  • Proyectos de objetivos múltiples
  • Los espacios de trabajo para combinar múltiples proyectos
  • Dependencias entre proyectos dentro del área de trabajo
  • Proyectos y áreas de trabajo de Importaciones MSVC (NOTA: el código de montaje no se admite todavía)
  • Proyectos Importaciones Dev-C + +

Depurador:

  • Interfaces GNU GDB
  • También es compatible con MS CDB (no todas las funciones)
  • Puntos de ruptura total apoyo :
    • Breakpoints Código
    • Puntos de interrupción de datos (lectura, escritura y lectura / escritura)
    • Las condiciones de punto de interrupción (rompe sólo cuando una expresión es verdadera)
    • Breakpoint ignorar cuentas (romper sólo después de cierto número de accesos)
  • Visualizar símbolos de función locales y argumentos
  • Relojes definidos por el usuario (apoyo para la observación de los tipos definidos por el usuario a través de secuencias de comandos)
  • Pila de llamadas
  • Desmontaje
  • Volcado de memoria personalizada
  • Cambie entre hilos
  • Ver registros de la CPU

Interfaz:

  • El resaltado de sintaxis, personalizable y extensible
  • Código plegable para C + + archivos XML y.
  • Interfaz con pestañas
  • Finalización de código
  • Examinador de clases
  • Guión inteligente
  • Canje de la Uno-llave entre. Hy archivos .c / .cpp
  • Lista de archivos abiertos para la conmutación rápida entre los archivos (opcional)
  • "Herramientas" adaptables externos
  • To-do de gestión de listas con diferentes usuarios
Y muchas más características que proporciona a través de plugins!
 
 

BORLAND C++ BUILDER 

 


Es un entorno excelente y una gran opción ya que permite el desarrollo de proyectos con interfaces de usuario complejas de manera fácil y permite recompilar proyectos de C++ en Linux.
Pero por otra parte su depurador es algo pobre, contiene un compilador mucho mas lento que el de Visual Studio y solo permite importar proyectos de Visual Studio 6 o aquellos cuales tengan código en ANSI C++.
No es gratuito pero su precio es inferior al de Visual aunque difícil de conseguir (legalmente) su precio varia entre los u$s69 y los u$s 100, además creo que han salido nuevas versiones pero no las he revisado aun, en definitiva no deja de ser una buena opción para quienes no estén dispuestos a pagar los terribles precios de Microsoft o crean que el Dev C++ no es una buena herramienta



NetBeans y C++



NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE1 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo.
NetBeans IDE incluye los tipos de proyectos de C y C + + y plantillas de proyecto correspondientes. Usted puede trabajar y crear aplicaciones C + / C + con las bibliotecas dinámicas y estáticas, y también puede crear proyectos de C / C + + a partir del código existente. Proyectos C / C + + también soportan archivos Fortran. El asistente Makefile le permite definir y gestionar los destinos de generación y configuraciones.
Los usuarios pueden crear fácilmente nuevos proyectos desde cero, simplemente arrastrando y soltando un archivo binario a IDE. El sistema de proyectos busca automáticamente los archivos de código fuente, los agrega al proyecto, configura la asistencia código e incluso explora las dependencias del proyecto. Los usuarios también tienen ahora una mayor flexibilidad en la configuración de la orden de "depuración" en "Ejecutar" y por lo que se puede ejecutar y depurar bibliotecas estáticas y dinámicas.

C y C + + depurador
C y C + + Evaluación ventana Depurador
Integración GNU depurador
El + + editor de C y C está bien integrado con el multi-sesión gdb GNU debugger. Se puede establecer, de excepciones, las llamadas al sistema, línea y funciones breakpoints variables y verlos en la ventana Puntos de interrupción. Inspeccionar la pila de llamadas y las variables locales, crear relojes, y ver los temas. Usted puede evaluar una expresión seleccionada moviendo el cursor sobre él y ver la información sobre herramientas. La ventana Desensamblador muestra las instrucciones de montaje para el archivo de origen actual.
Añadido soporte para Pretty Printing permite a los usuarios analizar las variables con tipos STL en una presentación fácil de usar en las variables o ver relojes.
La ventana de "Evaluación de expresiones" permite a los usuarios evaluar cualquier expresión personalizada en el contexto actual del programa.

C y C + + Anotaciones Plantilla ventana
Asistencia Código
Beneficiarse de una terminación más rápida de código y refactorización para archivos de C / C + + y Qt, incluyendo la finalización de código y navegación por las directivas de preprocesador y bloques de preprocesador. Refactorizaciones están disponibles en el Editor, Vista de clases y Navigator. Úselos para cambiar los parámetros del método y generar código de campo encapsulación básica (Alt + Insert). Corrección ortográfica está disponible en los comentarios y literales.

Es el IDE más usado para la creación de aplicaciones Java. Se puede descargar y usar en forma totalmente gratuita. Es un IDE multiplataforma y cuenta con todo tipos de agregados.
Permite hacer desde aplicaciones sencillas hasta aplicaciones empresariales. Una desventaja que tiene es que como carga muchos módulos su funcionamiento se puede tornar un poco lento.
Eclipse : Es un IDE para el desarrollo de software de código abierto. Esta escrito totalmente en Java. Permite crear aplicaciones empresariales, móviles, etc.
El software es libre tanto para uso personal como comercial. Una de sus principales ventajas es que además de ser multiplataforma es también multilenguaje. Permite desarrollar aplicaciones escritas en Java, C++, PHP, Ruby on Rails, Python, Javasript y Perl entre otros.
La ventaja de que un IDE sea multilenguaje es que cuando nos acostumbramos a usarlo con un lenguaje no tendremos que aprender a usar otro entorno de programación cuando vamos a programar en otro lenguaje.



Lenguaje Compilado e Interpretado

0 comentarios



"Desde muchos puntos de vista aprender a programar es toda una disciplina,  que requiere nuestro mejor tiempo y dedicación."

 

La principal razón por que las personas aprenden lenguajes y técnicas  de programación es utilizar la computadora  como una herramienta para resolver problemas.
Como hemos mostrado en publicaciones anteriores, la programación no es una ciencia  de conocimientos lineales, es decir, existen muchas ramas  en  las cuales podemos desempeñarnos.  Entre ellas aplicaciones web, móviles o de escritorio.
Primero que nada  debemos adquirir cientos conceptos y herramientas  básica para iniciar, a continuación mostrare algunos de ellos que son de mucha utilidad.

Lenguaje de programacion:


Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente.

Lenguaje Compilado


Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Compilador:

Se puede describir de una manera  general que un compilador es un conjunto de herramientas y programas  que traduce un texto que básicamente  es un código fuente, escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras  llamado código objeto, que este a su vez es equivalente a un lenguaje que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto.
De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora
Tipos de compiladores:
Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.




Lenguaje Interpretado


Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. Los cuales permiten tener una aplicación multiplataforma. En vez de traducir el programa fuente y grabar en forma permanente,   el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativos, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario.

Interprete:

Describiremos  intérprete en términos de informática,  como aquel que es capaz de traducir  un código fuente en lenguaje máquina también. El intérprete se diferencia del compilador en que el ejecuta forma ordenada cada instrucción una vez que se traduce. Este proceso puede causar que sea más lenta la ejecución del programa, así que los intérpretes se utilizan menos que los compiladores. La interpretación comparte muchos aspectos con el compilador. Los análisis léxico, sintáctico y verificación de tipos son exactamente los mismos que en un compilador.

Pero en lugar de generar código del árbol sintáctico, el árbol sintáctico se procesa directamente para evaluar expresiones y ejecutar sentencias, y así hasta terminar. Un intérprete puede necesitar evaluar la misma parte del árbol sintáctico varias veces (por ejemplo cuando se hacen ciclos), por eso la interpretación puede ser más lenta que la ejecución de un programa compilado. Pero escribir un intérprete es más fácil de mover a una máquina diferente, así que para aplicaciones donde la velocidad no importa, lo mejor es utilizar un intérprete.



Ventajas y Desventajas


•Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
•Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.
•Un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
•Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres.
Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos.
•Los lenguajes compilados, que permiten el uso de un compilador, prescinden de este tipo de operadores.




 
Taller de desarrollo c++ © 2013 | Designed by Alexander C.P , in collaboration with cienciaeducacion100 , Ciencias y Sistemas and cienciaeducacion100@gmail.com