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.




Tipos de lenguajes de programación

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 programación


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.

Clasificacion de los lenguajes


Estos se crearon de manera progresiva es decir que en los inicios   de la primera computadora, para comunicarse directamente con el ordenador se utilizaron símbolos conocidos como 1 y 0, el cual fue nombrado lenguaje maquina, pero el inconveniente era que solo podía ser  entendido  por personas con las capacidades adecuadas para leerlo y escribirlo. Este dio la pauta, para que los lenguajes como tales evolucionaran de tal manera que se pudieran entender, es decir se crearon los lenguajes de bajo, medio y alto nivel, los cuales  permitían al usuario escribir instrucciones utilizando palabras claves o reservados.  Y la diferencia entre ellos tanto del alto y el bajo nivel es que el lenguaje se puede utilizar en una determinado computadora para el caso de bajo nivel y la otra es capaz de ejecutarse en cualquier computadora para el caso de alto nivel..




Lenguaje maquina


Fue el primer lenguaje utilizado en la programación para las primeras computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, y que además reducen la posibilidad de cometer errores.
La información que hace que el hardware de la computadora realice una determinada actividad de llama instrucción, por consiguiente una instrucción es un conjunto de unos y ceros, las instrucciones así formadas equivalen a acciones elementales de la máquina, por lo que al conjunto de dichas instrucciones que son interpretadas directamente por la máquina se denomina lenguaje máquina.
El lenguaje máquina es el único lenguaje que puede ejecutar una computadora, es específico en cada arquitectura, es un código que es interpretado directamente por el microprocesador, está compuesto por un conjunto de instrucciones ejecutadas en secuencia que representan acciones que la máquina podrá tomar.

El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits; físicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información.



Lenguaje de Bajo Nievel


Los lenguajes de bajo nivel son mas fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.; en español, SUM,RES,DIV,etc.
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora en esto se diferencia esencialmente del lenguaje máquina, sino que requiere una fase de traducción al lenguaje máquina.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, ya directamente entendible por la computadora.
El traductor de programas fuente a objeto es un programa llamado ensamblador, existente en casi todos los computadores



Lenguaje de Mediano Nivel


Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.
Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).
Una de las características mas peculiares del lenguaje de programación C; es el uso de “apuntadores”, los cuales son muy útiles en la implementación de algoritmos como Listas ligadas, Tablas Hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación (como Java por ejemplo) les suele ser un poco mas complicado implementar.



Lenguaje de Alto Nivel.


El lenguaje de alto nivel (high-level language) es aquel que se aproxima más al lenguaje natural humano que al lenguaje binario de las computadoras, el que se conoce como lenguaje de bajo nivel.
Su función principal radica en que a partir de su desarrollo, existe la posibilidad de que se pueda utilizar el mismo programa en distintas máquinas, es decir que es independiente de un hardware determinado. La única condición es que la PC tenga un programa conocido como traductor o compilador, que lo traduce al lenguaje específico de cada máquina.
Y además, al utilizar palabras del lenguaje humano (por lo general el inglés) es más práctico y fácil de manipular para el programador de manera que no corre tantos riesgos de equivocarse como si es más factible de caer en el error con el binario. De esta manera, el programador puede concentrarse más en el programa en sí que en el lenguaje y, por otra parte, se reducen los tiempos de creación del programa, incluso en caso de que tenga que hacer modificaciones, son mucho más fáciles de hacer.
Un punto en contra que tiene este tipo de lenguaje de tercera generación es que en la actualidad existe gran diversidad de ellos (PASCAL, BASIC, FORTRAN, C++, COBOL, ALGOL, entre muchos otros).

Paradigmas de programación

1 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.

Paradigmas de programación:


Qué es un paradigma de programación?
Un paradigma es una forma de representar y manipular el conocimiento. Representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.
Son modelos que describen cómo diseñar e implementar programas. 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. Los paradigmas se asemejan en que se apoyan en un diseño basado en abstracciones que corresponden a elementos en el problema de programación y que la implementación debe ser una colección de módulos preferentemente reutilizables.
Los paradigmas más utilizados son los siguientes. No estructurado, estructurado  procedural  y el paradigma orientado a objetos.

