martes, 31 de agosto de 2010

USO DEL CODIGO BINARIO,HEXADECMAL Y OCTAL.

uso de codigo binario para el numero 1750 :
numero binario es :01101011011

1750 /2 = 875 reciduo 0
875 / 2 = 437 reciduo 1
437 / 2 = 218 reciduo 1
218 / 2 = 109 reciduo 0
109 / 2 = 54 reciduo 1
54 / 2 = 27 reciduo 0
27 / 2 = 13 reciduo 1
13 / 2 = 6 reciduo 1
6 / 2 = 3 reciduo 0
3 / 2 = 1 reciduo 1
1 / 2 = 0 reciduo 1

uso de codigo hexadecimal para el numero 1750 :
numero hexadecimal es : 606
1750/16 = 109 reciduo ----6
109/16 = 6 reciduo ----0
6/16 =0 reciduo-----6

uso del codigo octal para el numero 1750 :
numero octal es : 3326

1750/8=218 reciduo-----6
218/8=27 reciduo-----2
27/8=3 reciduo------3
3/8=0 reciduo------3

DIFERENCIAS ENTRE PROCESADOR UNICO Y UN NULTI CORE Y ARQUITECTURA DEL PROCESADOR


Multinúcleo (múltiples núcleos, del inglés multicore) consiste en colocar dos o más núcleos (cores) en el interior de un único encapsulamento (un único chip). El sistema operativo trata cada uno de esos núcleos como un procesador diferente. En la mayoría de los casos, cada unidad posee su propio cache y puede procesar varias instrucciones simultáneamente. Adicionar nuevos núcleos de procesamiento a un procesador (único encapsulamento) posibilita que las instrucciones de las aplicaciones sean ejecutadas en paralelo, como se fueran 2 procesadores distinguidos.

Los dos núcleos no suman la capacidad de procesamiento, pero dividen las tareas entre sí. Por ejemplo, un procesador de dos núcleos con clock de 1.8 GHz no equivale a un procesador de un núcleo funcionando con clock de 3.6 Ghz.

El surgimento de los procesadores multinúcleo o multicore (cómo es popularmente conocido), se hizo necesario principalmente debido a misión cada vez más difícil de resfriar procesadores singlecore (procesadores de sólo un núcleo) con clocks cada vez más altos; debido a concentración cada vez mayor de transistores cada vez más pequeñas en un mismo circuito integrado. Y además desala y otras limitaciones de los procesadores singlecore, exite la gran diferencia entre la velocidad de la memoria y del procesador, aliada a la estrecha banda de datos, que hace con que aproximadamente 75 por ciento del uso del microprocessador sea gasto en la espera por resultados de los accesos a la memoria.

•1 Descripción•2 Ventajas•3 Arquitetura•4 Futuro de la Tecnología Multicore
Descripción
Como en la mayoría de los procesadores de más de un núcleo, cada núcleo posee su propio cache y algunos casos realizan acceso directo e independiente a la memoria principal; se posibilita, así, que las instrucciones de aplicaciones sean ejecutadas en paralelo, o sea, cada procesador realiza los cálculos de que es requisitado concorrentemente con el otro, ganando desempeño.

Otra ventaja del procesamiento en paralelo es la capacidad de cada procesador quedar responsable por la ejecución de un aplicativo, como por ejemplo, cuando el usuario está ejecutando algún archivo de sonido y a la vez ejecutando la varredura del antivírus.

La diferencia de ese procesamiento paralelo y del hasta entonces usado en los procesadores singlecore puede ser visto en las figuras abajo; observe el gargalo (bottleneck) creado por los aplicativos ejecutados simultáneamente en el singlecore, y como él desaparece en la figura con los dos núcleos (colores).

Ventajas
Una de las principales ventajas de los procesadores multicore es también uno de los principales motivos de su invención. Esa ventaja es su mayor capacidad - comparado a los singlecores - de resfriamento; lo que aún posibilitó y aún posibilita el aumento del poder de procesamiento de los procesadores.

