sábado, 6 de agosto de 2011

Tecnologias Emergentes en Computación

En laboratorios alrededor del mundo, investigadores se ocupan diariamente en crear tecnologías que cambiarán la manera como llevamos los negocios y vivinos nuestras vidas. Estas nuevas tecnologías podrían cambiar drásticamente la computación, la medicina, la manufactura, el transporte y hasta la infraestructura energética.

Según los editores, las diez tecnologías emergentes que cambiarán el mundo son:
 
  • Redes de sensores inalámbricos, para monitorear el ambiente, las máquinas y hasta personas.
  • Ingenería de tejidos inyectables, como alternativa a los transplantes.
  • Células nano solares que permiten abaratar los costos de obtención y manejo de energía solar.
  • Mechatronica, la integración de sistemas mecánicos con componentes electrónicos y software de control inteligente.
  • Computación en cuadrícula (grid), protocolos que permiten enlazar cualquier documento en la red (páginas web, bases de datos, herramientas tridimensioanles, etc).
  • Proyectores de imagen molecular, una especie de radiografía de avanzada que permite visualizar el estado de las células, moléculas y proteínas en la pantalla de un monitor
  • Litografía de Nanoimpresión, que permite por medio del rayo láser imprimir sobre superficies como el silicio o el metal
  • Software de seguridad, programas que permiten disminuir a cero los riesgos de error.
  • Glycomics, una nueva droga compuesta de azucar y proteína que podría curar la artritis y frenar la extensión de células de cáncer.
  • Criptografía Quántica, permite comunicarse sin riesgo a ser rastreado.

martes, 30 de noviembre de 2010

Estructura de un Programa en C++

Un programa, así como un algoritmo tiene una estructura, son casi idénticos solo que en el programa intervienen librerías, funciones, y otras partes más que en un algoritmo no se pueden llegar a usar por complejidad.
ARCHIVO DE CABECERA
Librerías – indica que se tengan en cuenta las funciones y tipos definidos en la librería que se escoja, por ejemplo tenemos:
#include < nombre de fichero >
podemos ver donde dice: ” nombre de fichero ” va como su nombre lo indica un “fichero cabecera” por lo general en C++ usamos iostream que son las siglas iniciales de: [ input output stream ].
Cada fichero cabecera sirve para indicarle al programa “que funciones podemos usar”, es decir que al colocarle el iostream, tendremos funciones que se nos permitirá usar como el system(“pause”) para dar una pausa al programa que hemos hecho y observar bien los resultados, entre otras; también podemos usar recursos como es el cin ( para que el usuario/a ingrese datos ) y el cout ( para mostrarle datos al usuario/a ).
Entonces quedamos con una cabecera así:
#include <iostream.h>
CABECERA DE FUNCION – FUNCION PRINCIPAL
Debajo de la cabecera principal del programa, se coloca la “cabecera de función”, ésta función es obligatoria en cada programa porque indica el comienzo del programa:
main ( )
Y se requiere de los paréntesis después de la palabra restringidamain
CUERPO – DESARROLLO
Después de colocar main ( ) es decir nuestro indicador que comienza el programa, ya podemos comenzar con la programación, ya que la programación va en el cuerpo del programa, se debe indicar cuál es el cuerpo, ósea los limites. En un programa los limites son marcados por el símbolo “las llaves “, es decir { }
{
. . . .
. . . . . . .
}
Por último tenemos las sentencias, es decir nuestra programación, lo que vayamos realizando en el cuerpo del programa, lo que va a hacer el programa al compilarlo y ejecutarlo. Todo eso va a ir en el cuerpo es decir DENTRO de los limites que establecimos (las llaves principales del programa)
Al final tenemos que, la estructura de un programa en C++ es así:
- ESTRUCTURA -
#include <iostream.h>
main ( )
{
. . . .
. . . . . . .
}


 

Historia de C

La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se había programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de máquinas concretas, por lo que conseguir un lenguaje abstraído de cada máquina conseguiría una portabilidad del sistema muchísimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseñado tres años antes.
En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien diseña finalmente C a partir del B de Thompson, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programación estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los básicos sean pocos), codificando en alto y bajo nivel simultáneamente, reemplazando ventajosamente la programación en ensamblador y permitiendo una utilización natural de las funciones primitivas del sistema. Además, no está orientado a ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los programas son muy rápidos.
Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.

Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (también de Laboratorios Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos. Estas nuevas características mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicación al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolución de C++ es sin duda la incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Esta librería de clases con contenedores y algoritmos genéricos proporciona a C++ una potencia única entre los lenguajes de alto nivel.
Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.

La última variante que ha surgido de C es el moderno C#. En el año 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes más utilizados. A pesar de su corta historia, ha recibido la aprobación del estándar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO.