Tecnologías de Control Unidad 7 - Lecturas complementarias (fecha de revisión 30/08/00) Software Programas de computadoras. Son las instrucciones responsables de que el hardware (la máquina) realice su tarea. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los sistemas operativos (software del sistema), que controlan los trabajos del ordenador o computadora, y el software de aplicación, que dirige las distintas tareas para las que se utilizan las computadoras. Por lo tanto, el software del sistema procesa tareas tan esenciales, aunque a menudo invisibles, como el mantenimiento de los archivos del disco y la administración de la pantalla, mientras que el software de aplicación lleva a cabo tareas de tratamiento de textos, gestión de bases de datos y similares. Constituyen dos categorías separadas el software de red, que permite comunicarse a grupos de usuarios, y el software de lenguaje utilizado para escribir programas (véase Lenguaje de programación). Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido. Véase Telecomunicaciones. Programa En informática, sinónimo de software, el conjunto de instrucciones que ejecuta un ordenador o computadora. El término puede referirse al código fuente original o a la versión ejecutable (en lenguaje máquina) de un componente de software. Cuando se habla de un programa se supone un cierto grado de terminación, o sea, se da por hecho que están presentes todas las instrucciones y archivos necesarios para la interpretación o compilación del programa. Por otro lado, se entiende que un programa ejecutable puede cargarse en un entorno determinado y ejecutarse independientemente de otros programas. Véase Lenguaje de programación. Lenguaje de programación En informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción. Lenguajes de bajo nivel Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de señales se denomina código máquina. El código representa normalmente datos y números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de cada microprocesador. Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son a menudo difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean altamente específicos de cada procesador. Si se lleva el programa a otra máquina se debe reescribir el programa desde el principio. Tecnologías de Control - Lecturas complementarias - Hoja 1/6 Lenguajes de alto nivel Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la computadora y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina. 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, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática. Intérpretes y compiladores La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. La traducción de un código fuente de alto nivel a un código máquina también se realiza con un compilador, en este caso más complejo, o mediante un intérprete. Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más lentos que los compiladores ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por segunda vez, como en el caso de los programas en que se reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento, es menos susceptible de provocar fallos en la computadora. Código fuente En informática, las instrucciones de programa legibles por el programador y escritas en un lenguaje ensamblador o de más alto nivel. El concepto contrario es el código objeto, que se deriva del código fuente y está diseñado para ser legible sólo por la máquina. Véase también Lenguaje de programación. Código objeto En informática, código generado por un compilador o un ensamblador, traducido a partir del código fuente de un programa. Casi siempre este término se refiere al código máquina que puede ejecutarse directamente en la unidad central de proceso (CPU) del sistema, pero también puede ser código fuente de lenguaje ensamblador o una variante de código máquina. Programa ejecutable En informática, programa que ha sido traducido a código máquina en un formato que puede cargarse en la memoria y ejecutarse. Sin embargo, en los lenguajes interpretados puede referirse simplemente al código fuente en su formato apropiado. La mayoría de los programas ejecutables en MS-DOS tiene la extensión de nombre de archivo .EXE. Para ejecutar el programa, el usuario sólo tiene que escribir el nombre del archivo (sin la extensión EXE) junto al símbolo del sistema y, a continuación, presionar la tecla Intro. El usuario no tiene que modificar el programa en modo alguno para poder ejecutarlo. Las aplicaciones como los programas de procesamiento de textos son programas ejecutables. Tecnologías de Control - Lecturas complementarias - Hoja 2/6 Programación estructurada En informática, término general que se refiere a un tipo de programación que produce código con un flujo limpio, un diseño claro y un cierto grado de modularidad o de estructura jerárquica. Entre los beneficios de la programación estructurada se encuentran la facilidad de mantenimiento y la legibilidad por parte de otros programadores. Véase también Programación orientada a objeto. Programación orientada a objetos En informática, un estilo de programación en el que un programa se contempla como un conjunto de objetos limitados que, a su vez, son colecciones independientes de estructuras de datos y rutinas que interactúan con otros objetos. Una clase define las estructuras de datos y rutinas de un objeto. Un objeto es una instancia de una clase, que se puede usar como una variable en un programa. En algunos lenguajes orientados a objetos, éste responde a mensajes, que son el principal medio de comunicación. En otros lenguajes orientados a objeto se conserva el mecanismo tradicional de llamadas a procedimientos. BASIC En informática, acrónimo de Beginners All-purpose Symbolic Instruction Code (Código de Instrucciones Simbólicas de Uso General para Principiantes). Se trata de un lenguaje de programación de alto nivel desarrollado por los estadounidenses John Kemeny y Thomas Kurtz en el Dartmouth College a mediados de la década de 1960. BASIC se ganó su enorme popularidad gracias sobre todo a dos implementaciones, Tiny BASIC y Microsoft BASIC, que convirtieron a este lenguaje en la primera lengua franca de los microordenadores o microcomputadoras. Otras importantes implementaciones han sido CBASIC (BASIC Compilado), Integer y Applesoft BASIC (para el Apple II), GW-BASIC (para computadoras personales), Turbo BASIC (de Borland) y Microsoft QuickBASIC. El lenguaje ha cambiado en el transcurso de los años. Las primeras versiones eran interpretadas y no estructuradas. Las más recientes son estructuradas y, a menudo, compiladas. BASIC suele enseñarse a los programadores principiantes porque es fácil de utilizar y de comprender, y además porque contiene los mismos conceptos fundamentales que muchos otros lenguajes considerados más difíciles, como Pascal y C. Véase también Programación estructurada. Bit En informática, acrónimo de Binary Digit (dígito binario), que adquiere el valor 1 o 0 en el sistema numérico binario. En el procesamiento y almacenamiento informático un bit es la unidad de información más pequeña manipulada por el ordenador, y está representada físicamente por un elemento como un único pulso enviado a través de un circuito, o bien como un pequeño punto en un disco magnético capaz de almacenar un 0 o un 1. La representación de información se logra mediante la agrupación de bits para lograr un conjunto de valores mayor que permite manejar mayor información. Por ejemplo, la agrupación de ocho bits componen un byte que se utiliza para representar todo tipo de información, incluyendo las letras del alfabeto y los dígitos del 0 al 9. Véase también ASCII. Byte En informática, unidad de información que consta de 8 bits; en procesamiento informático y almacenamiento, el equivalente a un único carácter, como puede ser una letra, un número o un signo de puntuación. Como el byte representa sólo una pequeña cantidad de información, la cantidad de memoria y de almacenamiento de una máquina suele indicarse en kilobytes (1.024 bytes) o en megabytes (1.048.576 bytes). Tecnologías de Control - Lecturas complementarias - Hoja 3/6 ASCII Acrónimo de American Standard Code for Information Interchange (Código Normalizado Americano para el Intercambio de la Información). En computación, un esquema de codificación que asigna valores numéricos a las letras, números, signos de puntuación y algunos otros caracteres. Al normalizar los valores utilizados para dichos caracteres, ASCII permite que los ordenadores o computadoras y programas informáticos intercambien información. ASCII incluye 256 códigos divididos en dos conjuntos, estándar y extendido, de 128 cada uno. Estos conjuntos representan todas las combinaciones posibles de 7 u 8 bits, siendo esta última el número de bits en un byte. El conjunto ASCII básico, o estándar, utiliza 7 bits para cada código, lo que da como resultado 128 códigos de caracteres desde 0 hasta 127 (00H hasta 7FH hexadecimal). El conjunto ASCII extendido utiliza 8 bits para cada código, dando como resultado 128 códigos adicionales, numerados desde el 128 hasta el 255 (80H hasta FFH extendido). En el conjunto de caracteres ASCII básico los primeros 32 valores están asignados a los códigos de control de comunicaciones y de impresora —caracteres no imprimibles, como retroceso, retorno de carro y tabulación— empleados para controlar la forma en que la información es transferida desde una computadora a otra o desde una computadora a una impresora. Los 96 códigos restantes se asignan a los signos de puntuación corrientes, a los dígitos del 0 al 9 y a las letras mayúsculas y minúsculas del alfabeto latino. Los códigos de ASCII extendido, del 128 al 255, se asignan a conjuntos de caracteres que varían según los fabricantes de computadoras y programadores de software. Estos códigos no son intercambiables entre los diferentes programas y computadoras como los caracteres ASCII estándar. Por ejemplo, IBM utiliza un grupo de caracteres ASCII extendido que suele denominarse conjunto de caracteres IBM extendido para sus computadoras personales. Apple Computer utiliza un grupo similar, aunque diferente, de caracteres ASCII extendido para su línea de computadoras Macintosh. Por ello, mientras que el conjunto de caracteres ASCII estándar es universal en el hardware y el software de los microordenadores, los caracteres ASCII extendido pueden interpretarse correctamente sólo si un programa, computadora o impresora han sido diseñados para ello. Paralelo En informática, se refiere al proceso o transferencia de datos de forma simultánea, en oposición al proceso o transferencia en serie. En la transferencia de datos en paralelo, la información se envía simultáneamente en grupos. Por ejemplo, los ocho bits de un byte de datos se transmiten a la vez, a través de ocho hilos independientes de un cable. En el proceso en paralelo y en otras operaciones similares se realiza más de un proceso a la vez. Por ejemplo, varios microprocesadores de un solo ordenador o computadora pueden estar manejando diferentes aspectos de un proceso (tales como un cálculo complicado) al mismo tiempo. RS-232-C estándar En informática, estándar aceptado por la industria para las conexiones de comunicaciones en serie. Adoptado por la Asociación de Industrias Eléctricas, el estándar TS-232-C recomendado (RS es acrónimo de Recommended Standard) define las líneas específicas y las características de señales que utilizan las controladoras de comunicaciones en serie, con el fin de estandarizar la transmisión de datos en serie entre dispositivos. La letra C indica que la versión actual de esta norma es la tercera de una serie. Serie En informática, y en lo referente a la transferencia de datos, la transmisión en serie consiste en el envío de información de bit en bit a través de un único cable. En otros campos de la informática, el acceso en serie (o secuencial) hace referencia a la búsqueda de información en función de la posición del último elemento encontrado. Un ordenador o computadora en serie es el Tecnologías de Control - Lecturas complementarias - Hoja 4/6 que posee una unidad aritmética sencilla en la cual la suma en serie es un cálculo dígito a dígito (al contrario que en la suma en paralelo, en la que todos los dígitos se suman a la vez). Lógica difusa o Lógica fuzzy En informática, forma de lógica utilizada en algunos sistemas expertos y en otras aplicaciones de inteligencia artificial, en la que las variables pueden tener varios niveles de verdad o falsedad representados por rangos de valores entre el 1 (verdadero) y el 0 (falso). Con la lógica fuzzy, el resultado de una operación se puede expresar como una probabilidad y no necesariamente como una certeza. Por ejemplo, además de los valores verdadero o falso, un resultado puede adoptar valores tales como probablemente verdadero, posiblemente verdadero, posiblemente falso y probablemente falso. Teoría de la información Teoría relacionada con las leyes matemáticas que rige la transmisión y el procesamiento de la información. Más concretamente, la teoría de la información se ocupa de la medición de la información y de la representación de la misma (como, por ejemplo, su codificación) y de la capacidad de los sistemas de comunicación para transmitir y procesar información. La codificación puede referirse tanto a la transformación de voz o imagen en señales eléctricas o electromagnéticas, como al cifrado de mensajes para asegurar su privacidad. La teoría de la información fue desarrollada inicialmente, en 1948, por el ingeniero electrónico estadounidense Claude E. Shannon, en su artículo, A Mathematical Theory of Communication ("Teoría matemática de la comunicación"). La necesidad de una base teórica para la tecnología de la comunicación surgió del aumento de la complejidad y de la masificación de las vías de comunicación, tales como el teléfono, las redes de teletipo y los sistemas de comunicación por radio. La teoría de la información también abarca todas las restantes formas de transmisión y almacenamiento de información, incluyendo la televisión y los impulsos eléctricos que se transmiten en las computadoras y en la grabación óptica de datos e imágenes. El término información se refiere a los mensajes transmitidos: voz o música transmitida por teléfono o radio, imágenes transmitidas por sistemas de televisión, información digital en sistemas y redes de computadoras, e incluso a los impulsos nerviosos en organismos vivientes. De forma más general, la teoría de la información ha sido aplicada en campos tan diversos como la cibernética, la criptografía, la lingüística, la psicología y la estadística. Componentes de un sistema de comunicación El tipo de sistema de comunicación más estudiado consta de varios componentes. El primero es una fuente de información (por ejemplo, una persona hablando) que produce un mensaje o información que será transmitida. El segundo es un transmisor (como, por ejemplo, un teléfono y un amplificador, o un micrófono y un tranmisor de radio) que convierte el mensaje en señales electrónicas o electromagnéticas. Estas señales son transmitidas a través de un canal o medio, que es el tercer componente, como puede ser un cable o la atmósfera. Este canal es especialmente susceptible a interferencias procedentes de otras fuentes, que distorsionan y degradan la señal. (Algunos ejemplos de interferencias, conocidas como ruido, incluyen la estática en la recepción de radios y teléfonos, y la "nieve" en la recepción de imágenes televisivas). El cuarto componente es el receptor, como por ejemplo el de radio, que transforma de nuevo la señal recibida en el mensaje original. El último componente es el destinatario, como por ejemplo una persona escuchando el mensaje. Dos de las principales preocupaciones en la teoría de la información son la reducción de errores por interferencias en los sistema de comunicación, y el uso más eficiente de la capacidad total del canal. Cantidad de información Un concepto fundamental en la teoría de la información es que la cantidad de información contenida en un mensaje es un valor matemático bien definido y medible. El término cantidad no se refiere a la cuantía de datos, sino a la probabilidad de que un mensaje, dentro de un conjunto de Tecnologías de Control - Lecturas complementarias - Hoja 5/6 mensajes posibles, sea recibido. En lo que se refiere a la cantidad de información, el valor más alto se le asigna al mensaje que menos probabilidades tiene de ser recibido. Si se sabe con certeza que un mensaje va a ser recibido, su cantidad de información es 0. Si, por ejemplo, se lanza una moneda al aire, el mensaje conjunto ‘cara o cruz’ que describe el resultado, no tiene cantidad de información. Sin embargo, los dos mensajes por separado ‘cara’ o ‘cruz’ tienen probabilidades iguales de valor un medio. Para relacionar la cantidad de información (I) con la probabilidad, Shannon presentó la siguiente fórmula: I = log21/p donde p es la probabilidad del mensaje que se transmite y log2 es el logaritmo de 1/p en base 2. (log2 de un número dado ‘X’ es el exponente ‘Y’ al que tiene que ser elevado el número ‘2’ para obtener dicho número ‘X’. Por ejemplo, log2 de 8 = 3, porque 23 = 8). Utilizando esta fórmula, obtenemos que los mensajes ‘cara’ y ‘cruz’ tienen una cantidad de información de log22 = 1. La cantidad de información de un mensaje puede ser entendida como el número de símbolos posibles que representan el mensaje. En el ejemplo anterior, si ‘cruz’ está representado por un 0 y ‘cara’ por un 1, sólo hay una forma de representar el mensaje: 0 o 1. El 0 y el 1 son los dígitos del sistema binario (véase Sistema numérico), y la elección entre estos dos símbolos corresponde a la llamada unidad de información binaria o bit. Si se lanza una moneda tres veces seguidas, los ocho resultados (o mensajes) igualmente probables pueden ser representados como 000,001,010,011,100,101,110 o 111. Estos mensajes corresponden a los números 0,1,...7 escritos en notación binaria. La probabilidad de cada mensaje es de un octavo, y su cantidad de información es log21 / = 3, que es el número de bits que se necesitan para representar cada mensaje. Entropía En la mayoría de las aplicaciones prácticas, hay que elegir entre mensajes que tienen diferentes probabilidades de ser enviados. El término entropía ha sido tomado prestado de la termodinámica, para designar la cantidad de información media de estos mensajes. La entropía puede ser intuitivamente entendida como el grado de ‘desorden’ en un sistema. En la teoría de la información la entropía de un mensaje es igual a su cantidad de información media. Si en un conjunto de mensajes, sus probabilidades son iguales, la fórmula para calcular la entropía total sería: H = log2N, donde N es el número de mensajes posibles en el conjunto. Codificación y redundancia Si se transmiten mensajes que están formados por combinaciones aleatorias de las 26 letras del alfabeto inglés, el espacio en blanco y cinco signos de puntuación, y si suponemos que la probabilidad de cada mensaje es la misma, la entropía sería: H= log232 = 5. Esto significa que se necesitan 5 bits para codificar cada caracter o mensaje: 00000, 00001, 00010, 11111. Una transmisión y almacenamiento eficiente de la información exige la reducción del número de bits utilizados en su codificación. Esto es posible cuando se codifican textos en inglés, porque la colocación de las letras no es aleatoria. Así, por ejemplo, la probabilidad de que la letra que suceda a la secuencia ‘informatio’ sea una “n” es muy alta. Se puede demostrar que la entropía del inglés normal escrito es aproximadamente de un bit por palabra. Esto demuestra que la lengua inglesa (como cualquier otra) tiene una gran cantidad de redundancia incorporada, que se denomina redundancia natural. Esta redundancia permite, por ejemplo, a una persona entender mensajes en los cuales faltan vocales, así como descifrar escritura poco legible. En los sistemas de comunicación modernos, se añade redundancia artificial a la codificación de mensajes, para reducir errores en la transmisión de los mismos. Bibliografía: Enciclopedia Microsof Encarta 97 Tecnologías de Control - Lecturas complementarias - Hoja 6/6