sábado, 30 de marzo de 2013

tipos de lenguajes computacionales



Tipos de Lenguajes de Programación 






1.2. LENGUAJES DE MÁQUINA
El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos) y es el único que "entienden" directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a la computadoracuál es la función que va a realizar. Todas las computadoras tienen un código de operación para cada una de sus funciones. La segunda parte de la instrucción es eloperando, que indica a la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular; el número de operandos de una instrucción varía en las distintas computadoras. En una computadora de operando único, el equivalente binario de "SUMAR 0814" podría hacer que se sume el valor que se encuentra en la localidad de almacenamiento o dirección 0814 al valor que se encuentra en la unidad aritmética lógica. En una máquina de dos operandos, la representación binaria de "SUMAR 0814 8672" podría hacer que se sume el valor que está en la localidad 8672 al valor que está en la dirección 0814. El formato de operando único es popular en las microcomputadoras más pequeñas; la estructura de dos operandos se encuentra en casi todas las demás máquinas.
Según los estándares actuales, las primeras computadoras eran poco tolerantes. Los programadores tenían que traducir las instrucciones de manera directa a la forma de lenguaje de máquina que comprendían las computadoras. Por ejemplo, un programador que escribiera la instrucción "SUMAR 0814" para una de las primeras máquinas IBM hubiera escrito:
000100000000000000000000000010111000
Además de recordar las docenas de códigos numéricos para los comandos del conjunto de instrucciones de la máquina, el programador tenía que conocer las posiciones donde se almacenan los datos y las instrucciones. La codificación inicial muchas veces requería meses, por lo que era costosa y era frecuente que originara errores. Revisar las instrucciones para localizar errores era casi tan tedioso como escribirlas por primera vez. Además, si era necesario modificar un programaposteriormente, la tarea podía llevarse meses.
1.3. LENGUAJES ENSAMBLADORES
principios de la década de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron códigos nemotécnicos para las operaciones y direccionessimbólicas. La palabra nemotécnico se refiere a una ayuda para la memorización. Uno de los primeros pasos para mejorar el proceso de preparación de programasfue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticos, que son los códigos nemotécnicos. Todas las computadoras actuales tienen códigos nemotécnicos aunque, naturalmente, los símbolos que se usan varían en las diferentes marcas y modelos. La computadora sigue utilizando el lenguaje de máquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en lenguaje de máquina.
Este procedimiento preparó avances posteriores. Si la computadora era capaz de traducir símbolos convenientes en operaciones básicas, ¿por qué no hacer también que realizara otras funciones rutinarias de codificación, como la asignación de direcciones de almacenamiento a los datos? La técnica de direccionamiento simbólicopermite expresar una dirección no en términos de su localización numérica absoluta, sino en términos de símbolos convenientes para el programador.
Durante las primeras etapas del direccionamiento simbólico, el programador asigna un nombre simbólico y una dirección real a un dato. Por ejemplo, el programador podría asignar el valor total de mercancía adquirida durante un mes por un cliente de una tienda de departamentos a la dirección 0063, y darle el nombre simbólico TOTAL. Se podría asignar el valor de la mercancía devuelta sin usar durante el mes a la dirección 2047 y dársele el nombre simbólico CRÉDITO. Así, durante el resto del programa, el programador se referirá a los nombres simbólicos, más que a las direcciones, cuando fuera preciso procesar estos datos. Por ejemplo, se podría escribir la instrucción "S CRÉDITO TOTAL" para restar el valor de las mercancías devueltas del importa total de compras para obtener el importe de lafactura mensual del cliente. A continuación, el programa ensamblador traduciría la instrucción simbólica a esta cadena de bits:
Más adelante se hizo otra mejora. Se dejó a la computadora la tarea de asignar y recordar las direcciones de las instrucciones. Lo único que tenía que hacer el programador era indicar a la computadora la dirección de la primera instrucción, y el programa ensamblador se encargaba de almacenar, de manera automática, todas las demás en forma secuencial a partir de ese punto. Así, si se agregaba más tarde otra instrucción al programa, no era necesario modificar las direcciones de todas las instrucciones que seguían al punto de inserción (como tendría que hacerse en el caso de programas escritos en lenguaje de máquina). En vez de ello, el procesadorajustaba automáticamente las localidades de memoria la próxima vez que se ejecutaba el programa.
En la actualidad, los programadores no asignan números de dirección reales a los datos simbólicos, simplemente especifican dónde quieren que se coloque la primera localidad del programa, y el programa ensamblador se encarga de lo demás: asigna localidades tanto para las instrucciones como para los datos.
Estos programas de ensamble, o ensamblador, también permite a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código de máquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Después de que el ensamblador convierte el programa fuente en código de máquina a éste se le denomina programa objeto. Para los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en códigos de lenguajes de máquina, pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas.
Los lenguajes ensambladores tienen ventajas sobre los lenguajes de máquina. Ahorran tiempo y requieren menos atención a detalles. Se incurren en menos errores y los que se cometen son más fáciles de localizar. Además, los programas en lenguaje ensamblador son más fáciles de modificar que los programas en lenguaje de máquina. Pero existen limitaciones. La codificación en lenguaje ensamblador es todavía un proceso lento. Una desventaja importante de estos lenguajes es que tienen una orientación a la máquina. Es decir, están diseñados para la marca y modelo específico de procesador que se utiliza, y es probable que, para una máquina diferente, se tengan que volver a codificar los programas.
1.4. LENGUAJES DE ALTO NIVEL
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, una sola 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. Así, el programador no se tenía que ocupar de escribir una instrucción por cada operación de máquina realizada.
El desarrollo de las técnicas nemotécnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo están orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseñado varios lenguajes para procesar problemas científico-matemático, asimismo han aparecido otros lenguajes que hacen hincapié en las aplicaciones de proceso de archivos.
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. Otras ventajas de los lenguajes de alto nivel son:
  • 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.

2. LENGUAJES COMPILADOS

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

3. LENGUAJES INTERPRETADOS

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

4. LENGUAJES DE PROGRAMACIÓN DECLARATIVOS

Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL.
La programación declarativa es una forma de programación que implica la descripción de un problema dado en lugar de proveer una solución para dicho problema, dejando la interpretación de los pasos específicos para llegar a dicha solución a un intérprete no especificado. La programación declarativa adopta, por lo tanto, un enfoque diferente al de la programación imperativa tradicional.
En otras palabras, la programación declarativa provee el "qué", pero deja el "cómo" liberado a la implementación particular del intérprete. Por lo tanto se puede ver que la programación declarativa tiene dos fases bien diferenciadas, la declaración y la interpretación.
Es importante señalar que a pesar de hacer referencia a intérprete, no hay que limitarse a "lenguajes interpretados" en el sentido habitual del término, sino que también se puede estar trabajando con "lenguajes compilados".
4.1. CARACTERÍSTICAS DE LOS LENGUAJES DE PROGRAMACIÓN DECLARATIVOS
  • Los lenguajes declarativos están orientados a buscar la solución del problema, sin preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse en la lógica del algoritmo, más que en el control de la secuencia.
  • Los programas están formados por un conjunto de definiciones o ecuaciones, las cuales describen lo que debe ser calculado, no en sí la forma de hacerlo.
  • Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución del programa, lo cual implica que no puede existir asignación destructiva. Debido a esto, cobra especial importancia el uso del anidamiento y la recursividad.
  • Las listas representan la estructura fundamental de datos.
  • El orden de la ejecución no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el cálculode otros y con esto se puede afirmar que cualquier secuencia de ejecución deberá conducir al mismo resultado.
  • Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se pueden tratar como argumentos de otras definiciones.
  • El control de la ejecución no es responsabilidad del programador.
4.2. DESVENTAJAS DE LA PROGRAMACIÓN DECLARATIVA
La principal desventaja de la programación declarativa es que no puede resolver cualquier problema dado, sino que está restringida al subconjunto de problemas para los que el intérprete o compilador fue diseñado.
Otra desventaja de la programación declarativa está relacionada con la eficiencia. Dado que es necesaria una fase de interpretación extra, en la cual se deben evaluar todas las consecuencias de todas las declaraciones realizadas, el proceso es relativamente más lento que en la programación imperativa, en que los cambios de estadodel sistema están dados por instrucciones particulares y no por un conjunto de condiciones arbitrariamente grande.
4.3. VENTAJAS DE LA PROGRAMACIÓN DECLARATIVA
A pesar de lo anterior existen algunas ventajas en el uso de la programación declarativa. Entre las ventajas se destaca que la solución de un problema se puede realizar con un nivel de abstracción considerablemente alto, sin entrar en detalles de implementación irrelevantes, lo que hace a las soluciones más fácil de entender por las personas. La resolución de problemas complejos es resuelta por el intérprete a partir de la declaración de las condiciones dadas.
La programación declarativa es muy usada en la resolución de problemas relacionados con inteligencia artificial, bases de datos, configuración, y comunicación entreprocesos; sin embargo, ningún leguaje declarativo se aproxima en popularidad a los lenguajes imperativos.
4.4. EJEMPLOS DE LENGUAJES DECLARATIVOS
Algunos lenguajes declarativos que se pueden mencionar son:
  • PROLOG
  • SQL
  • HTML
  • WSDL (Web Services Description Language)
  • XML Stylesheet Language for Transformation
4.5. PROGRAMACIÓN LÓGICA
La idea fundamental de la programación lógica consiste en emplear la lógica como lenguaje de programación.
La lógica no es imperativa porque no sirve para indicar cómo resolver un problema (órdenes). La lógica es declarativa porque sirve para especificar qué problema resolver (condiciones).
En la programación lógica, se especifican las condiciones que satisfacen las soluciones, se deducen las soluciones a partir de las condiciones y el énfasis de todo está en qué problema resolver. El problema se describe especificando qué caracteriza a sus posibles soluciones.
La programación lógica, junto con la funcional, forma parte de lo que se conoce como programación declarativa. En los lenguajes tradicionales, la programación consiste en indicar cómo resolver un problema mediante sentencias; en la programación lógica, se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no cómo, sino qué hacer. Se establece entonces que la idea esencial de la programación lógica es: algoritmos = lógica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lógica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que actúa sobre aquél.
Al hacer un recorrido por la programación lógica, aparece como uno de sus lenguajes más representativos, Prolog, que es un clásico de la inteligencia artificial y que se aplica de múltiples formas en el desarrollo de software comercial.
4.6. PROGRAMACIÓN FUNCIONAL
La programación funcional es un paradigma de programación declarativa basado en la utilización de funciones matemáticas. El objetivo de la programación funcional es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa.
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo (pues la programación funcional es declarativa), sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como latransparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.
Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al permitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje híbrido.
4.7. PROGRAMACIÓN ORIENTADA A BASES DE DATOS
Las bases de datos son programas que administran información y hacen más ordenada la información, aparte de hacer la fácil de buscar y por supuesto de encontrar.
Las características de las bases de datos pueden ser ventajosas o desventajosas: pueden ayudar a almacenar, organizar, recuperar, comunicar y manejar información en formas que serían imposibles sin las computadoras, pero también afecta de alguna manera ya que existen enormes cantidades de información en bases de datos de las que no se tiene control del acceso.
Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de información; permiten la recuperación rápida y flexible de información, con ellas se puede organizar y reorganizar la información, así como imprimirla o distribuirla en formas diversas.
Es claro que los lenguajes orientados a bases de datos son declarativos y no imperativos, pues el problema es "qué" se quiere hacer o "qué" se necesita buscar y encontrar en la base de datos, y no se enfatiza el "cómo".
Una base de datos también se puede definir como un banco de datos o conjunto de datos que pertenecen al mismo contexto, almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.
En la actualidad, y gracias al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos tienen formato electrónico, que ofrece un amplio rango de soluciones al problema de almacenar datos.
Los sistemas gestores de bases de datos (SGBD) permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada.
4.7.1. TIPOS DE BASES DE DATOS
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación, que puede ser según la variabilidad de los datos almacenados o según el contenido.
4.7.1.1 CLASIFICACIÓN DE BASES DE DATOS SEGÚN LA VARIABILIDAD DE LOS DATOS ALMACENADOS
Esta clasificación depende de cómo los datos cambian o varían dentro de la base de datos, o si se mantienen estáticos sin sufrir modificaciones o cambios. Dentro de esta clasificación se tiene lo siguiente:
  • BASES DE DATOS ESTÁTICAS: Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.
  • BASES DE DATOS DINÁMICAS: Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc.
4.7.1.2. CLASIFICACIÓN DE BASES DE DATOS SEGÚN CONTENIDO
Esta clasificación basa su enfoque en el contenido o lo que almacena la base de datos, de esta manera:
  • BASES DE DATOS BIBLIOGRÁFICAS: Solo contienen un "representante" de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque sino se estaría en presencia de una base de datos a texto completo (o defuentes primarias). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras.
  • BASES DE DATOS DE TEXTO COMPLETO: Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.
  • DIRECTORIOS: Un ejemplo son las guías telefónicas en formato electrónico.
  • BANCO DE IMÁGENES, AUDIO, MULTIMEDIA, ETC.
