miércoles, 8 de abril de 2009

LENGUAJE DE PROGRAMACÓN

CONCEPTOS GENERALES DE LENGUAJE DE PROGRAMACIÓN.


1.1.HISTORIA DE LENGUAJE DE PROGRAMACIÓN. Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor ingles, que la principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto se empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Entonces Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales responden a un esquema análogo al de la máquina analítica. En su diseño, la máquina constaba de cinco unidades básicas: · Unidad de entrada, para introducir datos e instrucciones. · Memoria, donde se almacenaban datos y resultados intermedios. · Unidad de control, para regular la secuencia de ejecución de las operaciones. · Unidad Aritmético-Lógica, que efectúa las operaciones. · Unidad de salida, encargada de comunicar al exterior los resultados. 1.2.CONCEPTOS: ü Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina. ü Aunque muchas veces se usan los términos 'lenguaje de programación' y 'lenguaje informático' como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación). ü Un lenguaje de programación permite a uno o más programadores especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. ü Un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas. ü Los lenguajes de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc. ü Los lenguajes de programación de una computadora en particular se conoce como código de máquinas o lenguaje de máquinas. ü Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar. ü Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar. 1.3. LENGUAJE DE PROGRAMACION QUE UTILIZAN La ejecución de un programa con compilador requiere de dos etapas: 1) Traducir el programa simbólico a código máquina2) Ejecución y procesamiento de los datos. 1.4.TIPOS DE LENGUAJE DE PROGRAMACIÓN: Los lenguajes de programación se clasifican en: 1.1.1. LENGUAJES DE ALTO NIVEL. 1.1.1.1. CONCEPTOS: Ø Es tipo de lenguajes son los más utilizados por los programadores actuales. Las instrucciones son legibles para las personas, y son mucho más fáciles que el ensamblador y el lenguaje máquina. Ø Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's. Ø Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. Ø Son todos aquellos lenguajes de programación que son más afines al lenguaje natural que al lenguaje máquina. Estos lenguajes de programación son completamente independientes de la arquitectura del hardware de la computadora u ordenador. Por lo que en general, un programa escrito con un lenguaje de programación de alto nivel lo podemos utilizar en cualquier otra computadora. Ø Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente. Dicho de otra manera, un solo macroinstrucción podía producir varias líneas de código en lenguaje de máquina. Por ejemplo, el programador podría escribir "LEER ARCHIVO", y el programa traductor produciría una serie detallada de instrucciones al lenguaje de máquina previamente preparadas, con lo que se copiaría un registro del archivo que estuviera leyendo el dispositivo de entrada a la memoria principal. Ø Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, uno de los lenguajes de alto nivel más conocidos, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Ø A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramación cuando se adquiere equipo nuevo. 1.1.1.2. VENTAJAS: · Son más fáciles de aprender que los lenguajes ensambladores. · Se pueden escribir más rápidamente. · Permiten tener mejor documentación. · Son más fáciles de mantener. · Un programador que sepa escribir programas en uno de estos lenguajes no está limitado a utilizar un solo tipo de máquina. 1.1.1.3. DESVENTAJAS: · Dificultad y lentitud en la codificación · Es poco fiable. · Gran dificultad para corregir posibles errores. 1.1.1.4. NOTA: EDD’s son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa 1.1.1.5. DENTRO DE ESTE GRUPO SE ENCUENTRAN: 1. LENGUAJE DE PROCEDIENTOS: Son lenguajes de alto nivel similares al habla humana pero requieren cierta capacitación para su uso. 1.1. VENTAJAS: a. Independencia de la arquitectura física de la computadora (portabilidad), esto significa que un mismo lenguaje puede funcionar (al menos en teoría) en distintos computadores, por lo que tanto el lenguaje como los programas escritos con él serán transportables de un computador a otro. En la práctica, esta característica resulta limitada por la gran diversidad de versiones y dialectos que se constituyen para cada lenguaje. b. una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias instrucciones en lenguaje máquina. Se llaman de procedimientos porque están diseñados para expresar la lógica capaz de resolver problemas generales. Entre estos tenemos:Basic, Pascal, Cobol, C, Fortran. 1.1.1. NOTA: Para que el lenguaje de procedimientos pueda funcionar debe traducirse a lenguaje de máquina a fin de que la computadora lo entienda. Para ello se han de usar programas traductores que realicen dicho proceso. Tienen la capacidad de soportar programación estructurada. 2. LENGUAJES ORIENTADOS A PROBLEMA (4GL): Resultan más eficaces para la resolución de un tipo de problemas a costa de una menor eficiencia para otros. Requieren poca capacitación especial de parte del usuario Son considerados de muy alto nivel Diseñados para resolver problemas específicos. 2.1. INCLUYE: Lenguajes de consulta y generador de aplicaciones 2.2. LENGUAJES DE CONSULTA: Permiten a no programadores usar ciertos comandos de fácil comprensión para la búsqueda y generación de reportes a partir de una base de datos. 2.3. GENERADOR DE APLICACIONES: Quiere decir que cuando se diseña uno de estos lenguajes, se tiene en cuenta que su finalidad es la resolución de problemas, prescindiendo de la arquitectura del computador. Contiene varios módulos que han pre programados para cumplir varias tareas. 3. LENGUAJES NATURALES: Lenguajes orientados a aplicaciones en inteligencia artificial, como lisp y prolog. Dentro de este campo destacan las aplicaciones en sistemas expertos, juegos, visión artificial (Jurasic Park) y robótica. Lisp es un lenguaje para procesamiento de listas y manipulación de símbolos. Prolog es un lenguaje basado en la lógica, para aplicaciones de bases de datos e Inteligencia Artificial.Podemos decir entonces, que los lenguajes de alto nivel, tienen las ventajas de mayor legibilidad de los programas, portabilidad, facilidad de aprendizaje y facilidad de modificación. 3.1.1.1. CARACTIRISTICAS DE ALTO NIVEL: Son independientes de la arquitectura física de la computadora. Permiten usar los mismos programas en computadoras de diferentes arquitecturas (portabilidad), y no es necesario conocer el hardware específico de la máquina. La ejecución de un programa en lenguaje de alto nivel, requiere de una traducción del mismo al lenguaje de la computadora donde va a ser ejecutado. Una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias instrucciones en lenguaje entendible por el computador. Utilizan notaciones cercanas a las usadas por las personas en un determinado ámbito. Se suelen incluir instrucciones potentes de uso frecuente que son ofrecidas por el lenguaje de programación. 3.1.1.2. LENGUAJE DE PROGRAMACION CON DEFERENTES VERSINES: v Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y Ada. v Lenguajes de programación declarativos: el Lisp y el Prolog. v Lenguajes de programación orientados a objetos: el Smalltalk y el C++. v Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para gestión. v Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el diseño y la construcción de programas al lenguaje de las personas. 3.1.1.3. CLASIFICACION DE LENGUAJE DE ALTO NIVEL CON GENERACION DE COMPUTACION: § Lenguajes de programación de primera generación: el lenguaje máquina y el ensamblador. § Lenguajes de programación de segunda generación : los primeros lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL). § Lenguajes de programación de tercera generación: son lenguajes de programación de alto nivel imperativo pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). § Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y manejo de bases de dados (NATURAL, SQL). § Lenguajes de programación de quinta generación: creados para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).