Paradigma Imperativo


Describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa. El código máquina en general
está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedimental (procedural) entre otros.

  • Ejecución secuencial de las instrucciones.
  • Uso de variables para representar localizaciones de memoria.
  • Uso de asignación para cambiar el valor de las variables muchas veces son llamadas procedurales.
Que se recoge también en la siguiente definición: “Un lenguaje de programación es Turing-completo si posee variables enteras, aritmética entera y ejecuta instrucciones secuencial mente, las que incluyen asignación, selección y ciclo (while)”.




Paradigma Declarativo


No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.

La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan sólo se le indica a la computadora que es lo que se desea obtener o que es lo que se está buscando). No existen asignaciones destructivas, y las variables son utilizadas con transparencia referencial.
Aunque en la Programación Declarativa cabe más de un paradigma de programación, se ha optado por centrarla en el estudio de la denominada Programación Lógica, el cual está basado en el cálculo de proposiciones y sus relaciones lógicas.
La programación declarativa es un estilo de programación en el que el programador especifica qué debe computarse más bien que cómo deben realizarse los cómputos.
"programa = lógica + control" (Kowalski)
"algoritmos + estructuras de datos = programas" (Wirth)
El componente lógico determina el significado del programa mientras que el componente de control solamente afecta a su eficiencia.
La tarea de programar consiste en centrar la atención en la lógica dejando de lado el control, que se asume automático, al sistema.
La característica fundamental de la programación declarativa es el uso de la lógica como lenguaje de programación:
Un programa es una teoría formal en una cierta lógica, esto es, un conjunto de fórmulas lógicas que resultan ser la especificación del problema que se pretende resolver, y
la computación se entiende como una forma de inferencia o deducción en dicha lógica. Los principales requisitos que debe cumplir la lógica empleada son:
Disponer de un lenguaje que sea suficientemente expresivo.
Disponer de una semántica operacional (un mecanismo de cómputo que permita ejecutar los programas).
Disponer de una semántica declarativa que permita dar un significado a los programas de forma independiente a su posible ejecución.



Paradigma Estructurado


la programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. Además la programación se
controla con secuencia, selección e iteración. Permite reutilizar código programado y otorga una mejor compresión de la programación. Es contrario al
paradigma inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un “bloque”, como por ejemplo, los archivos batch (.bat).
Se Escribe un programa de acuerdo a las siguientes reglas:

· El programa tiene un diseño modular.
· Los módulos son diseñados de modo descendente.
· Cada modulo se codifica utilizando las tres estructuras de

control básicas: secuencia, selección y repetición.

. También programar sin GO TO

La programación estructurada es el conjunto de técnicas que incorporan:
· Recursos abstractos,
· Diseño descendente (top-down),
· Estructuras básicas.

Diseño descendente 
Conocido también como top-down es el proceso por el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento.
Es decir se descomponen en etapas jerárquicas relacionadas por medio de las entradas y salidas de información.
A cada estructura se la puede considerar desde dos puntos de vista, que hace y como lo hace.

Estructuras de control 
Son métodos para especificar el orden en que las instrucciones de un algoritmo se ejecutaran. Dicho orden determina el flujo de control.

La programación estructurada hace mas fácil el escribir, verificar, leer y mantener un programa, utilizando un número limitado de estructuras que minimizan la complejidad de los programas.

Teorema de la programación estructurada 
1 Toda estructura posee un solo punto de entrada y uno solo de salida de la misma.
2 Existen varios caminos desde la entrada hasta la salida.
3 Todas las instrucciones pueden ser ejecutables en algún momento y no existen bucles infinitos o sin fin.



Paradigma Orientado a Objetos