4.7.2. MODELOS DE BASES DE DATOS
Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos.
Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de losmétodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos son:
  • BASES DE DATOS JERÁRQUICAS: Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.
  • BASES DE DATOS DE RED: Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.
  • BASES DE DATOS RELACIONAL: Éste es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica comoconjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestiónde bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización (reglas fundamentales para el buen funcionamiento de una base de datos relacional) de una base de datos. Durante los años '80 (1980-1989) la aparición de dBASE produjo una revoluciónen los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión. La normalización de una base de datos relacional consiste en las siguientes reglas:
  1. Primera Forma Normal (1FN): se eliminan los grupos repetitivos. Los atributos han de ser atómicos. Gráficamente las celdas de la tabla contienen solo un valor, en cada uno de los atributos sólo se puede incluir un dato, aunque sea compuesto, pero no se puede incluir una lista de datos. Se trata de que cada atributo guarde la menor cantidad de información posible. Para eliminar los grupos repetitivos se pone cada uno de ellos en una tabla aparte, esa nueva tabla hereda la clave primaria de la relación en la que se encontraban, se crea una clave foránea para la nueva tabla.
  2. Segunda Forma Normal (2FN): dependencia completa. Está en 2FN si está en 1FN y si sus atributos no principales dependen de forma completa de la clave principal. Toda relación que tenga como clave sólo un atributo está en 2FN.
  3. Tercera Forma Normal (3FN): dependencia transitiva. Está en segunda forma normal y todo atributo no primo es implicado por la clave primaria en una secuencia no transitiva.
  4. Forma Normal de Boyce-Codd: una tabla está en FNBC, sí y sólo sí las únicas dependencias funcionales elementales son aquellas en las que la Clave primaria determina un atributo.
  5. Cuarta Forma Normal (4FN): está en forma normal de Boyce-Codd y se eliminan las dependencias multivaluadas y se generan todas las relaciones externas con otras tablas u otras bases de datos.
  6. Quinta Forma Normal (5FN): está en cuarta forma normal y toda dependencia-join viene implicada por claves candidatas.
  • BASES DE DATOS ORIENTADAS A OBJETOS: este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: encapsulación (propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos), herencia (propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases ypolimorfismo (propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos.
  • BASES DE DATOS DOCUMENTALES: permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes.
  • BASE DE DATOS DEDUCTIVAS: un sistema de base de datos deductivas, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basan en lógica matemática.

5. LENGUAJES DE PROGRAMACIÓN IMPERATIVOS

En ciencias de la computación se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo:
Paso 1, solicitar número.
Paso 2, multiplicar número por dos.
Paso 3, imprimir resultado de la operación.
Paso 4, etc,
El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc.
Dentro de la programación imperativa, se tiene un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
Los lenguajes imperativos se basan en comandos u órdenes que se le dan a la computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas partes de la memoria.
La ejecución de estos comandos se realiza, en la mayor parte de ellos, secuencialmente, es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente.
Según el dominio, o mejor dicho con el propósito que se utiliza el programa, se puede hablar de lenguajes de dominio específico y de dominio general.
5.1. LENGUAJES IMPERATIVOS PROCEDURALES
En los lenguajes tradicionales o procedurales, es la aplicación quien controla qué porciones de código se ejecuta, y la secuencia en que este se ejecuta. La ejecución de la aplicación se inicia con la primera línea de código, y sigue una ruta predefinida a través de la aplicación, llamando procedimientos según sea necesario.
Los lenguajes procedurales están fundamentados en la utilización de variables para almacenar valores y en la realización de operaciones con los datos almacenados. Algunos ejemplos son: FORTRAN, PASCAL, C, ADA, ALGOL,…
En este tipo de lenguajes, la arquitectura consta de una secuencia de celdas, llamadas memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritméticas y booleanas, llamadas comandos. En general, un lenguaje procedural ofrece al programador conceptos que se traducen de forma natural al modelo de la máquina. El programador tiene que traducir la solución abstracta del problema a términos muy primitivos, cercanos a la máquina.
Con un lenguaje procedural el usuario (normalmente será un programador) especifica qué datos se necesitan y cómo obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la información requerida. Estos lenguajes acceden a un registro, lo procesan y basándose en los resultados obtenidos, acceden a otro registro, que también deben procesar. Así se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un lenguaje procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual.
5.2. ALGUNOS LENGUAJES IMPERATIVOS
Algunos lenguajes de programación imperativos que se pueden mencionar son:
  • BASIC
  • C
  • C++
  • Java
  • C#
  • PHP
  • Perl

6. DIFERENCIA ENTRE LENGUAJES DECLARATIVOS E IMPERATIVOS

En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada.
Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema.

7. LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS

En la Programación Orientada a Objetos (POO u OOP según siglas en inglés) se definen los programas en términos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). Laprogramación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas módulos más fáciles de escribir, mantener y reutilizar.
De esta forma, un objeto contiene toda la información, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).
Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos métodos para poder tratarlos (lo que hace que ambos conceptos están íntimamente entrelazados), el programador debe pensar indistintamente en ambos términos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los métodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen esa información por otro (llegando a una programación estructurada camuflada en un lenguaje de programación orientada a objetos).
Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y después les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y métodos y después envían mensajes a los objetos diciendo que realicen esos métodos por sí mismos.
Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "métodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un método de implementación en el que los programas están organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarquía de clases conectadas por relaciones de herencia. Este tipo de lenguajes son muy recientes en comparación a los primeros lenguajes de programación que aparecieron.
7.1. CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
La programación orientada a objetos es una nueva forma de programar que trata de encontrar la solución a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenían anteriormente. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entro ellos destacan los siguientes:
  • OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("métodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa).
  • CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Una clase es una colección de objetos similares o la implementación, declaración o definición de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener Form1, Form2, etc. Así se está creando una instancia de la clase Form.
  • MÉTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en lar propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
  • EVENTO: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.
  • MENSAJE: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
  • PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecución de algún método.
  • ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).
En comparación con un lenguaje imperativo, una "variable no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.
7.2. CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
Las características más importantes de la programación orientada a objetos son las siguientes:
  • ABSTRACCIÓN: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.
  • ENCAPSULAMIENTO: también llamado "ocultación de la información". Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos. Esta característica o propiedad permite por tanto ejecutar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.
  • POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label, etc.)
  • HERENCIA: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto pertenece a más de una clase se dice que hay herencia múltiple; esta característica no está soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos dentro de una jerarquía de clases.