3.1.1.4. CLASIFICACIÓN DE LOS LENGUAJES DE ALTO NIVEL

Lenguajes de propósito general:



3.1.2. LENGUAJES DE MEDIO NIVEL.


Se trata de un término no aceptado por todos, pero que seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y a la vez realizar operaciones de alto nivel. Ejemplo:/*Lenguaje C*/ /*Declaración de las funciones estandars de entrada y salida*/#include int main(int argc, char **argv){ char *p; /*creamos un puntero a un byte*/ if(argc == 1){ printf("\nIngrese un argumento al programa\n");/*imprimimos el texto*/ return 1; } p = 0x30000 /*el puntero apunta a 0x30000 */ *p = argv[1][0] /*el primer caracter del primer argumento lo copiamos a la posición 0x30000 */ return 0;}
El ejemplo es muy simple y muestra a los punteros de C, éstos no son muy utilizados en lenguajes de alto nivel, pero en C sí.

3.1.3. LENGUAJE DE BAJO NIVEL.
Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. Es el tipo de lenguaje que cualquier computadora es capaz de entender. Se dice que los programas escritos en forma de ceros y unos están en lenguaje de máquina, porque esa es la versión del programa que la computadora realmente lee y sigue ejemplo: Lenguaje ensamblador, sintaxis Intel para procesadores x86 mov eax,1 ;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebx int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal) Ejecutar ese código en sistemas UNIX o basados en él equivale a una funcion exit(0) (terminar el programa retornando el valor 0)
3.1.2. DENTRO DE ESTE GRUPO SE ENCUENTRAN:
1. EL LENGUAJE MAQUINA: Este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Consiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho más rápido que los lenguajes de alto nivel. La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible. (baja portabilidad). Para los programadores es posible escribir programas directamente en lenguaje de máquina, pero las instrucciones son difíciles de recordar y los programas resultan largos y laboriosos de escribir y también de corregir y depurar.


