Motores de búsqueda: Amigo en Internet


Motores de búsqueda.

A menudo quiere entrar a Internet en busca de cualquier información especifica y no tiene ninguna dirección de las páginas que se la pueden ofrecer. No importa si usted está buscando información técnica, noticias, música, recetas, en fin, como habitualmente decimos los visitantes frecuentes de la Internet, todo está en la red!. Además, tenemos a nuestros amigos: los Motores de Búsqueda.




Esta afirmación no es una exageración, ya sea por razones comerciales, educativos, institucionales, o simplemente por el interés de dar a conocer al mundo una visión, o el resultado de un trabajo o un hobby, etc., el Internet, gracias a su popularidad, se ha convertido en el principal medio de comunicación de esa información, que la humanidad tiene.

web Ctd

 

Para la fecha actual, el estimado es de más de 1100 millones de sitios Web, aunque no todos están activos. Al mismo tiempo, el número de usuarios de la red, ya sea como fuente de información, entretenimiento, etc., se estima en más de 3200 millones de usuarios.

Debido a esta enorme cantidad de contenido, la única manera de acceder a la información que está en la Web, cuando no tenemos una dirección predeterminada de las páginas que la contiene, es a través de los Motores de Búsqueda.




Aunque todos los buscadores se han diversificado añadiendo infinidad de funciones a sus páginas, su función principal la cumplen a través de una casilla que permite colocar un texto asociado a lo que nos interesa localizar, y que el buscador tomara como referencia para brindarnos un listado de sitios donde podemos encontrar la información vinculada a nuestra búsqueda.

En general, dicho listado incluye fragmentos de los sitios Web donde se encontró el termino buscado, y en cada uno, un Link o enlace que da acceso a dicho sitio.

A pesar de que existen buscadores especializados en tipos de búsqueda especifica (noticias, videos, Turismo, etc.), los buscadores más utilizados son los de uso general. De estos buscadores, los más importantes son:

  • Google
  • Bing
  • Yahoo

La diferencia, en cuanto a calidad de la búsqueda, de uno a otro Motor, viene dada por la relevancia que cada buscador le da a las Páginas Web que contienen el término usado para buscar.

frogscomputer

Aunque es cuestión de preferencia usar uno o el otro, Google es, por mucho, el mas utilizado, opinión que personalmente comparto.

Guardar

Guardar



Custom Search

Guardar

Guardar

Guardar

Guardar

Guardar

¿Acceso a un Sitio Web? Navegadores!


Navegadores Web.

Los navegadores son programas que utilizamos para acceder a sitios Web que están en Internet. Su función principal es «interpretar» el contenido HTML (codificación que transmite los archivos de páginas Web) y plasmarlos en lo que realmente vemos en nuestra pantalla del ordenador. La mayoría de ellos tienen las siguientes características:




  • Tiene una ventana llamada «de dirección o de navegación» donde se coloca la dirección o el nombre de la página que desea acceder.
  • Tienen un formato de varias «pestañas» para poder acceder a algunas páginas con otras abiertas o accesibles.
  • Permiten hacer impresiones de los contenidos de la página que estamos visualizando.
  • Permiten hacer un directorio de sitios Web que marcados como favorito o favoritos.
  • Definen una página Web como página de inicio, es decir, la página inicial que verá cuando se conecte a la red.

Software Hosting

Aunque hay algunos navegadores que son capaces de «buscar» páginas Web con identificación simplificada, lo más usual es que pongamos, en el cuadro de dirección, el nombre genérico completo que es de la forma:

http://www.nombredelapagina.tipodedominio

Como el lector puede ver, hemos puesto .tipodedominio y no el habitual .com, lo que hemos hecho para llamar la atención sobre el término «Dominio».




El dominio bajo el cual se aloja una página Web no es más que el nombre, que debe ser único, y se utiliza como termino «manejable por los humanos», para localizar dicha pagina Web.

La adopción de nombres y extensiones se hizo con el fin de reemplazar a la Dirección IP debido a lo engorroso de manejar por las personas, ya que está compuesta por una serie de hasta 12 dígitos en grupos de 3 separados por un punto (lo veremos más adelante).

En el caso de las extensiones, la intención era identificar el tipo de pagina de acuerdo a su uso. De manera tal que com correspondía a comercial, org a organizaciones institucionales, edu a sitios educativos, etc.

Hoy en día, esa clasificación no es un indicador 100% confiable debido a que muchos nombres de dominio que los propietarios deseaban usar, ya estaban ocupados para una extensión, por lo que utilizaban su nombre de dominio con otra que si estuviera disponible.

Como el Lector puede suponer, lo que queremos aclararle es que, salvo que el propietario del sitio haya «comprado» su dominio con todas las extensiones. la búsqueda de la pagina: http://www.perros.com muy posiblemente nos debe direccionar hacia una página distinta a http://www.perros.net

dominio

También queremos indicarle que gracias a convenios internacionales, y a las pautas dictadas por las instituciones encargadas de regir el funcionamiento de Internet, también existen extensiones de dominio con asignación geográfica, la cual consiste en la finalización con las dos letras asignadas a cada país, por ejemplo Ve para Venezuela, Es para España. Uk para el Reino Unido, etc.