Las otras ventajas casi que por completo se relacionan con la capacidad de procesamiento, principalmente cuando se trata de la ejecución de más de un aplicativo a la vez o mismo y aplicativos capaces de realizar su procesamiento paralelamente, consiguiendo así trabajar con los dos núcleos concomitantemente. En los procesadores más recientemente desarrollados existe también una mejora en el acceso la memoria y en el cambio de datos entre los propios núcleos.

Sin embargo, es importante destacar también que para que la calidad de procesamiento paralelo de los multicores sea utilizada en su totalidad los softwares instalados en la máquina deben ser escritos para aprovechar ese recurso; para eso las aplicaciones deben ser escritas utilizando los conceptos de threads, así una única aplicación utilizará el poder de procesamientos de los dos procesadores, como podemos observar en la figura abajo.

TABLA HISTORICA (C, C++, JAVA, C#)

Desarrollo de los lenguajes de programación
Basados en los primeros lenguajes de programación han surgido muchos otros lenguajes que siempre tienen la intención de tomar lo mejor, desechar lo malo, y agregar alguna “novedad”, respecto a los existentes. Solo se hace referencia a los mas conocidos.
Basic
Inventado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth.
Es un lenguaje muy limitado que fue diseñado para personas que no fueran del área de ciencias de la computación.
El nombre de BASIC, significa Beginners All-purpose Symbolic Instruction Code.
Los ocho principios de diseño de BASIC fueron:
1. Ser fácil de usar para los principiantes.
2. Ser un lenguaje de propósito general.
3. Permitir que los expertos añadieran características avanzadas, mientras que el lenguaje permanecía simple para los principiantes.
4. Ser interactivo.
5. Proveer mensajes de error claros y amigables.
6. Responder rápido a los programas pequeños.
7. No requerir un conocimiento del hardware de la computadora.
8. El lenguaje se baso en Fortran y Algol 6.0
Pascal
Diseñado por Niklaus Wirth[7], como una herramienta de enseñanza de la programación. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseñanza, tal como un buen debugger, y un buen editor. Además tuvieron como meta el tener soporte para la mayoría de los microprocesadores populares en esa época en las instituciones de enseñanza.
Fue diseñado de una manera muy ordenada, reflejando la experiencia de su diseñador, tomo las mejores características de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo mas claro posible. La combinación de sus características de entrada/salida, y sus solidas características matemáticas pronto lo convirtieron en un lenguaje muy exitoso. También implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinámicas. Sin embargo no implemento arreglos dinámicos ni agrupamiento de variables lo cual contribuyo a su perdida de popularidad frente a nuevos lenguajes.
Delphi es una versión moderna y orientada a objetos de Pascal.
Prolog
Diseñado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del frances Programation et Logique, es popular en los circulos de interes en Inteligencia Artificial.
Inicialmente era un lenguaje interpretado, hasta que a mediados de la decada de los 70's David Warren desarrollo un compilador, que convertia el programa en Prolog a un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o WAM.
Su sintaxis y semantica son considerados simples y claros, su paradigma de programación es el declarativo y un programa en Prolog se compone de cláusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecendente, entonces es verdad el consecuente". No obstante, la forma de escribir las cláusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente.
“C”
Fue diseñado en 1971, por Dennis Ritchie[8] y Ken Thompson[9] mientras trabajaban para los Laboratorios Bell, y se baso en los lenguajes de programación B y BCPL.
Se basa en el paradigma imperativo y desde su creación estuvo pensado para programación de sistemas operativos, se creo para usarse en UNIX, y crecio de la mano del desarrollo de UNIX, lo que propicio la creación de características avanzadas tales como variables dinámicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel. Debido a esto C es comunmente usado para programación de nivel de sistema en UNIX, Linux y Mac.
Se trata de un lenguaje no fuertemente tipeado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Destaca su gran riqueza de operadores y expresiones.




C++
A finales de los 70's y principio de los 80's un nuevo modelo de de programación fue desarrollado, la programación orientada a objetos, la idea básica es que los objetos son piezas de código autocontenidas y reusables. Bjarne Stroustroup[10], también de los Laboratorios Bell, desarrollo un nuevo lenguaje basado en C que aplica los conceptos de la programación orientada a objetos, inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983.
Las principales características del C++ son abstracción, el soporte para programación orientada a objetos y el soporte de plantillas o programación genérica. Por lo cual , se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programación: La programación estructurada, la programación genérica y la programación orientada a objetos.
Actualmente cuenta con un estándar ISO y es muy popular en la programación de aplicaciones.
Perl
Perl (Practical Extraction and Report Language), fue desarrollado por Larry Wall[11], inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del shell, su primer versión publica fue anunciada en el Newsgroup comp.sources.misc el 18 de diciembre de 1987.
Actualmente Perl es un lenguaje de propósito general, usado para amplia gama de tareas que incluyen administración de sistemas, desarrollo web, programación en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho mas.
Es uno de los lenguajes mas flexibles y poderosos, junto con Lisp, permite desarrollar prácticamente cualquier cosa con el, es poderoso, flexible y expresivo. Perl es libre y es divertido, permite ser creativo y no te ata a las restricciones impuestas por el diseñador del lenguaje, en Perl siempre hay mas de una manera de hacer las cosas.
Sin embargo, esta flexibilidad y poder no son apreciados por los programadores promedio que prefieren lenguajes mas simples y fáciles de aprender, por lo cual Perl es el blanco de muchas criticas nacidas de la ignorancia.
Perl es multiplataforma y desde hace muchos años a demostrado en el mundo real producir código completamente reusable sin necesitar programación orientada a objetos.
Python
Es un lenguaje interpretado e interactivo, creado por Guido Van Rossum[12] en 1991. Es completamente tipeado dinamicamente, usa manejo automático de memoria, por lo cual es similar a Lisp, Perl, Ruby, Scheme y Tcl.
Es desarrollado como proyecto de software libre, manejado por la Python Software Foundation. Tomo varias de sus características de Lisp.
Algunos lo consideran la "oposición leal" a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho más limpio y elegante para programar. Sin embargo esto es mas un punto de vista de sus usuarios que una realidad.
Su facilidad de aprendizaje, su orientación a programadores promedio, su limpieza de código,hacen que sea uno de los lenguajes mas exitosos al momento de escribir el presente trabajo.
Ruby
Es un lenguaje de programación interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que también tomo ideas de Lisp, Python, Dylan y CLU.
Fue creado por Yukihiro Matsumoto[13], quien comenzó su desarrollo en 1993, y lo publico en 1995.
El nombre Ruby fue elegido para reflejar su herencia de Perl.
Entre sus características tenemos:
“Lenguaje de guiones interpretado:
• Posibilidad de realizar directamente llamadas al sistema operativo
• Potentes operaciones sobre cadenas de caracteres y expresiones regulares
• Retroalimentación inmediata durante el proceso de desarrollo
Rápido y sencillo:
• Son innecesarias las declaraciones de variables
• Las variables son de tipo dinámico.
• La sintaxis es simple y consistente
• La gestión de la memoria es automática
Programación orientada a objetos:
• Todo es un objeto
• Clases, herencia, métodos, ...
• Métodos singleton
• Mixins por módulos
• Iteradores y cierres
También:
• Enteros de precisión múltiple
• Modelo de procesamiento de excepciones
• Carga dinámica
• Hilos”



Ansi Common Lisp
En abril de 1981, después de una reunión patrocinada por DARPA, se unieron los esfuerzos de Symbolics, el proyecto SPICE, el proyecto NIL y el proyecto S-1 Lisp, para definir Common Lisp.
Common Lisp fue diseñado como una descripción de una familia de dialectos de Lisp. Common Lisp recibió alimentación de La Maquina Lisp, MacLisp, NIL, S-1 Lisp, Spice Lisp y Scheme. El libro “Common Lisp: The language”[14] es la descripción de ese diseño.
Su semántica fue dejada sin especificar en aquellas partes donde una fuerte especificación pudiera ser un obstáculo en el uso e investigación de Lisp.
En 1986 se formo un grupo de trabajo para producir un draft para un estándar ANSI de Common Lisp, entre las especificaciones que presento se encontraban estandarizaciones para portabilidad, facilidades de iteración, manejo de grandes conjuntos de caracteres, un sistema de programación orientada a objetos, entre otras, para una descripción detallada ver[15] . El estándar ANSI Common Lisp fue publicado en 1994.
Lisp se consolido como el lenguaje de programación mas poderoso y flexible jamas inventado. Muchos de los lenguajes modernos han copiado la mayoría de sus características[16], sin embrago no todas ya que entonces no podrían decir que son un nuevo lenguaje sino simplemente otro dialecto de Lisp.

Java
“Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales.
La plataforma Java consta de las siguientes partes:
• El lenguaje de programación, mismo.
• La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.
• El API Java, una biblioteca estándar para el lenguaje”
El lenguaje de programación fue desarrollado por James Gosling[17], y sus equipo en Sun Microsystems,entre 1990 y 1994, pensado originalmente como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisión interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicación en la Web.
Las cinco metas del lenguaje Java son:
o Orientado a objetos
o Multiplataforma
o Soporte integrado para redes de computadoras
o Diseñado para ejecutar codigo de fuentes remotas de modo seguro
o Facil de usar
Desde sus inicios Java no fue bien recibido por su falta de aportaciones originales, su lentitud, y su rigida estructura, sin embargo en base a intensas campañas de marketing Sun ha logrado que en los ambientes empresariales Java sea uno de los “estándares” sobre todo para aplicaciones del lado del servidor.
Java también es presentado muchas veces como un lenguaje Libre lo cual no es completamente cierto[18][19].
Java Script
Es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web.
Fue desarrollado por Brendan Eich[20], en su trabajo para Netscape, quien lo publicó en diciembre de 1995.
Su sintaxis es parecida a la de C, y al igual que C utiliza el concepto de palabras reservadas, tiene soporte para expresiones regulares y UTF.
Cuando se usa en Web, se conecta a través de su interfaz DOM (Document Object Model) a las aplicaciones tanto del lado del cliente como del servidor. Gracias a esto es usado para crear poderosas aplicaciones web dinámicas.
Desafortunadamente los diferentes navegadores exponen diferentes objetos y métodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores.
Entre las principales tecnologías para interactuar con DOM que usan JavaScript esta AJAX y DHTML.
Php
Creado por Rasmus Lerdorf[21], en 1994, inicialmente eran una serie de scripts en Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web. Inicialmente significaba “Personal Home Page Tools”, y fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: “PHP Hypertext Preprocessor”.
Las caracteristicas mas destacadas de PHP son su facilidad de aprendizaje y que es software libre.
Las anteriores características, sumadas a su amplio soporte a manejadores de bases de datos lo han convertido en uno de los lenguajes mas populares para programación Web, los famosos desarrollos LAMP.
Comparte características con otros lenguajes de programación como C y perl y recientemente con Java.
Ademas de ser usado en web, puede usarse desde la línea de comandos y para construir GUI's con PHP-GTK.
C#
Es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net.
Esta normalizado, por ECMA quien en el año 2001 publico la “ECMA-334 C# Language Specification”; en el año 2003 se convirtio en un estandar ISO “(ISO/IEC 23270)”.
Ademas de la implementacion de Microsoft existen implementaciones libres como Mono y dotGNU.
Gracias a la maquinaría comercial de Microsoft y la amplia base de escritorios Windows, el uso de C# es muy extendido en entornos corporativos y en el mundo Windows en general.
Los proyectos libres de C#, no son muy populares entre la comunidad del software libre, por la desconfianza hacia Microsoft y sus patentes.