sábado, 19 de noviembre de 2011

programación





  • Lenguajes de Programación
Los programas que el procesador puede ejecutar deben de estar en el lenguaje nativo de ese procesador. Es decir, cada instrucción debe estar en código binario y directamente relacionada con los circuitos del procesador. Expresar instrucciones completamente en un código binario es un proceso demasiado lento y difícil y sujeto a errores, aún para los programadores más hábiles y experimentados.
Los lenguajes de programación han sido diseñados para poder escribir instrucciones parecidas a un lenguaje humano (generalmente es el inglés) que las computadoras pueden convertir en código binario a través de los denominados compiladores. En resumen los lenguajes de programación facilitan la programación de la computadora. Estos lenguajes de programación son usados para hacer hojas de cálculo, procesadores de texto que sirven como herramientas (software) en la computadora.
Niveles de Lenguaje:
Los programadores clasifican los lenguajes de programación de acuerdo con su legibilidad. Los lenguajes de bajo nivel son muy difíciles de entender, y requiere que los programadores codifiquen las instrucciones con gran detalle al lenguaje nativo de la máquina. Los lenguajes de alto nivel utilizan enunciados parecidos al inglés el cual los novatos pueden dominar con gran rapidez.
Un compilador traduce las instrucciones de un lenguaje de programación de alto nivel a código binario en forma similar a la de un traductor bilingüe.
Algunos ejemplos de lenguajes de programación de alto nivel más populares:
FORTRAN: (Abreviación de FORmula TRANslator *Traductor de fórmula*) Este es el más antiguo de los sobrevivientes entre los lenguajes de alto nivel. Originalmente fue diseñado para resolver problemas científicos, matemáticos y de ingeniería que requerían cálculos numéricos repetitivos y fórmulas complejas. Pronto se difundió por su eficiencia, rapidez y utilización de memoria. También ofrecía una librería de subrutinas preprogramadas que los usuarios incorporaban en sus programas. Mucha gente especialista todavía lo utiliza.
COBOL: (COmmon Business Oriented Lenguaje *Lenguaje común orientado a los negocios*) Este lenguaje fue desarrollado para resolver los problemas en los negocios. Los lenguajes que existían (maquina)Ensamblador y FORTRAN no eran adecuados para las aplicaciones de los negocios. Un esfuerzo común entre negocios, profesionistas y empresas hicieran lograr la aparición de COBOL en 1960. actualmente 2/3 partes de los que utilizan mainframe lo usan.
BASIC: (Beginner's All-purpose Symbolic Instruction Code *Código de instrucción por símbolos para todo propósito y para principiantes*) Desarrollado en 1964 como un lenguaje simple y fácil de aprender que opera en un ambiente interactivo. De manera que se puede estar programando al mismo tiempo que ejecutas el programa para así interactuar con el sistema, así los errores pueden descubrirse más fácilmente. BASIC se convirtió en un estándar para los estudiantes de computación básica.
LENGUAJE C: Este lenguaje fue desarrollado en los laboratorios AT&Ts Bell a principios de la década de 1970. Originalmente fue elaborado para escribir sistemas operativos y UNIX esta hecho casi totalmente en C. Los Programas escritos en C son transportables. Mucho del software comercial esta elaborado en C. tiene las ventajas del lenguaje ensamblador, pero sin tantas dificultades.
LISP: Este lenguaje fue desarrollad en 1958 en MIT. Se utiliza para construir programas de inteligencia artificial, antes era un lenguaje de científicos y teóricos. Este lenguaje se basa sobre la premisa de que las deducciones lógicas pueden ser representadas y manipuladas utilizando listas. LISP actualmente se utiliza en sistemas expertos y programas de lenguaje natural.
PROLOG: Éste es otro lenguaje de programación utilizado con propósito de inteligencia artificial. Este lenguaje no esta basado en los procedimientos. Según los japoneses este es el lenguaje adecuado para la quinta generación de computadoras.
  • Los tipos de programación
Programación orientada a objetos: Se basa en la creación de objetos. Un objeto consiste en un bloque de código programado que encapsula al dato junto con las instrucciones que operarán para el manejo de este. Después, cuando se requiere efectuar alguna operación con ese objeto, se envía un mensaje a este. El mensaje solamente identifica a la operación que se efectuará, pues el objeto ya contiene las instrucciones (llamada método) de la manera en que se llevará a cabo la operación. Una vez construido un objeto es fácil hacer objetos similares con sus características y comportamientos copiados. Los objetos que se derivan forman una clase. Cada clase contiene instrucciones o métodos específicos que son únicos en ese grupo.
Programación estructurada: Término general que se refiere a un tipo de programación que produce código con un flujo limpio, un diseño claro y un cierto grado de modularidad o de estructura jerárquica. Entre los beneficios de la programación estructurada se encuentran la facilidad de mantenimiento y la legibilidad por parte de otros programadores.
Programación visual: Esta programación desarrolla técnicas en donde utilizan la programación orientada a objetos, pero hacen posible crear aplicaciones que funcionan con el puntero del ratón y los botones, y a objetos visuales, como los que aparecen en las cajas y diálogos de windows. Estos programas se elaboran conectando varios objetos. La ventaja es que el usuario no tiene que aprender el lenguaje o sintaxis del lenguaje de programación.


  • Programación de Sistemas
Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
  • Funcionamiento de windows (windows, eventos, mensajes)
Una versión reducida del funcionamiento de Windows incluye tres conceptos clave: ventanas, eventos y mensajes.
Una ventana es simplemente una región rectangular con sus propios límites. Probablemente ya sabe que hay varios tipos de ventanas: una ventana Explorador en Windows 95, una ventana de documento dentro de su programa de proceso de textos o un cuadro de diálogo que emerge para recordarle una cita. Aunque éstos son los ejemplos más comunes, realmente hay otros muchos tipos de ventanas. Un botón de comando es una ventana. Los iconos, cuadros de texto, botones de opción y barras de menús son todos ventanas.
El sistema operativo Microsoft Windows administra todas estas ventanas asignando a cada una un único número identificador (controlador de ventana o hWnd). El sistema controla continuamente cada una de estas ventanas para ver si existen signos de actividad o eventos. Los eventos pueden producirse mediante acciones del usuario, como hacer clic con el mouse (ratón) o presionar una tecla, mediante programación o incluso como resultado de acciones de otras ventanas.
Cada vez que se produce un evento se envía un mensaje al sistema operativo. El sistema procesa el mensaje y lo transmite a las demás ventanas. Entonces, cada ventana puede realizar la acción apropiada, basándose en sus propias instrucciones para tratar ese mensaje en particular (por ejemplo, volverse a dibujar cuando otra ventana la ha dejado al descubierto).Como puede imaginar, tratar todas las combinaciones posibles de ventanas, eventos y mensajes podría ser interminable. Afortunadamente, Visual Basic le evita tener que tratar con todos los controladores de mensajes de bajo nivel. Muchos de los mensajes los controla automáticamente Visual Basic, mientras que otros se tratan como procedimientos de evento para su comodidad. Esto le permite crear rápidamente eficaces aplicaciones sin tener que tratar detalles innecesarios.
  • Descripción del modelo controlado por eventos
En las aplicaciones tradicionales o "por procedimientos", la aplicación es la que controla qué partes de código y en qué secuencia se ejecutan. La ejecución comienza con la primera línea de código y continúa con una ruta predefinida a través de la aplicación, llamando a los procedimientos según se necesiten.
En una aplicación controlada por eventos, el código no sigue una ruta predeterminada; ejecuta distintas secciones de código como respuesta a los eventos. Los eventos pueden desencadenarse por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o incluso por la propia aplicación. La secuencia de estos eventos determina la secuencia en la que se ejecuta el código, por lo que la ruta a través del código de la aplicación es diferente cada vez que se ejecuta el programa.
Puesto que no puede predecir la secuencia de los eventos, el código debe establecer ciertos supuestos acerca del "estado del mundo" cuando se ejecute. Cuando haga suposiciones (por ejemplo, que un campo de entrada debe contener un valor antes de ejecutar un procedimiento para procesar ese valor), debe estructurar la aplicación de forma que asegure que esa suposición siempre será válida (por ejemplo, deshabilitando el botón de comando que inicia el procedimiento hasta que el campo de entrada contenga un valor).
El código también puede desencadenar eventos durante la ejecución. Por ejemplo, cambiar mediante programación el texto de un cuadro de texto hace que se produzca el evento Change del cuadro de texto. Esto causaría la ejecución del código (si lo hay) contenido en el evento Change. Si supone que este evento sólo se desencadenará mediante la interacción del usuario, podría ver resultados inesperados. Por esta razón es importante comprender el modelo controlado por eventos y tenerlo en cuenta cuando diseñe su aplicación.
  • Desarrollo Interactivo
El proceso de desarrollo de las aplicaciones tradicionales se puede dividir en tres etapas diferentes: escritura, compilación y comprobación del código. A diferencia de los lenguajes tradicionales, Visual Basic utiliza una aproximación interactiva para el desarrollo, difuminando la distinción entre los tres pasos.
En la mayoría de los lenguajes, si comete un error al escribir el código, el compilador intercepta este error cuando comience a compilar la aplicación. Debe encontrar y corregir el error y comenzar de nuevo con el ciclo de compilación, repitiendo el proceso para cada error encontrado. Visual Basic interpreta el código a medida que lo escribe, interceptando y resaltando la mayoría de los errores de sintaxis en el momento. Es casi como tener un experto vigilando cómo escribe el código.
Además, para interceptar errores sobre la marcha, Visual Basic también compila parcialmente el código según se escribe. Cuando esté preparado para ejecutar y probar la aplicación, tardará poco tiempo en terminar la compilación. Si el compilador encuentra un error, quedará resaltado en el código. Puede corregir el error y seguir compilando sin tener que comenzar de nuevo.
A causa de la naturaleza interactiva de Visual Basic, se encontrará ejecutando la aplicación frecuentemente a medida que la desarrolle. De esta forma puede probar los efectos del código según lo escriba en lugar de esperar a compilarlo más tarde.

topologias

Topología
Se llama topología de una Red al patrón de conexión entre sus nodos, es decir, a la forma en que están interconectados los distintos nodos que la forman. Los Criterios a la hora de elegir una topología, en general, buscan que eviten el coste del encaminamiento (necesidad de elegir los caminos más simples entre el nodo y los demás), dejando en segundo plano factores como la renta mínima, el coste mínimo, etc. Otro criterio determinante es la tolerancia a fallos o facilidad de localización de éstos. También tenemos que tener en cuenta la facilidad de instalación y reconfiguración de la Red. Atendiendo a los criterios expuestos anteriormente hay dos clases generales de topología utilizadas en Redes de Area Local: Topología tipo Bus y Topología tipo Anillo. A partir de ellas derivan otras que reciben nombres distintos dependiendo de las técnicas que se utilicen para acceder a la Red o para aumentar su tamaño. Algunos autores consideran también la topología Estrella, en la que todos los nodos se conectan a uno central. Aunque en algunos casos se utilice, una configuración de este tipo no se adapta a la filosofía LAN, donde uno de los factores más característicos es la distribución de la capacidad de proceso por toda la Red. En una Red Estrella gran parte de la capacidad de proceso y funcionamiento de la Red estarán concentradas en el nodo central, el cual deberá de ser muy complejo y muy rápido para dar un servicio satisfactorio a todos los nodos.
De este modo, existen tres tipos, que podíamos llamar "puros". Son los siguientes:
  • Estrella.
  • Bus.
  • Anillo
  • Arbol


    Topología en Estrella.
    Esta topología se caracteriza por existir en ella un punto central, o más propiamente nodo central, al cual se conectan todos los equipos, de un modo muy similar a los radios de una rueda.
    De esta disposición se deduce el inconveniente de esta topología, y es que la máxima vulnerabilidad se encuentra precisamente en el nodo central, ya que si este falla, toda la red fallaría. Este posible fallo en el nodo central, aunque posible, es bastante improbable, debido a la gran seguridad que suele poseer dicho nodo. Sin embargo presenta como principal ventaja una gran modularidad, lo que permite aislar una estación defectuosa con bastante sencillez y sin perjudicar al resto de la red.
    Para aumentar el número de estaciones, o nodos, de la red en estrella no es necesario interrumpir, ni siquiera parcialmente la actividad de la red, realizándose la operación casi inmediatamente.
    La topología en estrella es empleada en redes Ethernet y ArcNet.
    Topologías
    Topología en Bus
    En la topología en bus, al contrario que en la topología de Estrella, no existe un nodo central, si no que todos los nodos que componen la red quedan unidos entre sí linealmente, uno a continuación del otro.
    El cableado en bus presenta menos problemas logísticos, puesto que no se acumulan montones de cables en torno al nodo central, como ocurriría en un disposición en estrella. Pero, por contra, tiene la desventaja de que un fallo en una parte del cableado detendría el sistema, total o parcialmente, en función del lugar en que se produzca. Es además muy difícil encontrar y diagnosticar las averías que se producen en esta topología.
    Debido a que en el bus la información recorre todo el bus bidireccionalmente hasta hallar su destino, la posibilidad de interceptar la información por usuarios no autorizados es superior a la existente en una Red en estrella debido a la modularidad que ésta posee. La red en bus posee un retardo en la propagación de la información mínimo, debido a que los nodos de la red no deben amplificar la señal, siendo su función pasiva respecto al tráfico de la red. Esta pasividad de los nodos es debida mas bien al método de acceso empleado que a la propia disposición geográfica de los puestos de red.
    La Red en Bus necesita incluir en ambos extremos del bus, unos dispositivos llamados terminadores, los cuales evitan los posibles rebotes de la señal, introduciendo una impedancia característica (50 Ohm.)
    Añadir nuevos puesto a una red en bus, supone detener al menos por tramos, la actividad de la red. Sin embargo es un proceso rápido y sencillo.
    Es la topología tradicionalmente usada en redes Ethernet.
    Topologías
    Topología en Anillo
    El anillo, como su propio nombre indica, consiste en conectar linealmente entre sí todos los ordenadores, en un bucle cerrado. La información se transfiere en un solo sentido a través del anillo, mediante un paquete especial de datos, llamado testigo, que se transmite de un nodo a otro, hasta alcanzar el nodo destino.
    El cableado de la red en anillo es el más complejo de los tres enumerados, debido por una parte al mayor coste del cable, así como a la necesidad de emplear unos dispositivos denominados Unidades de Acceso Multiestación (MAU) para implementar físicamente el anillo.
    A la hora de tratar con fallos y averías, la red en anillo presenta la ventaja de poder derivar partes de la red mediante los MAU's, aislando dichas partes defectuosas del resto de la red mientras se determina el problema. Un fallo, pues, en una parte del cableado de una red en anillo, no debe detener toda la red. La adición de nuevas estaciones no supone una complicación excesiva, puesto que una vez más los MAU's aíslan las partes a añadir hasta que se hallan listas, no siendo necesario detener toda la red para añadir nuevas estaciones.
    Dos buenos ejemplos de red en anillo serían Token-Ring y FDDI (fibra óptica)
    Topologías
    Topología de Árbol.
    La topología en árbol es una generalización de la topología en bus. Esta topología comienza en un punto denominado cabezal o raíz (headend). Uno ó más cables pueden salir de este punto y cada uno de ellos puede tener ramificaciones en cualquier otro punto. Una ramificación puede volver a ramificarse. En una topología en árbol no se deben formar ciclos.
    Una red como ésta representa una red completamente distribuida en la que computadoras alimentan de información a otras computadoras, que a su vez alimentan a otras. Las computadoras que se utilizan como dispositivos remotos pueden tener recursos de procesamientos independientes y recurren a los recursos en niveles superiores o inferiores conforme se requiera.
    Topologías
    Topología punto-a-punto
    La topología punto-a-punto (point-to-point o PTP) conecta dos nodos directamente. Por ejemplo, dos computadoras comunicándose por modems, una terminal conectándose con una mainframe, o una estación de trabajo comunicándose a lo largo de un cable paralelo con una impresora.
    En un enlace PTP, dos dispositivos monopolizan un medio de comunicación. Debido a que no se comparte el medio, no se necesita un mecanismo para identificar las computadoras, y por lo tanto, no hay necesidad de direccionamiento.
    Topología multipunto
    La topología multipunto enlaza tres dispositivos juntos o más a través de un sistema de comunicación. Debido a que ñesta topología comparte un canal común, cada dispositivo necesita identificarse e identificar el dispositivo al cual se quiere mandar información. Este dispositivo para identificar transmisores y receptores se llama direccionamiento.

    Topologías

Internet

En todos lados se hace mención constante del "w@llwaywehb" ó WWW y en las revistas, diarios y la televisión aparecen con más frecuencia esas extrañas direcciones http://bingo.com/aqui.htlm o algo así. Todo el mundo parece que está usando Internet o por lo menos sabe lo que es. Pero ¿lo sabe usted?
Internet es el legado del sistema de protección de los Estados Unidos para mantener sus computadoras militares conectadas en caso de un ataque militar y la destrucción de uno o varios de los nodos de su red de computadoras.
En la actualidad es una enorme red que conecta redes y computadoras distribuidas por todo el mundo, permitiéndonos comunicarnos y buscar y transferir información sin grandes requerimientos tecnológicos ni económicos relativos para el individuo.
Internet es un conjunto descentralizado de redes de comunicación interconectadas que utilizan la familia de protocolos TCP/IP, garantizando que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial. Sus orígenes se remontan a 1969, cuando se estableció la primera conexión de computadoras, conocida como ARPANET, entre tres universidades enCalifornia y una en UtahEstados Unidos.
Uno de los servicios que más éxito ha tenido en Internet ha sido la World Wide Web (WWW, o "la Web"), hasta tal punto que es habitual la confusión entre ambos términos. La WWW es un conjunto de protocolos que permite, de forma sencilla, la consulta remota de archivos de hipertexto. Ésta fue un desarrollo posterior (1990) y utiliza Internet comomedio de transmisión.
Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la Web: el envío decorreo electrónico (SMTP), la transmisión de archivos (FTP y P2P), las conversaciones en línea (IRC), lamensajería instantánea y presencia, la transmisión de contenido y comunicación multimedia -telefonía(VoIP), televisión (IPTV)-, los boletines electrónicos(NNTP), el acceso remoto a otros dispositivos (SSH yTelnet) o los juegos en línea.
El género de la palabra Internet es ambiguo, según elDiccionario de la lengua española de la Real Academia Española.3 4




Orígenes

Internet tuvo un origen militar que puede rastrearse a 1969, cuando la Agencia de Proyectos para Investigación Avanzada (Advanced Research Projects Agency en inglés ó ARPA) del Departamento de Defensa de los Estados Unidos conectó cuatro sistemas de cómputos geográficamente distantes en una red que se conoció como ARPAnet.
Pero, si bien la idea original estaba intrínsecamente ligada a la seguridad militar, su evolución e implementación tuvieron lugar alrededor del mundo académico. La misma red en experimentación sirvió para conectar a los científicos desarrollándola y ayudarlos a compartir opiniones, colaborar en el trabajo y aplicarla para fines prácticos. Pronto, ARPAnet conectaría todas las agencias y proyectos del Departamento de Defensa de los E.U.A. y para 1972 se habían integrado ya 50 universidades y centros de investigación diseminados en los Estados Unidos.
Eventualmente la Fundación Nacional de 
Ciencia (National Science Foundation en inglés ó NSF), entidad gubernamental de los Estados Unidos para el desarrollo de la ciencia se hizo cargo de la red, conectando las redes que luego darían lugar a la red de redes que hoy llamamos Internet.