está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando
dichos objetos a través de mensajes (programación orientada a mensajes). Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma
basado en objetos, que además posee herencia y subtipos entre objetos. Ej.:
Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.
Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.
Su principal preocupación durante el desarrollo de programas es determinar los objetos que representarán, de una forma más adecuada, los elementos presentes en un problema, una vez determinados estos, se pasa a determinar cuáles con sus características o atributos principales y cuáles son las acciones (procedimientos) que son realizados con tales atributos y que por tanto caracterizan su comportamiento.
La programación orientada a objeto tiene como objetivos facilitar el desarrollo y comprensión de programas de gran porte y posibilitar la reutilización de código.
Las principales características que identifican a un lenguaje orientado a objeto son los conceptos de clases, herencia y polimorfismo.
A diferencia de otros paradigmas de programación, el paradigma orientado a objetos es tanto un estilo de programación como una metodología para el desarrollo de sistemas de computación.



Paradigma Funcional

este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones.
Basa la descripción del cómputo en la evaluación de funciones o la aplicación de funciones a valores conocidos. Por ello se les llama a veces a los lenguajes de este paradigma como lenguajes aplicativos. Un lenguaje de programación funcional posee como mecanismo básico la evaluación de una función o el llamado de función.
Este abarca, junto a la evaluación de la función, el paso de valores como parámetros a la función y la obtención de resultados como valores retomados desde las funciones. El paradigma funcional no comprende la noción de variable o asignación a variables. Las operaciones repetitivas no son expresadas por ciclos (los que requieren variables de control para su terminación) sino por funciones recursivas.
El estudio de las funciones recursivas ha establecido la siguiente propiedad: "Un lenguaje de programación es Turing-completo si tiene valores enteros, funciones aritméticas sobre esos valores y se tiene un mecanismo para definir nuevas funciones usando funciones ya existentes, selección y recursión”

Paradigma lógico


Está basado en la lógica simbólica. En un lenguaje de programación lógica un programa consiste de un conjunto de enunciados que describen qué se cumple acerca del resultado deseado, contrario a dar una secuencia particular de instrucciones que tienen que ser ejecutadas en un orden fijo para dar el resultado.
Todo lo que necesita un programa lógico es establecer las propiedades del cómputo. Por ello a la programación lógica se le reconoce a menudo como una forma de programación declarativa ya que son declaradas propiedades y no secuencias de ejecución.



lo que debemos saber de la programación (breve introduccion) video

jueves, 12 de diciembre de 2013 0 comentarios


Saludos les comparto una breve introducción a la programación. En el encontraras conceptos que te ayudaran a incursionar en este nuevo mundo de la programación.
En temas como paradigmas de programación, tipos de lenguajes, entre otros.

Fundamentos de programación (Conceptos y definiciones)

lunes, 9 de diciembre de 2013 0 comentarios




"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
 Confucio

Lo que debemos saber de programación

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 .
Aprender a programar apoyándonos en un sitio web de confianza, amigo, familiar o libros es una decisión que debemos tomar, según sea nuestro ritmo de aprendizaje. De la misma manera es muy importante en que rama de la  misma  queremos  desenvolvernos.

Como fue mencionado en nuestro anterior post, existen distintos tipos de aplicaciones en los cuales podemos desempeñarnos, pero eso no implica que no podamos dominar todas las ramas. Todo dependerá de nuestro nivel de prioridad que  demos al aprendizaje de cada rama de la programación.  A continuación mostrare algunos conceptos  y definiciones fundamentales  que será de gran ayuda en nuestra aventura de aprender el desarrollo de software.

Preguntas comunes


¿Qué es la  programación?

La Programación intenta resolver ciertos problemas que nos surgen todos los días basándose en una metodología. Por tanto la programación es el proceso de escribir  en un lenguaje de programación  el código fuente de un software.

¿Qué es  un   programa?

Un programa de computador es un conjunto de instrucciones órdenes dadas a la máquina que producirán la ejecución de una determinada tarea.

¿Qué es un programador?