7.3. PRINCIPALES DIFERENCIAS ENTRE LA PROGRAMACIÓN IMPERATIVA Y LA PROGRAMACIÓN ORIENTADA A OBJETOS
  • La programación orientada a objetos es más moderna, es una evolución de la programación imperativa plasmada en el diseño de una familia de lenguajes conceptos que existían previamente, con algunos nuevos.
  • La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones (a esta unión se la suele llamar clase).
  • La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos.
7.4. ALGUNOS LENGUAJES ORIENTADOS A OBJETOS
Entre los lenguajes orientados a objetos más importantes que se pueden mencionar, aparecen los siguientes:
  • Ada
  • C++
  • C#
  • VB.NET
  • Clarion
  • Delphi
  • Eiffel
  • Jave
  • Lexico 
  • Objective-C
  • Ocaml
  • Oz
  • PHP
  • PowerBuilder
  • Pitón
  • Ruby
  • Smalltalk

Glosario computacional



         

               Glosario computacional 





1. - Analista de sistema: Puesto o cargo de los profesionales informáticos, se trata de quien determina la problemática concreta que debe solucionar una aplicación y las líneas generales de cómo debe desarrollarse dicha aplicación para resolver el problema. Es una persona imprescindible en cualquier departamento de informática.
2. - Applet: Es una aplicación escrita y compilada en java que se difunden a través de la red para ejecutarse en el visualizador cliente.
3. - Árbol de directorio: La estructura de directorios utilizada en los ordenadores personales es arborescente; esto es, existen directorios y subdirectorios que, a modo de ramas cada vez más delgadas, van surgiendo de un tronco inicial.
4. - Archivo (fichero): Son documentos computacionales que contienen información (al contrario de instrucciones), como texto, imágenes, sonido, video, etc. Ej: una carta escrita en un procesador de texto.
5. - Archivo volátil: Archivo temporal, se usan sólo para almacenar datos temporalmente.
6. -ARPAnet: Red de computadores creada en EE.UU. con fines militares, a partir de la cual evolucionó Internet.