VENTAJAS:
· Velocidad en ejecución
· No necesita traducción (compilador/interprete)

DESVENTAJAS:
Dificultad y lentitud en la codificación
Es poco fiable
Gran dificultad para corregir posibles errores
2. EL LENGUAJE ENSAMBLADOR: es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, añadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.
Algunas características que lo diferencian del lenguaje de máquina son que permite el uso de comentarios entre las líneas de instrucciones; en lugar de direcciones binarias usa identificadores como total, x, y, etc. Y los códigos de operación se representan por mnemotécnica siempre tienen la desventaja de repertorio reducido de instrucciones, rígido formato para las instrucciones, baja portabilidad y fuerte dependencia del hardware. Tiene la ventaja del uso óptimo de los recursos hardware, permitiendo la obtención de un código muy eficiente. Ejemplo de algunos códigos mnemónicos son: STO para guardar un dato, LOA para cargar algo en el acumulador, ADD para adicionar un dato, INP para leer un dato, STO para guardar información, MOV para mover un dato y ponerlo en un registro, END para terminar el programa, etc. Con la tercera generación avanzamos a los lenguajes de alto nivel, muchos de los cuales se consideran exportables. Esto es, pueden correr en más de un tipo de computadoras, se le puede exportar de una máquina a otra.
VENTAJAS:
Mayor facilidad de codificación
Velocidad de cálculo
DESVENTAJAS:
Dependencia de la máquina
· Es distinto Ensamblador de PC a Ensamblador de Apple Macintosh



BACTERIA DEL MOUSE Y TECLADO

CAPÍTULO I

1.1. CONCEPTO DE LA BACTERIA DEL MOUSE Y TECLADO:

Ø Muchos teclados de computadores pueden reunir más bacterias que el asiento de un sanitario (WC).

Ø Los investigadores analizaron treinta teclados en las oficinas de la propia revista y descubrieron bacterias capaces de causar desde diarrea hasta intoxicaciones por alimentos.

Ø El motivo de la presencia de estas bacterias en el teclado se debe a razones más que obvias. Las migas que se caen cuando uno come algo mientras esta usando la computadora.

Ø El teclado de una computadora convencional puede almacenar hasta 33 000 bacterias por centímetro cuadrado, una cifra mucho mayor que la albergada por otros sitios considerados tradicionalmente más insalubres, como los inodoros; e incluso puede contener gérmenes tan peligrosos como los resistentes a variados antibióticos.

Ø Un nuevo estudio halla que los teclados de las computadores en hospitales o consultorios médicos muy ocupados están plagados de bacterias verdaderas, incluso bacterias potencialmente peligrosas que podrían transmitirse a los pacientes a través de las manos de los médicos y de otros miembros del personal que usan las computadoras.

Ø Los médicos, enfermeras y otros profesionales de la atención médica usan computadoras para un número de tareas mientras examinan a los pacientes, tales como visualización de los resultados de las pruebas y rayos X, o para ordenar pruebas de laboratorio.