A la persona que escribe programas se le denomina Programador, al proceso de escribir programas se denomina Programación.

¿Qué es un algoritmo?

Un algoritmo es un método para resolver un problema, Con más precisión, un algoritmo se define como una secuencia paso a paso de instrucciones que deben realizarse y describe cómo han de procesarse los datos para producir las salidas deseadas. En esencia, un algoritmo responde la pregunta: “¿Qué método se usará para resolver este problema?”.

 ¿Qué es un paradigma de programación?

Un paradigma de programación provee  y determina  la visión y métodos de un  programador en la construcción de un programa o subprograma. Diferentes  paradigmas resultan en diferentes estilos de programación y en diferentes formas  de pensar la solución de problemas  con la solución de múltiples “problemas” se  construye una aplicación.  En síntesis se describe como la forma de pensar que modela un mapa mental para dar solución a un problema.

¿Qué es un lenguaje de programación?

Un lenguaje de programación es aquella estructura que con una cierta base sintáctica y semántica, imparte distintas instrucciones a un programa de computadora.

¿Qué es un código fuente?

es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa.

¿Qué es un IDE de programación?

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. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.

¿Qué es un compilador?

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto

¿Qué es un intérprete?

En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

¿Qué es un depurador?

Un depurador (en inglés, debugger), es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo) procesador.

¿Qué es una Interfaz Gráfica?

La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

¿Qué es un diagrama de flujo?

Es la representación gráfica del algoritmo o proceso.




Características de los algoritmos.


Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea,
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendrá:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato (por ejemplo, cordero).


Los lenguajes de programación disponibles


Lenguaje de máquina

En su nivel más fundamental, los únicos programas que pueden usarse en realidad para operar una computadora son los programas en lenguaje de máquina. Tales programas, los cuales también se conocen como programas ejecutables, o ejecutables para abreviar, consisten en una secuencia de instrucciones compuestas por números binarios.

Lenguajes ensambladores

Debido a que cada clase de computadora, como IBM, Apple y Hewlett Packard, tiene su propio lenguaje de máquina particular, es muy tedioso y tardado escribir esos programas en lenguaje de máquina.
Uno de los primeros avances en la programación fue la sustitución de símbolos en forma de palabras, como ADD, SUB, MUL, por los opcodes binarios y los números decimales y etiquetas por las direcciones en memoria. Por ejemplo, usando estos símbolos y valores decimales para las direcciones en memoria.

Lenguajes de niveles bajo y alto

Tanto los lenguajes de máquina como los ensambladores se clasifican como lenguajes de nivel bajo. Esto se debe a que ambos tipos de lenguaje usan instrucciones que se vinculan en forma directa con un tipo de computadora. Como tal, un programa en lenguaje ensamblador está limitado porque sólo puede usarse con el tipo de computadora específica para el cual se escribió.
Un lenguaje de alto nivel usa instrucciones que se parecen a los lenguajes escritos, como el inglés, y pueden ejecutarse en una variedad de tipos de computadora. Visual Basic, C, C++ y Java son ejemplos de lenguajes de alto nivel.


Lenguajes Gráficos (UML)


En Lenguaje Unificado de Modelado (UML),  representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema.
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.

Tipos de Diagramas:


  • Casos de uso.
  • Clases.
  • Objetos.
Diagramas de comportamiento.
  • Estados.
  • Actividades.
  • Diagramas de Interacción.
  • Secuencia.
  • Colaboración.
Diagramas de implementación.
  • Componentes.
  • Despliegue.

 





Matemáticas para la computación


Propone desarrollar   habilidades y aptitudes de razonamiento lógico que permitan al estudiante identificar y resolver problemas en el tratamiento de la información, así como, comprender los conceptos lógicos fundamentales y las estructuras formales necesarias para la representación y manejo de datos.
 



¿Qué cualidades debe tener un programador?

viernes, 1 de noviembre de 2013 0 comentarios



"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
 Confucio.