7. - Attachment: Archivo computacional que se envía adjuntos a un mensaje de correo electrónico. Puede ser un texto, un gráfico, un sonido o un programa.
8. - Banco de datos: Es un depósito electrónico de datos.
9. - Base de datos (Database): Estructura de software que colecciona información muy variada de diferentes personas y cosas (es decir, de una realidad determinada), cada una de las cuales tiene algo en común o campos comunes con todos o con algunos. Se diseñó con la finalidad de solucionar y agilizar la administración de los datos que se almacenan en la memoria del computador.
10. - BBS (Bulletin Board System): Es como un diario mural electrónico que permite "bajar" o "subir" información a un computador central, a la que pueden acceder otros usuarios del mismo sistema. Es decir, a través de un software, el computador sirve como fuente de información y mensajería.
11. - Bit: Es la sigla del inglés Binary Digit (dígito binario) y representa la unidad mínima de información posible, ya que equivale a un golpe de corriente con un valor que puede ser uno (que equivale a encendido) o bien, cero (apagado).
12. - Bit, BPS (Bits per second): Velocidad de transferencia de los modems. Razón a la cual pueden transmitirse datos por una red. La cantidad de bits por segundo puede diferir de la razón de baudios puesto que es posible codificar más de un bit en un solo baudio.
13. - Bitnet (Because It's Time NETwork; Porque es tiempo de red): Red académica de ordenadores que sólo hace correo electrónico y FTP, basada en un protocolo diferente a Internet. Actualmente está interconectada a Internet por medio de gateways o puertas de acceso.
14. - Browser: Programa que se usa para navegar por el Web, es algo así como un paginador que permite pasar páginas. Permite visualizar documentos WWW.
15. -Buffer: Espacio de memoria que se utiliza como regulador y sistema de almacenamiento intermedio entre dispositivos de un sistema informático. Así, por ejemplo, las impresoras suelen contar con un buffer donde se almacena temporalmente la información a imprimir, liberando a la memoria del ordenador de dichos datos, y permitiendo que el usuario pueda seguir trabajando mientras se imprimen los datos. También existen buffers entre diferentes dispositivos internos del ordenador.
16. - Byte: Unidad de información que corresponde a 8 bits, un caracter que puede ser un número un símbolo o una letra.
17. - Cable coaxial: Cable usado por las redes de cómputo al igual que en la televisión por cable. El nombre se debe a su estructura: un blindaje metálico rodea a un alambre central. El blindaje protege la señal del alambre interior contra interferencias eléctricas.
18. - CD-ROM: Sigla que significa Compact Disc-Read Only Memory o Disco Compacto-Memoria Sólo de Lectura (no pueden ser grabados). Contienen información digital, vale decir, datos que pueden ser representado por bits: combinaciones de unos y ceros. Así, a nivel microscópico, se puede encontrar en los surcos del CD pequeñas muescas y sectores planos, para indicar esos unos y ceros, que son leídos mediante un rayo láser, que va recorriendo la superficie del disco mientras éste va girando.
19. - CGI (Common Getaway Interface): Interface Común de Pasarela. Interface de intercambio de datos estándar en WWW a través del cual se organiza el envío de recepción de datos entre visualizadores y programas residentes en servidores WWW.
20. - Chat: Conversación en tiempo real a través de Internet. Si bien se aplica preferentemente a conversaciones a través de mensajes escritos, también existen Chat que incluyen intercambio de sonidos (voz) e imagen (video).
21. - Ciberespacio: El auge de las comunicaciones entre ordenadores --cuyo máximo exponente es la macrored mundial Internet- ha creado un nuevo espacio virtual, poblado por millones de datos, en el que se puede «navegar» infinitamente en busca de información. Se trata, en una contracción de cibernética y espacio, del ciberespacio.
22. - Circuito integrado: Circuito electrónico que integra todos los elementos pasivos y activos necesarios para realizar una función.
23. - Código de barra (Bar code): Código impreso utilizado para reconocimiento mediante un lector óptico. Sistema de signos organizados en barras, que permite acceder a información específica sobre los productos que lo portan.
24. - Compilador: Programa traductor que genera lenguaje máquina a partir de un lenguaje de programación de alto nivel basado en el lenguaje humano.
25. - Computador: Dispositivo electrónico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información.
26. - Computador análogo: Computador que trabaja con señales visuales o acústicas que se convierten en una tensión eléctrica variable, que se puede reproducir directamente a través de altavoces o almacenar en una cinta o disco. Este tipo de señales son mucho más vulnerables a los ruidos y las interferencias que las señales digitales.
27. - Computador digital: Ordenador que utiliza, contiene y manipula información convertida al código binario, el lenguaje de números (ceros y unos) o lenguaje de máquina que emplean los ordenadores para almacenar y manipular los datos.
28. - Constante: Estructura de programación que contiene datos. Puede contener números o caracteres alfanuméricos y el programador le asigna un nombre único. Mantiene los datos invariablemente, es decir, no cambia ni dentro de la realización ni dentro de la ejecución de un programa.
29. - Contador: En programación: estructura de programación que contiene datos alfanuméricos y el programador le asigna un nombre único, se usa generalmente para almacenar la cantidad de veces que se ejecute una acción o ciclo dentro de le ejecución de un programa. En internet: dispositivo que cuenta el número de visitas o de impactos que ha recibido un sitio web. Suele aparecer en la página inicial del sitio.
30. - Cookie (galleta): Cuando se visita una página Web, es posible recibir una Cookie. Este es el nombre que se da a un pequeño archivo de texto, que queda almacenado en el disco duro del ordenador. Este archivo sirve para identificar al usuario cuando se conecta de nuevo a dicha página Web.
31. - Darpa (Defense Advanced Research Projects Agency): Esta agencia del Gobierno norteamericano creó la red ARPANET, predecesora de la red Internet.
32. - Dato: Unidad mínima de información, sin sentido en sí misma, pero que adquiere significado en conjunción con otras precedentes de la aplicación que las creó.
33. - Diagrama de bloque: Es un diagrama generalizado de componentes, interconexiones y funciones, por lo general están constituidos por figuras geométricas sencillas casi siempre rectángulos, etiquetados para representar los diferentes componentes del harware y del software, así como sus interconexiones.
34. - Diagrama de flujo: Representación gráfica, mediante la utilización de signos convencionales, del proceso que sigue la información en un programa determinado. Se utilizan habitualmente en la fase de desarrollo de aplicaciones por los programadores.
35. - Dimm de memoria: Cuyo significado es Dual in line memory module. Memoria RAM de 64 Bits pensada para Pentium II, y que es bastante sencillo suponer, dispone de una mayor velocidad de transferencia de datos.
36. - Directorio: Conjunto de ficheros agrupados bajo un mismo nombre, lo que facilita su utilización y administración.
37. - Disco magnético: Dispositivo de almacenamiento de datos mediante tecnología magnética que consta de un disco en el que se graba la información, para recuperarla posteriormente gracias a una o varias cabezas lectoras-grabadoras. Los disquettes y los discos duros son discos magnéticos.
38. - Disquette: Unidad de almacenamiento simple, consistente en un disco de "mylar" recubierto por partículas de óxido ferroso, que puede ser magnetizada y de esa forma representar información binaria. Los disquettes pueden ser de Doble o Baja Densidad (indica que en el disquete se puede grabar hasta 720 Kb en ambos tipos de disquetes. En el caso de Macintosh, son 800 Kb) o bien de Alta Densidad (permite grabar hasta 1.2 Mb en el caso de los 5.25 pulgadas o 1.44 Mb, en los de 3.5 pulgadas).
39. - Domain: Dominio, campo. La palabra domain empieza a hacerse popular entre los cibernautas, ya que hace referencia a una parte del nombre jerárquico con que se conoce cada entidad conectada a Internet. Sintácticamente, un dominio (domain) Internet se compone de una secuencia de etiquetas o nombres separados por puntos.
40. - Download: Es la operación de “bajar” o descargar desde un sitio web (ordenador remoto) determinada información hasta nuestro PC.
41. - Email: Permite enviar y recibir mensajes desde cualquier lugar del mundo. Para eso se necesita de una casilla o dirección electrónica en la que es posible recibir cartas. También es factible anexar documentos, planillas de cálculo, sonido e imágenes.
42. - Escáner: Periférico de entrada de datos (texto impreso e imágenes). Su función es capturar estos datos y transmitirlos al ordenador para su posterior manipulación. Los escáneres pueden trabajar con texto impreso, fotografías y dibujos. La palabra correspondiente en español es rastreador o digitalizador.
43. - Ethernet: Red de área local (LAN) desarrollada por Xerox, Digital e Intel. Es el método de acceso LAN que más se utiliza (seguido por Token Ring). Ethernet es una LAN de medios compartidos. Todos los mensajes se diseminan a todos los nodos en el segmento de red. Ethernet conecta hasta 1,024 nodos a 10 Mbits por segundo sobre un par trenzado, un cable coaxial y una fibra óptica.
44. - Excite: Motor o sistema de búsqueda de documentos a través de Internet.
45. - FAQ (Frequently Asked Questions o Preguntas frecuentes): Documentos que contienen respuestas a dudas frecuentes que suelen plantear los usuarios de Internet. Por ejemplo, los grupos de discusión (newsgroups) acostumbran tener un FAQ entre sus mensajes. Esta sigla es de uso común en Internet y permite a los usuarios "novicios" encontrar respuesta a sus dudas.
46. - FidoNET: Protocolo de correo electrónico (email) que se originó de Fido BBS creado por Tom Jennings en 1984. Se encuentran en uso más de 10,000 nodos FidoNet. Los usuarios deben tener sus redes activas para una hora universal en la mañana temprano, y el software debe adherirse a la especificación FTSC-001. El formato de dirección FidoNet es zona:red/nodo local; por ejemplo, la dirección de Boardwatch Magazine es 1:104/555.
47. - Finger: Programa que pregunta a un ordenador remoto quién está conectado allí en ese momento y qué está haciendo.
48. - Forward: Permite reenviar un mensaje de correo electrónico recibido, puede ser a la misma persona que lo envió o a otra dirección distinta.
49. - Frames: Marco, cuadro. En gráficos por computador, contenido de una pantalla de datos o su espacio de almacenamiento equivalente. En comunicaciones, bloque fijo de datos transmitidos como una sola entidad. También llamado packet (paquete).
50. - Freeware: Software que se baja de Internet y que se puede copiar gratis en el PC.
51. - FTP (File Transfer Protocol): Herramienta de Internet que permite conectarse a un servidor de una empresa o institución para "bajar" un documento que se considere relevante.
52. - GigaByte: Unidad de información que corresponde a 1.024 megabytes.
53. - GMT (Greenwich Mean Time): Hora de Referencia de Greenwich.
54. - Graficador: Programa que permite crear y manipular imágenes de ilustraciones en el computador.
55. - Hardware: Todos aquellos componentes físicos de un computador, todo lo visible y tangible. Por extensión, se aplica también a otros componentes electrónicos que no necesariamente forman parte de un computador.
56. - Home pages: En el web se refiere a las páginas de inicio que enlazan con otras páginas relacionadas.
57. - HTML (Hypertext Markup Language): Lenguaje en que se escriben los documentos que se utilizan en Internet.

58. - HTTP (Hypertext Transfer Protocol): Protocolo de comunicación entre clientes y servidores Web.
59. - Hub (concentrador): Dispositivo que recibe varias líneas de comunicación de la red y las conecta entre sí y a otro sector de la red.
60. - ICQ: es un juego de palabras, que toma su origen en la pronunciación en ingles de estas tres letras. Su pronunciación literal es aproximadamente "ai si qiu" que suena prácticamente igual que "I seek you" en español "Te busco", y eso es precisamente lo que hace el programa, busca en Internet a la gente que se tiene registrada y permite ponerte en contacto con ellas.
61. - Impresora: Periférico del ordenador diseñado para copiar en un soporte «duro» (papel, acetato, etc.) texto e imágenes en color o blanco y negro.
62. - Impresora inyección de tinta: Impresora que funciona mediante una serie de inyectores que proyectan gotas diminutas de tinta, de manera que la acumulación de gotas permite la formación de letras, imágenes, etc. Esta clase de impresoras se ha impuesto por ofrecer una alta calidad de impresión a un precio aceptable.
63. - Impresora matriz de punto o de impacto: Se trata de las impresoras que funcionan con un cabezal formado por varias agujas o "pines", que caen sobre una cinta móvil, de manera similar a la operación de las máquinas de escribir.
64. - Inbox (casillero de entrada): Ventana del cliente e-mail en la que se listan los mensajes recibidos.
65. - Index (índice): En computación en general es un índice en un directorio de las localidades de almacenamiento en un disco de registros, archivos, programas, etc. en la organización de dispositivos de almacenamiento de acceso aleatorio el índice contiene el nombre de la clave (identificador del registro), el nombre del archivo o programa y un apuntador, ya sea a una localidad física en el disco o a otro índice. Su función es similar al índice de un libro. En internet un índice generalmente es la página principal o de inicio donde están todos los temas que contiene el sitio para poder acceder a ellos.
66. - Información: Elemento fundamental que manejan los ordenadores en forma de datos binarios.
67. - Informática: Ciencia del tratamiento automático y racional de la información, considerada como soporte de los conocimientos y comunicaciones, a través de los ordenadores.
68. - Inteligencia artificial: Ciencia que investiga la posibilidad de que un ordenador simule el proceso de razonamiento humano. Pretende también que el ordenador sea capaz de modificar su programación en función de su experiencia y que «aprenda».
69. - Internet 2: Proyecto que ya está en marcha para mejorar internet que se trata de la posibilidad de navegar en la red a una velocidad de 622 megabits por segundo, más de 1000 veces la velocidad actual disponible.
70. - Intranet: Red de servicios similar a Internet, pero limitada a computadores de una sola red computacional. Puede tratarse de una red aislada, es decir no conectada a Internet.
71. -Java: Lenguaje desarrollado por Sun Microsystems para la elaboración de aplicaciones exportables a la red y capaces de operar sobre cualquier plataforma a través, normalmente, de visualizadores WWW. Permite crear tanto aplicaciones como pequeños programas para Internet, redes internas y cualquier otro tipo de redes distribuidas.
72. - JavaScript: Un lenguaje de comandos multiplataforma del WWW desarrollado por Netscape Communications. el código de JavaScript se inserta directamente en una página HTML.
73. - Kilobyte: Unidad de medida utilizada en informática que equivale a 1.024 bytes.
74. - Lan (Local Area Network): Red de área local. El término LAN define la conexión física y lógica de ordenadores en un entorno generalmente de oficina. Su objetivo es compartir recursos (como acceder a una misma impresora o base de datos) y permite el intercambio de ficheros entre los ordenadores que componen la red.
75. - Lápiz Óptico: Dispositivo de entrada de datos y apuntador que se compone de un aparato similar a un lápiz con una cabeza lectora con la que puede escribirse o dibujarse en la pantalla del ordenador (si ésta es sensible a estos aparatos) o en una tableta digitalizadora. En algunos casos puede funcionar sustituyendo al ratón, aunque su principal función está asociada a programas de dibujo o ilustración.
76. - Link: Enlace entre páginas en el Web. Son sectores de la página (texto o imágenes) que están vinculados a otras páginas, de manera que basta con hacer clic en ellos para "trasladarse" a otra página, que puede estar ubicada en cualquier servidor de la red.
77. - Listserv: Es el tipo más común de lista de correo en Internet. Sus orígenes están en BITNET.
78. - Login: Identificación o nombre electrónico de un usuario de correo electrónico. Equivale al nombre de la casilla (cuenta) que ese usuario tiene en el servidor de correo electrónico. Es una entrada de identificación o conexión.
79. - Logout: Salir del sistema, desconexión.
80. - Lycos: Motor o sistema de búsqueda de documentos a través de Internet.
81. - Mailbox: Cliente de correo electrónico.
82. - Mainframes: Grandes ordenadores de muchos procesadores.
83. - Megabyte: Unidad de medida utilizada en informática que equivale a 1.024 Kilobytes.
84. - Memoria Cache: Es una memoria similar a la RAM, pero que tiene la particularidad de mantener por mayor tiempo la información; por este motivo, es usada como un método de acceso a los datos más rápido que la memoria RAM. Normalmente una Tarjeta Madre cuenta con 256 Kb y el máximo en la actualidad alcanza a 512 Kb.
85. - Memoria EPROM (Erasable Programmable ROM): ROM programable y borrable. Son las más populares, y su aspecto es muy característico, en efecto se presenta como un circuito integrado normal, pero con una cubierta de cuarzo al vacío de forma que el chip pueda ser alcanzado por las radiaciones ultra-violetas. Es un chip programable y reutilizable que conserva su contenido hasta que se borra bajo luz ultravioleta. Los EPROM tienen una vida de unos cuantos cientos de circuitos de escritura.
86. - Memoria PROM (Programmable ROM): ROM programable que no se puede borrar a diferencia de la EPROM.

87. - Memoria RAM: Corresponde a la sigla del término inglés Random-Access Memory, "memoria de acceso aleatorio". Es un dispositivo donde se guardan datos en forma temporal. Esta se ocupa durante la operación de los programas y mientras más grande sea, más fácil y rápido pueden correr los programas.
88. - Memoria ROM (ROM: Read Only Memory): Contiene programas que son piezas fundamentales del sistema y que no pueden ser borrados ni por el usuario ni por la propia máquina. Es una memoria de las denominadas de acceso directo, es decir, cuyos elementos son accesibles del mismo modo en su totalidad. Es una especie de memoria inerte en la que no es posible escribir nada y que contiene el programa de puesta en marcha, escrito en lenguaje máquina, el software de base, un lenguaje, etcétera.
89. - Módem: Aparato que conecta el computador con la línea telefónica. Actúa trasformando las señales digitales del computador (bits) en tonos que son transmitidos por la línea telefónica. Igualmente, recibe los tonos que vienen por la línea telefónica y los convierte en señales digitales. Su nombre viene de la abreviación de las palabras MOdulador-DEModulador.
90. - Mouse: Ratón en inglés. Pequeño dispositivo de entrada, con uno o más botones incorporados, que se utiliza con las interfaces gráficas del usuario.
91. - MS-DOS (MicroSoft Disk Operating System): Programa que controla el funcionamiento del ordenador. Es el sistema operativo utilizado en la mayoría de los ordenadores personales (PCs) existentes. El nombre de Sistema Operativo de Disco procede de que, en su mayor parte, el DOS permite la gestión y administración del disco duro y los disquetes.
92. - Multiprogramación: Capacidad de correr (ejecutar) más de un programa de manera simultánea.
93. - Multitarea: Capacidad de posibilitar la ejecución de distintas tareas de forma simultánea.
94. - Nick (Nickname): Apodo con el cual se autodenominan las personas que se conectan a IRC o a cualquier tipo de chat.
95. - Operador: En programación se llama operador a todos los símbolos, esto es, que no son números ni letras.
96. - Operadores aritméticos: En programación son todos los símbolos que se utilizan en matemáticas, por ej: +, -, *, /, =, etc.
97. - Operadores de comparación: Símbolos que se usan para comparar valores de variables en programación, comparar dos variables equivale a decir si una es mayor que la otra, si es menor o si son iguales,etc.
98. - Operadores lógicos: Símbolos que se utilizan para concatenar (unir) sentencias, estos en el lenguaje castellano son por ej: y, o, si...entonces..., sí sólo sí, etc.

99. - Outbox (casillero de salida): Ventana del cliente e-mail en la que se listan los mensajes enviados.
100. - Padmouse: Almohadilla del ratón. Almohadilla de caucho cubierta de tela en forma cuadrada que provee una superficie plana para arrastrar el mouse (ratón).
101. - Pixel: Son los puntos que en una pantalla, componen las imágenes. Cuando la imagen es en blanco y negro, cada pixel equivale a un bit; cuando es en colores puede tener más dependiendo de la resolución que muestre en la pantalla. Esta palabra es igual en inglés y español, por una derivación del término inglés Picture Element (Elemento del Gráfico).

102. - Planilla electrónica o planilla de cálculo: Aplicación que muestra en la pantalla una serie columnas (que se distinguen por una letra) y de filas (que reciben un número), entrecruzadas. La intersección de cada una de éstas se denomina celda y se la distingue por la letra de la columna y el número de la fila. Con los datos de cada celda, se pueden efectuar operaciones aritméticas de diversa complejidad.
103. - POP (Post Office Protocol): Protocolo de Oficina de Correos. Protocolo diseñado para permitir a sistemas de usuario individual leer correo electrónico almacenado en un servidor.
104. - Procesador de texto: Dentro de las distintas posibilidades que ofrece el software de aplicación, estos programas trabajan con textos (con frecuencia incluyen gráficos) y permiten crearlos, modificarlos, imprimirlos, etc.
105. - Proceso: En informática se manejan varias definiciones que aluden a diversos elementos: puede ser simplemente una operación o conjunto combinado de operaciones con datos, o bien una secuencia de acontecimientos definida única y delimitada, que obedece a una intención operacional en condiciones predeterminadas. También se denomina proceso a una función que se está ejecutando.
106. - Programa: Redacción de un algoritmo en un lenguaje de programación. Conjunto de instrucciones ordenadas correctamente que permiten realizar una tarea o trabajo específico.
107. - Programador: Un individuo que diseña la lógica y escribe las líneas de código de un programa de computador. 
108. - Realidad Virtual: Sistema de representación de imágenes y objetos mediante computadores, que permite crear una "ilusión casi real". De esta forma, se puede decir que la Realidad Virtual aparece como un sustituto de la realidad, con el fin de apoyar actividades que saquen provecho de la simulación.

109. - Red: Es un conjunto de computadores (dos o más) que están unidos entre sí a través de elementos de comunicaciones, que pueden ser permanentes (como cables) o bien temporales, como enlaces telefónicos u otros. Dependiendo de su tamaño, las redes se clasifican en "LAN", "MAN" y "WAN". Las "LAN" son las "Local Area Network", es decir, Redes de Area Local que abarcan unos pocos computadores e impresoras dentro de un espacio reducido. Las "MAN" (Metropolitan Area Network) o Redes de Area Metropolitana, permiten unir máquinas dentro de un radio limitado de kilómetros (dentro de Santiago, por ejemplo). Y las "WAN" o "Wide Area Network" que se refiere a redes de nivel mundial, como Internet.


110. - Red Neuronal: Son sistemas que tienen la capacidad de "aprender" a partir de ejemplos. Si un sistema basado en estas redes se usa para observar una correa transportadora que lleva manzanas, y se va detallando cuáles están buenas y malas (explicando de paso al sistema, las razones para calificarlas en cada tipo), será posible que ese sistema sepa después identificarlas sin necesidad de más explicaciones y que incluso con el tiempo vaya perfeccionando su conocimiento.
111. - Registro: Es una pequeña unidad de almacenamiento destinada a contener cierto tipo de datos. Puede estar en la propia memoria central o en unidades de memoria de acceso rápido.
112. - Reply: Responder un mensaje de correo electrónico recibido.
113. - Robot: Máquina que realiza tareas más o menos complejas, según un software específico. Este tipo de aparatos han alcanzado ya un gran desarrollo y hoy se aplican técnicas de inteligencia artificial en su construcción; el resultado más asombroso de esta evolución es que los robots no sólo ejecutan trabajos pesados y repetitivos, sino que son capaces de «aprender» de sus propios errores.
114. - Robótica: Disciplina que se ocupa de cuanto concierne al diseño y construcción de robots.
115. - Search: Buscar en internet a través de un motor o sistema de búsqueda de páginas web mediante palabras específicas.
116. - Shareware: Software que se entrega sin costo, para que el usuario lo evalúe en un plazo dado. Si le gusta y quiere usarlo permanentemente, debe pagar su valor comercial.

117. - Simm de memoria: Son los módulos en los que se agrupa la memoria RAM para un computador; cada uno puede contener una cantidad diferente y por ello existen Simms de 1 Mb, 4 Mb, 8 Mb y más. La sigla SIMM significa "single in-line memory module".
118. - Simulación: Recreación de procesos que se dan en la realidad mediante la construcción de modelos que resultan del desarrollo de ciertas aplicaciones específicas. Los programas de simulación están muy extendidos y tienen capacidades variadas, desde sencillos juegos de ordenador hasta potentes aplicaciones que permiten la experimentación industrial sin necesidad de grandes y onerosas estructuras; un caso típico de esto último seria el túnel de viento en aeronáutica.
119. - Sistema: En informática, este término utilizado sin otra palabra que lo adjetive designa un conjunto de hardware y software específico.
120. - Sistema operativo: Conjunto de programas fundamentales sin los cuales no sería posible hacer funcionar el ordenador con los programas de aplicación que se desee utilizar. Sin el sistema operativo, el ordenador no es más que un elemento físico inerte.
Todo sistema operativo contiene un supervisor, una biblioteca de programación, un cargador de aplicaciones y un gestor de ficheros.
121. - SMTP (Simple Mail Transfer Protocol): Protocolo Simple de Trasferencia de Correo. Protocolo que se usa para trasmitir correos electrónicos entre servidores.
122. - Software: A diferencia del hardware, es lo que no se ve, es decir los programas y aplicaciones que están guardadas en un disco duro, CD-ROM o disquetes.
123. - Spam: Spam es una palabra inglesa que hace referencia a una conserva cárnica: el "Spiced Ham", literalmente "Jamón con especias". Al no necesitar refrigeración, fue muy utilizada en todo el mundo, sobre todo por el ejército americano, que ayudó mucho en su difusión. Debido a esto (y a su baja calidad) se ha utilizado este término para hacer referencia a todos los mensajes basura que se reciben tanto en los grupos de noticias como en los buzones particulares.
124. - Spamer: Persona que hace spam, es decir, crea mensajes y posteriormente los manda a grupos de noticias y correos electrónicos.
125. - Subject: Título o asunto de un correo electrónico, sirve para saber de qué se trata un mensaje antes de abrirlo.
126. - TCP/IP (Transmision Control Protocol/Internet Protocol): Se trata de un estándar de comunicaciones muy extendido y de uso muy frecuente para software de red basado en Unix con protocolos Token-Ring y Ethernet, entre otros. Es compatible con productos de muchas marcas: IBM, DEC, Sun, AT&T, Data General, etc. TCP/IP es conforme a los niveles 3 y 4 de los modelos OSI. Este conjunto de protocolos fue desarrollado originalmente para el Departamento de Defensa de Estados Unidos.
127. - Telepresencia: Presencia a través de las comunicaciones, es decir se puede ver y escuchar algo o alguien, pero no está físicamente en el lugar, por ej: una video conferencia.
128. - Teleproceso: Denominación para el proceso de datos desde terminales distantes con la unidad central. Es el caso típico de las transacciones que realizan, en gran volumen, las entidades financieras.
129. - Terminal: Es un aparato, situado en la periferia de la unidad central y a distancia, que permite la salida de datos que se solicitan al sistema global. Hay también terminales activos que, mediante un teclado u otro dispositivo, pueden entrar datos al sistema. Además, cierto tipo de terminales pueden ejecutar algunas operaciones de tipo general o especializadas. Y, por último, es cada vez más frecuente utilizar PCs como terminales, con lo que la consideración de éstos aumentan en rango puesto que, además de las funcionalidades propias de su conexión al host, pueden actuar de forma autónoma.
130. - Terminal tonto: Dispositivo de entrada y salida, como su nombre lo indica no tiene inteligencia. Depende por completo del computador principal para el procesamiento. Los terminales tontos transmiten y reciben datos a través de un canal de comunicaciones.
131. - UNIX: Es una familia de sistemas operativos tanto para ordenadores personales (PC) como para mainframes (grandes ordenadores de muchos procesadores). Soporta gran número de usuarios (multiusuario) y posibilita la ejecución de distintas tareas de forma simultánea (multitarea). Su facilidad de adaptación a distintas plataformas y la portabilidad de las aplicaciones que ofrece hacen que se extienda rápidamente. Unix fue desarrollado a finales de los sesenta en los laboratorios Bell, y ha principios de los ochenta su uso estuvo restringido fundamentalmente al entorno académico. La firma AT&T fue la primera en comercializarlo en 1983.
132. - URL (Universal Resource Locator): Localizador Universal de Recursos. Sistema unificado de identificación de recursos en la red. Las direcciones se componen de protocolo, FQDN y dirección local del documento dentro del servidor. Permite identificar objetos WWW, Gopher, FTP, News, etc. Es una cadena que suministra la dirección Internet de un sitio Web o de un recurso World Wide Web, junto con el protocolo por el que se tiene acceso a ese sitio o a ese recurso. El tipo más común de dirección URL es http://, que proporciona la dirección Internet de una página Web.
133. - Visual basic: Versión de BASIC de Microsoft utilizado para desarrollar aplicaciones de Windows, que se ha vuelto popular. Es similar a QuickBASIC de Microsoft, pero no es 100% compatible con éste. Las interfaces de usuario se desarrollan llevando objetos de la caja de herramientas de Visual Basic hacia el formato de aplicación.
134. - WWW (World Wide Web): Es uno de los servicios más atractivos de Internet. Esta aplicación, cuyo software más utilizado es Netscape, permite transmitir y visualizar imágenes, audio, gráfica y textos a través de la red.
135. - Web: Nombre corto para internet o WWW. Literalmente significa red. Es la parte multimedia de Internet. Es decir, los recursos creados en HTML y sus derivados.
136. - Webpages: Documentos del Web con información (texto, imágenes, video, audio, etc.), que se presentan en una misma "pantalla". Una página Web "está" en un servidor Web y es "traída" al computador del usuario para visualizarla.
137. - Websites: Conjunto de páginas web que conforman una unidad entre sí.
138. - Windows '98: Sistema operativo lanzado por Microsoft en 1998, como sucesor de Windows 95. Una de las más visibles diferencias con el anterior consiste en la integración del sistema operativo con el navegador Internet Explorer.
139. - Zip: Zip es un formato de archivo comprimido, el más usado dentro de los archivos que se pueden bajar de internet, ya que algunos archivos son muy grandes por eso se deben bajar comprimidos, para que la descarga sea más rápida.