Ø Hallaron que cada teclado estaba infectado con al menos dos tipos de bacterias. Todos los teclados resultaron positivos para el estafilococo coagulasa negativa (ECN), una causa principal de infecciones del torrente sanguíneo en pacientes hospitalizados. Otros trece tipos de bacterias fueron encontrados en los teclados.


1.2. ENFERMEDADES ACAUSA DEL TECLADO:

las bacterias del mouse y del teclado puede ser muy peligroso y que puede ocasionar la muerte cuando esta avanzado la enfermedad. Los hombres son los que generan la bacteria y los propietarios no actúan para evitar el contagio de la bacteria.
En la investigación los científicos hay hallado las enfermedades que se ocasionan son:
ü Peligroso para la Potencia de saludl.
ü Gastroenteritis.
ü Infecciones a la vía urinaria.
ü Intoxicaciones-
ü Estafilococo áureo.
ü Distintos tipos de infecciones e interobacterianas.


1.3. COMO LIMPIAR Y EVITAR EL CONTAGIO D EL MOUSE Y EL TECLADO:
El mouse y el teclado se debe mantenerse limpio, los científicos y los doctores recomiendan que se deben limpiar todos los días el mouse y el teclado para evitar las enfermedades.
Los mouse y los teclados del internet especialmente son los están llego de bacteria ya que todas las personas a diario van infectarlo.
La forma correcta de limpiar el mouse y el teclado es de siguiente forma:

Ø Sacudir bien el teclado.
Ø Lavar el mouse y el teclado con un trapo enfajado con legía.
Ø Tener escobilla especial para limpiar el teclado.
Ø Evitar el consumo de alimentos al estar en la computadora.
Ø Lavarse la mano antes de agarrar el mouse y el teclado.
Ø No vender golosinas en las cabinas del internet.
Ø Pedir que se limpie los teclados y los mouse.




INTRODUCCION
Una computadora es una máquina que solo comprende las instrucciones que se le den en un determinado formato. Cada máquina reconoce y ejecuta un número de instrucciones diferentes que se agrupan en los distintos lenguajes de programación.
Un lenguaje de programación es un conjunto limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar una computadora. A pesar de que en este trabajo parte de la división de lenguajes de programación en imperativos y declarativos (los cuales a su vez se dividen en numerosos subgrupos), la clasificación más común y básica que suele hacerse de los lenguajes de programación es la que los divide en lenguajes de bajo y de alto nivel. Los lenguajes de programación de bajo nivel fueron los primeros que surgieron y se llaman así porque están directamente relacionados con el hardware del computador, es decir, el usuario introduce una serie de códigos numéricos que la máquina va a interpretar como instrucciones. Para usar este lenguaje, el programador tenía que conocer el funcionamiento de la máquina al más bajo nivel y los errores de programación eran muy frecuentes.
Los lenguajes de alto nivel surgieron con posterioridad con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina, facilitando la labor a los programadores. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: facilitar la vida al programador,
aumentando la productividad. Estos lenguajes usan un número reducido de instrucciones (normalmente en inglés) que siguen unas estrictas reglas gramaticales que se conocen como sintaxis del lenguaje. Pero aunque el programador de esta forma se distancie del hardware del computador, este sigue trabajando en lenguaje máquina. Por ello se hace necesaria una traducción a una secuencia de instrucciones interpretables por el computador. Esta labor es llevada a cabo por los compiladores y los intérpretes.El compilador es un programa que se encarga de la traducción global del programa realizado por el usuario. Esta operación recibe el nombre de compilación. El programa es traducido completamente antes de que se ejecute, por lo que la ejecución se realiza en un periodo muy breve. El intérprete por el contrario lleva a cabo una traducción inmediata en el momento de la ejecución, es decir, irá ejecutando las instrucciones una a una haciendo que el proceso requiera un periodo de tiempo sensiblemente mayor del que necesitaría un compilador. Los intérpretes son usados para traducir programas de alta dificultad de implementación, en estos casos, las órdenes a traducir son de tal complejidad que no merece la pena crear un compilador ya que este también tendría que ser de una complejidad por encima de lo normal.