A  menudo nos cuestionamos, que es lo que necesitamos para ser un programador de éxitos.
Las cualidades que menciono a continuación no son exclusivas  a la disciplina de la programación,  es decir las habilidades que adquirimos para aprender algo nuevo  se diversifica para  todos los ámbitos de la vida. Es posible aplicarlo en los diferentes campos de la ciencia.

Perfil:


Antes de mencionar algo más, es necesario aclarar algo muy relevante.
Un programador es una persona que posee un conocimiento pleno de la tecnología y su funcionamiento, es decir que es capaz de resolver problemas y brindar soluciones a través de las tecnologías computacionales.




Creatividad



  • Trasformador de ideas: Es una persona que mantiene su motivación muy alta y es solucionador, en un buen equipo de profesionales el sintetiza y aclara de una forma ordenada las diferentes problemáticas y mantiene un buen ritmo de trabajo con sus compañeros.
  • Diseñador: Finalmente otra persona será la que use tu programa y hay una manera adecuada de desplegar la información y definir las interacciones. Muchas interfaces malas son creadas por programadores, que no se preocupan de la importancia de la usabilidad y la accesibilidad. No se trata de que se vea lindo, se trata de que sea usable y entendible.



Lógico


  • Sentido Común: Para ser un buen profesional en programación debe tener un sentido común bien desarrollado, una aptitud mental lógica y eficiente con las cosas repetitivas y ordenadas.

  • Capacidad analítica: El profesional de programación es una persona con la agudeza visual y la capacidad de comprender problemas  y determinar las posibles soluciones


Conocimientos



  • Conocimientos: Lo más importante que un programador debe saber, es el funcionamiento de las diferentes herramientas de comunicación que constantemente interactúan con usuarios de internet, juegos de video, pantallas móviles entre otros; esto funciona a base de códigos y lenguajes que el programador debe conocer muy bien.
  • Ingeniería de software: Es un creativo muy inquieto que se preocupa por el funcionamiento de los equipos, analiza los diferentes tipos de lenguajes en que están diseñados.
  • Información actualizada: Los programadores son consientes de la rapidez en que se mueve el campo de acción en donde ellos están, las tecnologías y los avances se producen todos los días como las diferentes formas de comunicación en donde hay  mucho camino que recorrer. 
  • Matemáticas: Como herramienta de gran importancia; con la aplicación de las matemáticas desarrolla los diferentes lenguajes dando forma a las necesidades y exigencias de un mercado bastante complejo y variado.
  •  
  • El manejo del  inglés: El idioma es fundamental para un programador,  porque así le quedará mucho más fácil trabajar en varias  plataformas y para diferentes clientes.




Disciplina



  • Disciplina y constancia: es importante recalcar que un profesional de la programación es muy exigente en su trabajo, por lo tanto es disciplinado, constante y dedicado a su trabajo, el compromiso con su equipo de trabajo es serio.
  • Comenzar con un fin en mente: hace posible que nuestra vida tenga razón de ser, pues la creación de una visión de lo que queremos lograr permite que nuestras acciones estén dirigidas a lo que verdaderamente es significativo en nuestras vidas.
  • Aceptación: saber qué nivel de disciplina tenemos, de qué somos capaces y de qué no.
  • Fuerza de Voluntad: la capacidad de actuar con energía en un momento determinado, aunque no se sostenga en el tiempo.
  • Trabajo Duro: la capacidad de hacer lo que es difícil y retador.
  • Laboriosidad: la capacidad de realizar el trabajo, es decir, aplicar el tiempo y el esfuerzo necesario hasta que esté hecho, aunque sea algo rutinario y aburrido.
  • Persistencia: la capacidad de seguir adelante cuando perdemos la motivación, el esfuerzo sostenido a lo largo del tiempo.




Los 7 hábitos de la gente altamente efectiva

Si te interesa  mas en estos temas te recomiendo el libro del señor Stephen R. Covey, el cual lleva el titulo: Los 7 hábitos de la gente altamente efectiva.


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