Las Instituciones internacionales que rigen el funcionamiento de Internet en lo relativo a dominios, son la IANA (es la Autoridad para la Asignación de Números de Internet (del inglés: Internet Assigned Numbers Authority), y la  ICANN.

Esta última es la Corporación de Internet para la Asignación de nombres y números de Dominios (del Inglés: Internet Corporation for Assigned Names and Numbers) la cual es una organización sin fines de lucro que opera a nivel de asignar espacio de direcciones numéricas de protocolo de Internet (IP).

navegadores web

Para cerrar el tema con respecto a los navegadores queremos indicarle que entre los navegadores más importantes están:

  • Internet Explorer
  • Chrome
  • Firefox
  • Safari
  • Ópera



Custom Search

Guardar

Internet. La Red de redes.


Internet. ¿Qué es?

No es un secreto que gran parte de las tecnologías desarrolladas por el hombre, de las que hoy disfrutamos, tuvieron sus orígenes en los estudios e investigaciones que muchos Países hicieron en algún momento en medio de la lucha por la supremacía bélica. Internet no es una excepción a esta regla




Todo comenzó en 1962, con un Proyecto patrocinado por el Departamento de Defensa de los Estados Unidos en conjunto con la Universidad de California de Los Ángeles, en el cual se creó la red inicial del Proyecto y que fue bautizada con el nombre de Arpanet (Advanced Research Projects Agency Network), es decir, la Red de la Agencia de Proyectos de Investigación Avanzada.

ARPANET

No fue hasta 1981 que uno de los equipos de trabajo del Proyecto bautizó el termino Internet, partiendo de la expresión Interconnected Networks o Redes Interconectadas.

En 1989 el Proyecto Arpanet fue reemplazado y se libero al uso comercial el concepto de redes interconectadas que, con el nacimiento en 1990 de la WWW o World Wide Web (Red Informatica Mundial), dieron paso a lo hoy conocemos como Internet:

Una Red que interconecta a millones de redes en todo el mundo, y por la cual fluyen, en todos los sentidos, paquetes de Información Digital con contenido que es interpretado y puesto en forma «legible» por los Navegadores de todas las Computadoras que estén conectadas a esa Red de Redes

Internet. Red de redes

Una vez entendida esta MUY SIMPLIFICADA historia y definición de Internet, adentrémonos en su funcionamiento y sus posibilidades de uso.

Software Hosting

Algunos términos con los que debe familiarizarse.

Existen muchas expresiones y siglas que son de uso común en las personas conocedoras del medio y que en algún momento usted podría encontrarse cuando «este conviviendo» con el mundo de Internet, si es que ya no lo está. A continuación colocaremos las más usadas y su significado:




Http: es la abreviatura de  Hypertext Transfer Protocol, en Español: Protocolo de Transferencia de Hipertexto, y no es más que la forma convenida a nivel mundial para hacer la transferencia de la información a través de Internet. Este estándar de comunicación es único y su variante Https significa que se hace en un entorno con una encriptación que lo hace más seguro.

http

Dirección IP: se refiere a la dirección que tiene cada equipo conectado a Internet y está formada por el termino IP (significa Internet Protocol) y un numero de la forma XXX.XXX.XXX.XXX  , por ejemplo: IP 192.168.255.255. Las direcciones IP son una sola para cada usuario  y solo cambian cuando las redes son estructuradas con direccionamiento dinámico.

DSL: Es la abreviatura de Digital Suscriber Line (Línea de suscriptor digital) y es usada para identificar uno de los sistemas de acceso a Internet más usado, que es a través de la misma línea que se utiliza para los teléfonos.

DSL

URL: Es la abreviatura de Uniform Resource Locator (Localizador de recursos uniforme) y se llama así a la cadena de caracteres que conforma una dirección Web. Es decir, al nombre con el que se accesa la Pagina Web.

www

WWW: Es la abreviatura de World Wide Web (Red Informatica Mundial) y define el entorno en el que se maneja la Red de Redes: Internet.



Custom Search

 

Guardar

Guardar

El «Controlador» de todo. Sistemas Operativos.


Sistemas Operativos.

Para dar respuesta a la pregunta de ¿Que son los Sistemas Operativos? necesitamos hacer un breve recuento. Hasta ahora hemos hablado de los componentes de todo sistema informático e hicimos una división básica cuyas componentes son el Hardware y el Software.

Vimos también las definiciones y variedad de ambos componentes y además hicimos un recorrido por sus funciones en el sistema.




Llega el momento de ver cómo funciona el sistema y para eso tenemos que definir lo que es un Sistema Operativo y su importante papel en la interrelación:

sistemas operativos

 

El Sistema Operativo es una pieza de Software que se encarga de interrelacionar a todos los componentes del Hardware (CPU y Dispositivos Input/Output) entre sí y con las aplicaciones de Software y a ambos con el Usuario del Sistema.

Es importante resaltar que cuando decimos «interrelacionar» estamos hablando de comunicar e interpretar las funciones físicas y virtuales de operación desde y hacia los tres componentes del Sistema.

En otras palabras, no podemos hablar de un sistema informático, sin la presencia de un sistema operativo. Sus funciones más importantes son:

  • Estructurar el sistema de archivos que utilizara el Software que se instale.
  • Albergar todos los programas manejadores de los periféricos de entrada y/o salida que se conecten al equipo (drivers).
  • Servir como Programa de Arranque del Sistema, y mantenerse monitoreando el desempeño de este.
  • Albergar una serie de herramientas intrínsecas del sistema para solventar los problemas de compatibilidad entre el Software Instalado y los periféricos de entrada y/o salida.
  • Administrar los recursos del sistema tales como uso del Procesador y manejo de la memoria operativa y de los sistemas de almacenaje de información.

Clasificaciones más importantes de los Sistemas Operativos.

Pueden ser clasificados principalmente en función de:

  • Número de Usuarios: Multiusuario o Monousuario
  • Numero de tareas simultaneas: Multitareas o Monotareas
  • Tiempo de Ejecución: Tiempo real y Tiempo diferido.

Sistemas operativos más relevantes.

A través del tiempo se han generado muchos Sistemas Operativos por los diversos creadores de Software en alianzas con los fabricantes de Hardware, y la mayoría de ellos han tratado de generar un estándar del mercado. Los sistemas que han perdurado en el tiempo, son aquellos que han logrado mas soporte por parte de los creadores de Software Comercial.




De acuerdo a las distintas Plataformas, los grandes grupos que han perdurado en el tiempo son:

MS-Dos: Fue el primer estándar en el Mercado y prácticamente acaparo la atención de los fabricantes de Hardware y de los desarrolladores de Software de su época.

Windows: Desde su primer lanzamiento con Windows 3.1 hasta el actual Windows 10, incluyendo al manejador de redes Windows NT, esta familia de sistemas operativos, gracias a su interface grafica de usuarios, ha sido el más popular de todos los sistemas operativos.

Mac Os: En todas sus versiones, y debido a la exclusividad en los populares Computadores de la firma Apple, ha sido uno de los más utilizados sistemas operativos.

Unix: Incluyendo su versión libre: Linux, este sistema operativo no ha dejado de ganar en popularidad gracias a su versatilidad manejando gráficos, textos y operaciones matemáticas, además de su capacidad Multiusuario y Multitareas.

Y en las más recientes plataformas Móviles destacan:

Android, el consentido de Google. el IOS para los dispositivos móviles de Apple y en menor grado el BBOS de Blackberry.

Android

Es importante destacar que actualmente existen muy pocas aplicaciones exclusivas a uno u otro sistema operativo, ya que la mayoría de las grandes Compañías de desarrollo de Software, así como una gran cantidad de desarrolladores independientes, ha trabajado en la adaptación de sus Programas a los distintos Sistemas Operativos.

Igual sucede con los desarrolladores de Aplicaciones para Móviles, quienes no han renunciado a su diversificación hacia todos los sistemas operativos con sus correspondientes Mercados.

Inclusive, existen en el Mercado de Software, aplicaciones que simulan un sistema operativo (virtual), corriendo desde una plataforma con otro instalado.



Custom Search

 

Guardar

Los Computadores Portátiles


Computadores Portátiles

Los avances tecnológicos de la humanidad han ido alcanzando a cada aspecto de la vida contemporánea, a una velocidad tal que no nos han dado tiempo de analizar en detalle esa tecnología. De hecho, continuamente usamos dispositivos de forma rutinaria y no nos detenemos a tratar de entender cómo trabajan, ni a cómo sacar el máximo provecho de ellos. De hecho, la mayoría de las veces, no percibimos que estamos tratando con computadores portátiles.

smartphonewatch

A través de estudios estadísticos obtenidos de una encuesta realizada a personas entre 14 y 45 años de edad, usuarios de Smartphones, hechos para el 2do Semestre del 2015 por la Compañía de Marketing Números C.A. en tres importantes Capitales Latinoamericanas (Caracas, Bogotá y Santiago de Chile), obtuvimos estas reveladoras cifras:

  • El 39% cambia sus Teléfonos inteligentes antes de usar a plenitud el actual, solo para «estar a la moda».
  • Sólo el 17% usa aplicaciones de productividad instaladas en sus teléfonos.
  • El 31% reconoce usar su Teléfono Inteligente sobre todo para escuchar música.
  • El 24% indica no haber abierto varias aplicaciones de las que trae su equipo instaladas por no saber su uso.




Otros estudios, como el de la Operadora Telefonica Britanica O2 evidencian la poca o ninguna utilizacion de las funciones de Productividad de los Telefonos Inteligentes, contra su uso en navegacion por Internet, Redes Sociales, Musica y Juegos.

Uso de Smrtphone

No obstante, el objetivo de estas reflexiones no es otro que el de resaltar la importancia de que aprendamos a entender la capacidad de nuestros dispositivos inteligentes, pequeñas Computadoras Portátiles, para poder aprovechar a fondo la herramienta.

Teléfonos Inteligentes.

La mayoría de estas maravillas de la Tecnología Moderna, no son más que pequeñas computadoras de bolsillo con todos los atributos del caso:

  • Unidad central de procesamiento que alberga un sistema operativo capaz de interactuar incluso con un ordenador de mesa, servidores de red, impresoras, etc…
  • Dispositivos de entrada/salida como la pantalla táctil, teclado QWERTY incorporado a las funciones de pantalla táctil. dispositivos de reconocimiento de voz, entradas y salidas de Audio, Cámara Digital. Incluyen también, sistema de localización satelital (GPS), almacenamiento no volátil con capacidades del orden de los Gigabytes, capacidad de interconexión con redes Wi-Fi, Bluetooth, puertos de entrada/salida USB y muchas otras funciones.
  • Biblioteca de software con miles de títulos, que incluyen completísimas herramientas de productividad.

Smartphone

En fin, su pequeño tamaño no debería ser un elemento como para desconocer su potencialidad.



Relojes inteligentes.

Otra aplicación de las Computadoras para su uso por el hombre de hoy, son los Relojes Inteligentes, cuyo diseño y componentes no se quedan atrás con respecto a los Teléfonos Inteligentes.

Estos «pequeñitos gigantes» son otra poderosa demostración de lo que la tecnología puede lograr: Incluyen sensores (elementos de entrada) y el hardware y software requerido para detectar pulso, acelerómetro, agenda, cámara, teléfono, calculadora, GPS, conectividad Bluetooth y otra gran cantidad de funciones y aplicaciones que lo convierten en una maravilla tecnológica en miniatura.

SmartWatch

Estos dispositivos, como todo Computador, tienen sus propios Sistemas Operativos compatibles con sus equivalentes de gran escala. Los más populares son WatchIOS de Apple y AndroidWatchOS.



Custom Search

Guardar

Algoritmos y Diagramas de Flujo para la Programación de Computadoras.


Programación de las Computadoras.

Sin importar que lenguajes de programación los desarrolladores de Software planean usar, el razonamiento y la secuencia de su trabajo deben ser los mismos. Recuerde, su trabajo es hacer que el ordenador «ejecute una rutina» para darnos a nosotros, los usuarios, los resultados que buscamos. Para hacer este trabajo, los desarrolladores utilizan dos herramientas importantes: la Formación de los Algoritmos y los Diagramas de Flujo.




Operación de un Programa.

Ahora, consideremos la forma en que una computadora resuelve un problema.

  • En primer término debe existir una lista de instrucciones escritas por el hombre para resolver dicho problema, a la cual conocemos con el nombre de programa, y debe encontrarse almacenada en la memoria residente del computador.
  • Al darse la orden de comienzo de ejecución del programa, la unidad de control se hace cargo de que se ejecuten las instrucciones en el orden determinado por el programa, transfiriéndole la unidad lógico-aritmética la ejecución de operaciones y comparaciones, y recibiendo de esta los resultados intermedio y finales.
  • Una vez terminado el proceso de cálculos, la unidad de control procede a enviar dichos resultados a las unidades de salida para su utilización por el usuario. Este procedimiento será ejecutado tantas veces como se lo ordenemos al computador y siempre de la misma forma.

programación de algoritmos

Siempre debemos tener presente, el hecho de que el computador solo hace lo que le ordena el usuario. Es decir que las equivocaciones que puedan existir en los resultados suministrados por el computador, no son más que consecuencias de los errores introducidos en el programa que se está ejecutando o en los datos introducidos por los usuarios.

La Formación de Algoritmos.

Como regla general, hay tres pasos a seguir para la solución de un problema a través de la computadora:

  1. Determinar el problema que queremos resolver.
  2. Desarrollar el modelo finito del problema.
  3. Basado en el modelo finito, obtener un algoritmo.

Llegar a la determinación de los problemas no siempre es tan fácil como pudiera parecer. Muchas veces la omisión de este paso ha causado la perdida de una gran cantidad de horas de trabajo, por no haberse definido previamente los objetivos concretos que se querían alcanzar.

Esta labor es generalmente un trabajo de conjunto entre el usuario y el programador, y no se debe adelantar ningún otro paso sin antes haberla concluido.

La elaboración del modelo finito consiste básicamente en la recopilación de todos los elementos involucrados en las variaciones del problema (llamados variables), y la determinación de las relaciones matemáticas o lógicas existentes entre ellos.

Por último, el programador debe analizar el modelo obtenido y trabajar en la formación del algoritmo. Este término define a la serie de instrucciones, en una secuencia dada, necesarias para describir las operaciones que llevan a la solución de un problema.




Diagramas de Flujo.

El planteamiento de los algoritmos puede hacerse de muchas maneras, no obstante, en computación suele utilizarse la forma grafica por ser la que permite una mejor visualización de la secuencia en que deben ejecutarse las instrucciones que conforman a dichos algoritmos.

A la representación grafica de los algoritmos, se les conoce con el nombre de DIAGRAMA DE FLUJO, y está formada por un conjunto de símbolos conectados entre sí, que representan la secuencia y el tipo de proceso a realizarse en cada una de las etapas de solución de un problema.

Los símbolos mas utilizados para hacer un diagrama de flujo, son los siguientes:

SÍMBOLOS DE DIAGRAMAS

A continuación, podemos ver un ejemplo de diagrama de flujo muy básico con el que se definió un algoritmo para que una maquina haga la separación y selección de monedas de dos tipos distintos y presente un resultado acerca de la cantidad de monedas por tipo.

DIAGRAMA DE FLUJO



Custom Search

 

Guardar

Redes, menos complejo de lo que parece


Algo sobre redes.

Una de las cualidades más importantes de los Computadores personales modernos es su capacidad de comunicación entre ellos. Los fabricantes de Hardware y los desarrolladores de Software han trabajado elaborando estándares que permiten dicha comunicación a través de Redes , lo que a su vez ha permitido que el intercambio de información se pueda hacer de forma rápida y en tiempo real.

A su vez, la existencia de las redes facilita  el que se puedan hacer Grupos de Trabajo que, por tener acceso a la misma información de forma simultánea, logren mayores avances en su gestión compartida.




En esencia, los tipos de redes se pueden dividir en dos:

Redes Usuario-Usuario.

Son las redes en que todos los Computadores conectados a dicha red reciben, procesan, almacenan y envían información de la misma manera. Este tipo de redes son las que normalmente se usan a nivel «domestico».

Desde el punto de vista del Software requerido, la plataforma Windows en cualquier versión, desde Windows 98, permite establecer una red domestica de recursos compartidos.

Redes Usuario-Servidor-Usuario.

Son las redes en las que todo tipo de interrelación entre los equipos de los usuarios se hace a través de un Computador Maestro llamado Servidor de la Red. Generalmente, dicho Servidor establece la prioridad de las comunicaciones entre equipos y suele ser utilizado para almacenar la información que se quiere compartir.

Redes con servidor

 

En redes pequeñas, el Servidor puede ser uno más de los Computadores activos como usuario. Cuando se manejan muchos usuarios, mucha información o ambas cosas, se suele destinar un computador de mayor rendimiento y capacidad para la función de Servidor. Para el manejo de este tipo de redes, se suele utilizar en el Servidor, un sistema operativo especifico para el manejo de redes. El más conocido es Windows NT (por Network).

En ambos tipos de redes se utiliza un equipo llamado Hub o Suiche, donde se enlazan físicamente los equipos entre ellos (en las redes usuario-usuario) o el Servidor con todos los equipos.




Tipos de medios de Comunicación para Redes.

La comunicación entre los Equipos de una Red se puede hacer por uno de los siguientes medios:

  • Cable de Cobre UFTP para redes.

Se utiliza un cableado físico desde cada equipo hasta el Hub o Suiche. Permite muy altas velocidades de comunicación y flujo de información, y es relativamente económico. Debido a que las conexiones son físicas y «solidas» estas redes son muy confiables y seguras.

  • Fibra Óptica.

Es el medio de comunicación más costoso, pero el de mayor capacidad de transmisión y con el que se obtienen mayores velocidades de transmisión de información. Al igual que el cable de cobre UFTP, es muy confiable y extremadamente seguro. Su costo es elevado debido a lo sofisticado de la tecnología utilizada.

Software Hosting

  • Inalámbrica.

Las Redes de comunicación inalámbrica funcionan en base a señales de radio frecuencia entre los Computadores que conforman la red y un dispositivo especial que cumple la función de receptor, codificador, decodificador y transmisor de la señal. Este dispositivo recibe el nombre de Access Point (Punto de Acceso) y generalmente lleva una conexión cableada desde el hasta el hub o suiche de red. Existen equipos comerciales que hacen ambas funciones (punto de acceso y suiche), aunque lo mas común es que se utilicen dos equipos separados.

Este sistema de comunicación es muy versátil en cuanto a ubicación y movilidad, pero no ofrece la velocidad ni la confiabilidad y seguridad de las redes cableadas. Es de amplio uso en redes domesticas y en redes locales de libre acceso de lugares públicos y algunos comercios y popularmente se le da el nombre de Wi-Fi (en su origen, por Wireless Fidelity).

Complementando la información relativa a Redes, queremos identificar varios términos de uso general que el Lector encontrara si decide profundizar en el tema.

  • LAN: Local Área Network o Red de Área Local.
  • WAN: Wide Área Network o Red de Área Amplia.
  • WLAN: Wireless Local Área Network o Red Inalámbrica de Área Local.



Custom Search

 

Guardar

Guardar

Guardar

Guardar

Guardar

Algo sobre Lenguajes de Programación


Lenguajes de programación.

Hay un solo lenguaje de programación que cualquier computadora puede realmente entender y ejecutar: su propio código de máquina binario nativo. Este es el nivel más bajo posible de lenguaje en el que es posible escribir un programa para comunicarse con una computadora. Todos los otros lenguajes de programación son llamados de más alto nivel  o más bajo nivel en proporción a cuanto se alejen o se acerquen al código binario de la maquina.

De acuerdo a esto, un lenguaje del más bajo nivel corresponde totalmente al código de máquina, por lo que una instrucción de lenguaje de bajo nivel se traduce en una sola instrucción de lenguaje máquina. Sin embargo, una instrucción de lenguaje de alto nivel por lo general se traduce en varias instrucciones de lenguaje de máquina.

Software HostingLos lenguajes de bajo nivel tienen la ventaja de que pueden ser escritos para aprovechar las peculiaridades de la arquitectura de la unidad central de procesamiento (CPU) que es el «cerebro» de cualquier ordenador. De manera que, un programa escrito en un lenguaje de bajo nivel puede ser muy eficaz, haciendo uso óptimo de la memoria de la computadora y tiempo de procesamiento. Sin embargo, escribir un programa de bajo nivel requiere de una cantidad considerable de tiempo, así como una comprensión muy clara del funcionamiento interno del microprocesador. Por lo tanto, la programación de bajo nivel se suele utilizar sólo para programas muy pequeños, o para segmentos de código que son muy críticos y deben funcionar tan eficientemente como sea posible.

Los Lenguajes de alto nivel permiten un desarrollo mucho mas rápido de grandes programas. El programa final, ejecutado por la computadora no es tan eficiente, pero las ventajas del ahorro en tiempo del programador generalmente superan las desventajas de la ineficiencias del programa. Esto se debe a que el costo de escribir un programa es casi constante para cada línea de código, independientemente del Lenguaje usado. Así, un lenguaje de alto nivel donde cada línea de código equivale a 10 instrucciones de Lenguaje de máquina, cuesta solamente la decima parte de lo que costaría programar las 10 líneas de código en Lenguaje de Maquina.




Los primeros Lenguajes de programación de alto nivel se fueron diseñando para tipos específicos de tareas. Los Lenguajes modernos son más de uso general. En cualquier caso, cada Lenguaje tiene sus propias características, vocabulario y sintaxis. Los más importantes son los siguientes:

FORTRAN.

Fue de los primeros lenguajes de programación. FORTRAN (acrónimo de FORmula TRANslator) fue diseñado para manejar operaciones matemáticas, originalmente en computadoras mainframe. Aunque fue muy eficiente en los cálculos matemáticos, FORTRAN fue incapaz de manejar texto de cualquier tipo y apenas podía colocar títulos e identificadores en sus salidas impresas.

programming-languagesdif

 

COBOL.

Su nombre es el acrónimo de COmmon Business Oriented Language. COBOL en su concepción, es casi el opuesto del FORTRAN. COBOL fue diseñado para facilitar las salidas escritas con mucho texto, en aplicaciones de procesamiento de datos para negocios y usando el Ingles para sus informes de salida. Fue concebido para manejar data textual de negocios y sus capacidades matemáticas están restringidas a poco más que operaciones con dinero y porcentajes.

PASCAL.

Debe su nombre a Blaise Pascal, filósofo y físico francés, y uno de los Padres de la automatización del computo. PASCAL fue diseñado específicamente como un Lenguaje didáctico. Su objeto era ayudar al estudiante a aprender correctamente las técnicas y los requisitos de la programación estructurada. Fue diseñado originalmente para ser utilizado en cualquier plataforma. Es decir, un programa en PASCAL podía compilarse en cualquier computadora, y el resultado funcionaría correctamente en cualquier otro equipo, incluso con un tipo de microprocesador diferente o incompatible. El resultado fue un Lenguaje relativamente lento, pero que funcionó y cumplió su cometido mientras estuvo de moda.

BASIC.

Su nombre es la sigla de Beginner’s All-purpose Symbolic Instruction Code (Código de Instrucciones simbólicas multiuso) y fue el primer Lenguaje interpretador diseñado para uso general. Fue el Lenguaje de Programación mas utilizado y hoy en día evoluciono como Visual Basic para trabajar bajo ambiente Windows.

FORTH.

Es un Compilador e Interprete que fue desarrollado originalmente para el manejo de operaciones en tiempo real y que además permitía al usuario controlarlo y hacer modificaciones rápidamente. El nombre FORTH se origino por el concepto de Lenguaje de 4ta Generación y tenía la restricción de permitir solamente nombres de archivo de hasta 5 caracteres.

C.

Se origino como un lenguaje experimental denominado A, que luego fue mejorado, corregido y ampliado y fue llamado B. Este lenguaje a su vez fue mejorado, actualizado, depurado y finalmente fue llamado C. El lenguaje C ha resultado ser muy versátil y sorprendentemente potente. Es un Lenguaje muy simple y sin embargo es capaz de hacer desarrollos de gran magnitud. El Sistema operativo Unix, que ha sido adaptado a una amplia gama de plataformas y no ha dejado de ganar popularidad, está escrito en Lenguaje C.

C++.

Cuando se desarrollo el concepto de Objetos y de programación orientada a Objetos, el Lenguaje C estándar no tenía la estructura interna para manejarlo.             Sin embargo, C fue, y es todavía, muy útil por lo que se ha mantenido en uso. Pero se desarrollo adicionalmente una especie de lenguaje C extendido que fue originalmente llamado «C y algo», o C-plus (C+). Posteriormente se siguieron desarrollando los conceptos de programación orientada a objetos y C+ evoluciono en C++.

JAVA.

La búsqueda constante de un Lenguaje de Plataforma Independiente, genero la aparición de Java. Este es el más reciente Lenguaje diseñado con ese objetivo. Cualquier computador con un ambiente de ejecución Java, puede correr un programa escrito en ese Lenguaje, lo cual lo hace, hasta el momento, el Lenguaje Universal por excelencia.

Uno de los aspectos más útiles de Java es que los navegadores Web ahora están diseñados para ser capaces de incorporar pequeñas aplicaciones Java, o «applets», en páginas Web. Otros programas de Java, llamados «servlets», se ejecutan en los servidores Web. Esto permite comunicaciones adicionales entre la página y el servidor y facilita un alto grado de interactividad y la generación de páginas dinámicas.

La desventaja de utilizar los applets de esta manera es que ellos inherentemente se ejecutan mucho más lentamente que los programas desarrollados en las computadoras.

JAVASCRIPT.

JavaScript es, en la mayoría de los aspectos, una versión interpretada de Java. Su uso más común está en páginas Web, donde puede ser utilizado para proporcionar interactividad y respuesta dinámica. Algunos servidores Web también pueden hacer uso de Javascript para la generación de páginas dinámicas.

PERL.

El Lenguaje Practico de Extracción y Reportes, Perl (Practical Extraction and Report Language), es muy similar al Lenguaje C en muchos aspectos. Sin embargo, tiene una serie de características que lo hacen muy útil para una amplia gama de aplicaciones. El uso más popular de Perl es la programación de CGI (Computer Generated Imagery) o Generación de Imágenes por Computadora, para desarrollo de aplicaciones Web. Por ejemplo, generalmente, cuando usted rellena y envía un formulario vía Internet, muy probablemente ese programa este escrito en Perl.

No obstante, ese no es el único uso de PERL, pues también es un excelente Lenguaje de programación de uso general que permite el desarrollo rápido en una amplia gama de Plataformas.

 HTML.

De la sigla en inglés de Hipertexto Markup Language (lenguaje de marcas de hipertexto), hace referencia al «lenguaje de marcado» para la elaboración de páginas Web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros.

Existen además otra gran cantidad de Lenguajes de Programación para aplicaciones especificas y de los cuales solo haremos mención, tales como PHP, LISP, ADA, RUBY, PHYTON y HASKELL.




Convirtiendo el Lenguaje de Maquina  a Lenguajes de Alto Nivel.

Los Lenguajes de Programación que vimos anteriormente, son todos considerados Lenguajes de Alto Nivel, y como ya habíamos mencionado, las Computadoras, como equipos eléctricos al fin, solo entienden el elemental lenguaje, de más bajo nivel, de los ceros y los unos, como representación del paso o no de la corriente eléctrica por sus millones de circuitos.

binario

Para convertir los Lenguajes de bajo nivel a Lenguajes de Alto Nivel, existen herramientas especificas de programación que hacen el trabajo. Hablemos algo acerca de ellas.

Lenguaje Ensamblador.

Lenguaje ensamblador no es más que una representación simbólica del código máquina, que también permite la designación simbólica de localizaciones de memoria. Por lo tanto, una instrucción para agregar el contenido de una ubicación de memoria a un registro interno del CPU, llamado el acumulador, puede ser agregar un número en lugar de una cadena de dígitos binarios (bits).

No importa cuán cerca este el lenguaje ensamblador al código de máquina, el equipo todavía no puede entenderlo. El programa de lenguaje ensamblador debe ser traducido a código máquina por un programa llamado ensamblador. El programa ensamblador reconoce las cadenas de caracteres que componen los nombres simbólicos de las diferentes operaciones de la máquina y sustituye el código máquina necesario para cada instrucción.

Al mismo tiempo, también calcula la dirección deseada, en la memoria, de cada nombre simbólico de dicha localización y sustituye las direcciones por los nombres. El resultado final es un programa de lenguaje de máquina que puede funcionar por sí mismo en cualquier momento.

Cuando llega a ese punto, el ensamblador y el programa de lenguaje ensamblador ya no son necesarios. Para ayudar a distinguir entre el «antes» y «después» de las versiones del programa, el programa original de lenguaje ensamblador también es conocido como el código fuente, mientras que el programa de lenguaje de máquina final se señala el código de objeto.

Si un programa de lenguaje ensamblador necesita ser cambiado o corregido, es necesario realizar los cambios en el código fuente y volver a montarlo para crear un programa objeto.

Lenguaje Compilador.

El Lenguaje compilador equivale al alto nivel del lenguaje ensamblador. Cada instrucción en el lenguaje compilador puede corresponder a muchas instrucciones de lenguaje de máquina. Una vez que el programa se ha escrito, se traduce al código máquina equivalente por un programa llamado compilador. Una vez que el programa ha sido compilado, el código máquina resultante se guarda por separado y se puede ejecutar por sí mismo en cualquier momento.

Al igual que sucede con los programas de lenguaje ensamblador, la actualización o corrección de un programa compilado requiere que el programa original o fuente, sea modificado apropiadamente y luego compilado para formar un nuevo programa de lenguaje de máquina u objeto.

Por lo general, el código compilado de la máquina es menos eficiente que el código producido cuando se utiliza lenguaje ensamblador. Esto significa que funciona un poco más lento y utiliza más memoria que la requerida para montar el programa ensamblador. Para compensar este inconveniente  tenemos el hecho de que toma mucho menos tiempo desarrollar un programa de lenguaje compilador, que el requerido para un programa de lenguaje ensamblador.

Lenguaje Interpretador.

Un lenguaje interpretador, al igual que un lenguaje compilador, se considera de alto nivel. Sin embargo, funciona de una manera totalmente diferente a la de estos. El programa interpretador reside en la memoria y ejecuta directamente el programa de alto nivel sin previamente hacer la traducción a código máquina.

El usar un programa interpretador para ejecutar directamente el programa de usuario tiene ventajas y desventajas. La principal ventaja es que se puede ejecutar el programa para probar su funcionamiento, efectuar algunos cambios y ejecutar de nuevo de forma directa. Es decir, no hay necesidad de volver a compilar porque nunca se produce ningún nuevo código máquina. Esto puede acelerar enormemente el desarrollo y proceso de pruebas.

Como desventaja tenemos que esta disposición requiere que ambos, el interpretador y el programa de usuarios residan en la memoria al mismo tiempo. Además, debido a que el intérprete tiene que escanear solo una línea del programa de usuario a la vez, y además ejecutar partes internas de sí mismo en respuesta, la ejecución de un programa interpretado es mucho más lenta que la de un programa compilado.



Custom Search

 

Guardar

Sistemas de numeración. Binario, Hexadecimal


Sistemas de numeración.

Los seres humanos usamos como referencia para contar, un sistema de numeración basado en el número diez (10). Este sistema de numeración es conocido como sistema DECIMAL, y tiene su origen en la utilización de los dedos de las manos como principales auxiliares de conteo. Para numero mayores de diez, el sistema decimal, aunque un poco errático al principio (once, doce, etc.), se regulariza posteriormente, con el uso de grupos consecuentes (veinte, veintiuno…, treinta, treinta y uno, y así…..).




En el caso de los computadores, como equipos eléctricos al fin, la forma de conteo es algo distinta debido a que sus limitaciones solo le permiten distinguir estados de un componente tal como un suiche con sus posiciones de apagado y encendido.

De esta manera, tenemos que la representación convencional utilizada para la interpretación de estos estados, es utilizar el numero 0 para simbolizar el estado de apagado, y el numero 1 para el estado de encendido.

Sistema de numeración binario

A este sistema de numeración que basa su principio en la utilización de dos dígitos, le llamaremos sistema BINARIO, y desde este momento debemos aceptarlo como la única forma de comunicación “directa” que entiende un computador cualquiera.

Veamos ahora como se efectúa la interpretación numérica, por parte de un computador, utilizando este sistema elemental de numeración.

Software HostingAnteriormente habíamos definido a la memoria del computador como una serie de casillas compuestas por grupos de BITS (ocho en nuestro caso), y a las que llamábamos BYTES. Cada uno de estos BITS podía tomar uno cualquiera de los valores 0 y 1, permitiéndonos obtener “palabras” como por ejemplo:

                                                00011001

Desde el punto de vista del sistema de numeración BINARIO, esta palabra es conocida como “cadena de dígitos binarios”, y le corresponde un valor equivalente en el sistema de numeración  DECIMAL.

La correspondencia en el sistema decimal, de cualquier número binario, se obtiene aplicando el concepto de BASE NUMERICA. En general, para cualquier sistema de numeración, podemos definir como BASE NUMERICA al número que da origen al principio del conteo. Así, para el sistema DECIMAL podemos hablar de BASE 10, para el sistema BINARIO utilizaremos BASE 2, etc.

Por ejemplo, el número decimal 743 puede representarse como:

(7X102) + (4X101) + (3X100)

= 700 + 40 + 3

= 743

De igual manera, un número binario como el representado por la cadena 00011001 puede ser llevado a su decimal equivalente usando el mismo principio:

(1X24) + (1X23) + (0X22) + (0X21) + (1X20)

= 16 +      8     +     0     +     0     +      1

= 25

Como podemos observar, los sistemas BINARIO y DECIMAL trabajan de forma similar, solo que la cantidad de dígitos requeridos para expresar un número cualquiera, es mayor en el caso de que lo hagamos con dígitos binarios. Efectivamente, si hubiéramos utilizado dígitos decimales para la expresión del número 25, solo habríamos tenido que utilizar 2, en tanto que para expresar este mismo número utilizando dígitos binarios (11001) requerimos 5.

Obviamente, a pesar de que los computadores solo entienden y operan con números binarios, su gran ventaja sobre los seres humanos es la velocidad a la que realizan enormes cantidades de operaciones por segundo, aun trabajando con esas largas cadenas de ceros y unos que para nosotros son tan difíciles de entender y mucho mas, de memorizar.

Debido a esto, el hombre ha ideado diversos sistemas de notación que contribuyan a una más fácil comunicación con los computadores. Uno de estos sistemas se basa en el uso del sistema de numeración HEXADECIMAL, el cual consiste en la utilización de la base numérica 16.

En la tabla siguiente, se indican los elementos que conforman al sistema de numeración hexadecimal, así como su correspondencia con los elementos de los sistemas de numeración decimal y binario.

HEX.                         DEC.                      BIN.

0…………………………… 0……………………. 0000

1……………………………. 1…………………….. 0001

2…………………………… 2…………………….. 0010

3……………………………. 3…………………….. 0011

4……………………………. 4……………………. 0100

5……………………………. 5……………………. 0101

6……………………………. 6……………………. 0110

7……………………………. 7…………………….. 0111

8…………………………….. 8…………………… 1000

9……………………………. 9……………………..1001

A……………….…………..10……………………… 1010

B…………………….……..11……………….……… 1011

C……………………………12……………….……… 1100

D……………………………..13……………………… 1101

E……………………………..14……………………… 1110

F……………………………..15……………………… 1111

               TABLA 1





Veamos un ejemplo de representación numérica para el caso del número hexadecimal 2F:

2F = (2 X 16¹) + (FX16°)

=            32    +  (Fx1)

=           32    +    15

= 47 en decimal.

El número 47 decimal se representa como 101111 en binario, y es evidente que la utilización de 2F es mucho más fácil de visualizar y entender.

Si bien es cierto que la numeración a través del uso de hexadecimales tampoco puede ser entendida directamente por el computador, no lo es menos que los operadores pueden facilitar su trabajo de conversión debido a la peculiaridad de la relación entre ambos sistemas, que consiste en lo siguiente:

  1. La base del sistema binario es 2
  2. La base del sistema hexadecimal es 16
  3. La cuarta potencia de 2 es 16.

Unidos al hecho de que un byte puede ser dividido en dos grupos de 4 bits, y que estos grupos permiten la aplicación de las siguientes reglas:

    • Para convertir hexadecimal en binario, hay que convertir cada digito hexadecimal por los cuatro bits correspondientes en binario (ver tabla 1).
  • Para convertir binario en hexadecimal, hay que dividir el número binario en grupos de cuatro bits (de derecha a izquierda) y luego sustituir cada uno de los grupos por el digito hexadecimal correspondiente.

De esta manera, y si tomamos en consideración que en nuestro caso tenemos como unidad de referencia el byte (grupo de ocho bits), tendremos que “casualmente”, el mayor numero expresado en binario dentro de ese byte (11111111), coincide con el mayor numero expresado por un numero hexadecimal de dos dígitos (FF), y es el 255, el mayor número posible expresado seria 1111111111111111 (16 números uno) y esto sería representado en hexadecimal como FFFF, que no es más que 65536.

Como podemos observar, existe una curiosa relación entre estos números con los que hemos querido ejemplificar. Por ejemplo, al referirnos a la capacidad de memoria de un computador, habíamos dicho que esta se media en kilobytes y en sus múltiplos, y que estos no eran más que un grupo de múltiplos de 1024 bytes. Esto indica, que si hablamos de un computador con 64K nos estamos refiriendo a una capacidad real de 1024X64=65536 bytes…

Todas estas “coincidencias” tienen una explicación lógica, pero entrar con más profundidad en este tipo de explicaciones, implicaría alejarnos demasiado del objetivo de este sitio web, por lo cual las dejaremos para una posterior oportunidad.



Custom Search

 

Guardar

¿Qué es el Software y cómo funciona?


Software… ¿Qué es?

Los computadores requieren para su trabajo una serie de instrucciones que definimos anteriormente como programas, los cuales podían ser los propios del sistema (alojados en la memoria ROM), o los introducidos por el usuario (alojados en la memoria RAM). El termino Software se refiere a la parte intangible del sistema y no tiene traduccion literal al Español.



Contrariamente a lo que muchos pueden pensar y excepto en aplicaciones de Inteligencia Artificial, son incapaces de actuar por cuenta propia. Su manera de resolver problemas o tomar decisiones es solo un reflejo del criterio de la persona que prepara los programas que el Computador ejecuta. Estos programas son conocidos como Programas de Usuario, y no son más que conjuntos de instrucciones introducidas al computador para su ejecución de forma ordenada y en perfecta secuencia.

Los datos o información de trabajo son toda aquella información generada por el usuario (o el propio programa) que se utiliza para la realización del cálculos y/o análisis lógicos.

Los programas del sistema son los que se encargan de coordinar el funcionamiento del computador y son definidos por el fabricante a través de instrucciones alambradas, y por ende, permanentes.

Software HostingLa memoria interna del Computador está compuesta por dos tipos de memoria, las memorias de “lectura solamente” o tipo ROM (Read Only Memory), y las memorias de “acceso aleatorio” o tipo RAM (Random Acces Memory).

El ROM es la zona de la memoria residente destinada a albergar los programas permanentes del sistema y no se puede ser alterado (normalmente) ni borrado, aunque el computador sea desenergizado.

El RAM es una zona de memoria para uso general del usuario en donde la información, ya sea datos o programas, puede ser almacenada o recuperada cuando sea requerido. Originalmente, todas las memorias eran del tipo volátil, lo que significaba que el contenido de la memoria RAM se perdía cada vez que desenergizábamos al computador.

.

memoria RAM

La aparición de las llamadas memorias no volátiles o permanentes revoluciono una vez más el mundo de las computadoras y además implico el que pudieran aparecer los dispositivos portátiles de computación, así como los más diversos medios de almacenaje y manejo para la información digital.

Normalmente, la memoria puede ser visualizada como un grupo de casillas (también llamadas localizaciones), numeradas de 0 en adelante. El numero de localización es conocido como “dirección” y tiene como principal característica ser único, y siempre el mismo, dentro de cada computador. Cada localización de memoria almacena una “palabra” que a su vez está dividida en BITS.

Un BIT está definido como la unidad elemental de información binaria y solo puede tener los valores 0 y 1. Su nombre esta derivado de la contracción resultante de las palabras “BInary digiT”.

ROM

La cantidad de BITS que componen una “palabra” está en función de la arquitectura del Microprocesador y aunque en un inicio el estándar fue de 8 bits, las capacidades fueron creciendo a 16, 32, 64 bits, alcanzando hoy en día tamaños de hasta 256 bits. Para nuestra explicación usaremos un tamaño de 8 bits recibiendo el nombre de “BYTE”.



Otros términos que creemos conveniente aclarar, son los muy usados símbolos “K”, «M», «G» y «T» cuando nos referimos a capacidades de memoria. Estas representaciones cuantitativas de la memoria de un computador, no son más que el resultado de la asociación con los prefijos “Kilo”, «Mega», «Giga» y «Tera» del Sistema Métrico Decimal, utilizado para representar grupos de 1,000, 1,000,000, 1,000,000,000, y 1,000,000,000,000 de unidades.

En el caso que estamos usando para la explicación, el prefijo “Kilo” usado en la expresión kilobyte, no significa exactamente 1000 bytes, sino 1024. Este número, como veremos más adelante, es el resultado de elevar el número 2 a su decima potencia (2¹º). Esto quiere decir, que cuando nos referimos a la capacidad de memoria de un computador usando el término 16K, lo que queremos decir es que este computador es capaz de almacenar 16,384 “palabras” de ocho Bits cada una, o lo que es lo mismo, 16,384 bytes.



Custom Search

 

Guardar