viernes, 20 de noviembre de 2009

Semana 02

CAPITULO 2

REPRESENTACION DE LOS DATOS EN INFORMATICA

RESUMEN

La representación interna de la información en los ordenadores es un aspecto de notable importancia pese a pasar desapercibido generalmente entre los usuarios de sistemas informáticos.
El desarrollo de este tema tiene como base el estudio de los sistemas de numeración, de los que provienen los sistemas de codificación que se aplican a la informática.
Los sistemas de codificación pretenden optimizar la tarea de la representacion interna de la información en los sistemas informáticos.
Para un ordenador se diferenciarán dichas representaciones de la informacion en varios grupos generales como son: texto, sonido, imagen y datos numericos.

INTRODUCCIÓN

La representación interna de la información en los ordenadores es un aspecto de notable importancia pese a pasar desapercibido generalmente entre los usuarios de sistemas informáticos.
El desarrollo de este tema tiene como base el estudio de los sistemas de numeración, de los que provienen los sistemas de codificación que se aplican a la informática. Los sistemas de codificación pretenden optimizar la tarea de la representación interna de la información en los sistemas informáticos.
Para un ordenador se diferenciarán dichas representaciones de la información en varios grupos generales como son: texto, sonido, imagen y datos numéricos.
Para entender la manera en que las computadoras procesan datos, es importante conocer cómo la computadora representa los datos.
Las personas se comunican a través del habla combinando palabras en oraciones. El habla humana es análoga porque utiliza señales continuas que varían en fortaleza y calidad.
Las computadoras son digitales, pues reconocen solo dos estados: encendido (on) y apagado (off). Esto es así porque las computadoras son equipos electrónicos que utilizan electricidad, que también tiene solo dos estados: on y off.
Los dos dígitos O y 1 pueden fácilmente representar estos dos estados. El dígito cero representa el estado electrónico apagado (la ausencia de carga electrónica). El dígito uno representa el estado electrónico encendido (presencia de carga electrónica).
El sistema binario es un sistema numérico que tiene tan solo dos dígitos, O y 1, llamados bits. Un bit (binary digit) es la unidad de datos más pequeña que la computadora puede representar. Por sí solo, un bit no es muy informativo.
Cuando ocho bits se agrupan como una unidad, forman un byte. El byte es informativo porque provee suficientes combinaciones diferentes de O y 1 para representar 256 caracteres individuales.
Esos caracteres incluyen números, letras mayúsculas y minúsculas, signos de puntuación y otros. Las combinaciones de O y 1 que representan caracteres son definidas por patrones llamados esquemas de códigos (coding scheme).

REPRESENTACIÓN DE TEXTOS

Cualquier información escrita, cualquier texto se puede representar por medio de caracteres. Los caracteres utilizados en informática se suelen clasificar en cinco categorías:

1. Caracteres alfabéticos: letras mayúsculas y minúsculas del alfabeto inglés:
A, B, C, D,..., X, Y, Z, a, b, c, d,..., x, y, z

2. Caracteres numéricos: constituidos por las diez cifras decimales:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9

3. Caracteres especiales: símbolos ortográficos y matemáticos no incluidos en los grupos anteriores:
)(/&%$#“i !=?‘+_1*Çç<>,;.:(espacio)

4. Caracteres geométricos y gráficos: símbolos con los que se representan formas geométricas o iconos elementales:
┬ ┴ ┼ ═ ║▲►▼◄• ◘ ◙ ○☺☻☼ ♀♠ ♣ ♥ ♦ ♪ ♫

5. Caracteres de control: representan órdenes de control, como salto de línea (NL), comienzo de línea (CR), sincronización de una transmisión (SYN), pitido (BEL), etc.
Estos caracteres son insertados en los textos por los usuarios o por los programas de comunicación o control de periféricos como por ejemplo cuando se escribe con un teclado y se pulsa la tecla de nueva línea. En ese caso se insertarían automáticamente los caracteres de control NL y CR.
Cuando se introducen textos en un ordenador a través del periférico que corresponda, los caracteres se codifican con un código de entrada/salida, asociando a cada carácter una determinada combinación de n bits.
Un código de E/S es por tanto, una correspondencia entre el conjunto de caracteres y el alfabeto binario:
α≡{0,1,2, ..., a,b, Y,Z,+,&,%,…}◘β≡{0,1}*
Los elementos del conjunto de caracteres, así como su número m, dependerán del código de E/S utilizado por el programa que interprete el texto introducido así como del periférico que lo codifique.
A continuación se describir algunos de los códigos más extendidos en la informática real: EBCDIC, ASCII y UNICODE.
CÓDIGO EBCDIC
EBCDIC (Extended Binary Coded Decimal Interchange Code) es un código estándar de 8 bits usado por computadoras mainframe IBM. IBM adaptó el EBCDIC del código de tarjetas perforadas en los años 1960 y lo promulgó como una táctica customer-control cambiando el código estándar ASCII.
EBCDIC es un código binario que representa caracteres alfanuméricos, controles y signos de puntuación. Cada carácter está compuesto por 8 bits 1 byte, por eso EBCDIC define un total de 256 caracteres.
Existen muchas versiones (“codepages”) de EBCDIC con caracteres diferentes, respectivamente suce- siones diferentes de los mismos caracteres. Por ejemplo al menos hay 9 versiones nacionales de EBCDIC con Latín 1 caracteres con sucesiones diferentes.
CÓDIGO ASCII
El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales.
Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía.
Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre como se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio). Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto Las computadoras solamente entienden números. El código ASCII es una representación numérica de un carácter como “a” o”@”.
Como otros códigos de formato de representación de caracteres, el ASCII es un método para una correspondencia entre cadenas de bits y una serie de símbolos (alfanuméricos y otros), permitiendo de esta forma la comunicación entre dispositivos digitales así como su procesado y almacenamiento. El código de caracteres ASCII2 — o una extensión compatible (ver más abajo) — se usa casi en todos los ordenadores, especialmente con ordenadores personales y estaciones de trabajo.
El nombre más apropiado para este código de caracteres es “US-ASCII”.
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{}~
ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas de bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal) para representar información de caracteres.
En el momento en el que se introdujo el código ASCII muchos ordenadores trabajaban con grupos de ocho bits (bytes u octetos), como la unidad mínima de información; donde el octavo bit se usaba habitualmente como bit de paridad con funciones de control de errores en líneas de comunicación u otras funciones específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad asignaban al octavo bit el valor cero en la mayoría de los casos, aunque otros sistemas como las computadoras Prime, que ejecutaban PRIMOS ponían el octavo bit del código ASCII a uno.
Los caracteres de control ASCII
El código ASCII reserva los primeros 32 códigos (numerados del O al 31 en decimal) para caracteres de control: códigos no pensados originalmente para representar información imprimible, sino para controlar dispositivos (como impresoras) que usaban ASCII.
Por ejemplo, el carácter 10 representa la función “nueva línea” (line feed), que hace que una impresora avance el papel, y el carácter 27 representa la tecla “escape” que a menudo se encuentra en la esquina superior izquierda de los teclados comunes.
El código 127 (los siete bits a uno), otro carácter especial, equivale a “suprimir” (“delete”). Aunque esta función se asemeja a otros caracteres de control, los diseñadores de ASCII idearon este código para poder “borrar” una sección de papel perforado (un medio de almacenamiento popular hasta la década de 1980) mediante la perforación de todos los agujeros posibles de una posición de carácter concreta, reemplazando cualquier información previa.
Dado que el código O era ignorado, fue posible dejar huecos (regiones de agujeros) y más tarde hacer correcciones.
Actualmente los usuarios de ASCII usan menos los caracteres de control, (con algunas excepciones como “retomo de carro” o “nueva línea”). Los lenguajes modernos de etiquetas, los protocolos mo- demos de comunicación, el paso de dispositivos basados en texto a basados en gráficos, el declive de las teleimpresoras, las tarjetas perforadas y los papeles continuos han dejado obsoleta la mayoría de caracteres de control.
UNICODE
Antes de Unicode, como ya hemos visto, había diferentes sistemas de codificación de caracteres para cada idioma, cada uno usando los mismos números (0-255) para representar los caracteres de ese lenguaje.
Algunos (como el ruso) tienen varios estándares incompatibles que dicen cómo representar los mismos caracteres; otros idiomas (como el japonés) tienen tantos caracteres que precisan más de un byte. Intercambiar documentos entre estos sistemas era difícil porque no había manera de que un computador supiera con certeza qué esquema de codificación de caracteres había usado el autor del documento.
Los símbolos codificados son insuficientes para representar caracteres especiales que necesitan múltiples aplicaciones.
Los símbolos y códigos añadidos en las versiones de 8 bits no están normalizados.
Están basados en el alfabeto inglés, lo cual limita a otras culturas que utilizan símbolos distintos para sus letras, números, etc.
Los lenguajes de diversas culturas orientales (china, japonesa, coreana,etc.) se fundamentan en la utilización de ideogramas o símbolos que representan palabras, frases, ideas completas, y por lo tanto son inoperantes los códigos convencionales de texto ya que codifican letras y números individuales.
El computador sólo veía números, y los números pueden significar muchas cosas.
Piense entonces en almacenar estos documentos en el mismo sitio (como en una tabla de una base de datos); necesitaría almacenar el tipo de codificación junto con cada texto, y asegurarse de adjuntarlo con el texto cada vez que accediese a él.
Ahora imagine documentos multilingües, con caracteres de varios idiomas en el mismo document. (Habitualmente utilizaban códigos de escape para cambiar de modos; ¡puf!, está en modo ruso koi8-r así que el carácter 241 significa esto; ¡puf!, ahora está en modo Mac Greek, así que el carácter 241 significa otra cosa. Y así con todo).
Para resolver estos problemas se diseñó Unicode.
Para resolver estos problemas, Unicode representa cada carácter como un número de 2 bytes, de 0 a 65535. Cada número de 2 bytes representa un único carácter utilizado en al menos un idioma del mundo (los caracteres que se usan en más de un idioma tienen el mismo código numérico).
Hay exactamente 1 número por carácter, y exactamente 1 carácter por número. Los datos de Unicode nunca son ambiguos.
Por supuesto, sigue estando el problema de todos esos sistemas de codificación anticuados. Por ejemplo, el ASCII de 7 bits que almacena los caracteres ingleses como números del 0 al 127 (65 es la “A”, mayúscula, 97 es la “a” minúscula, etc.).
El inglés tiene un alfabeto sencillo, así que se puede expresar en ASCII de 7 bits.
Los idiomas europeos occidentales como el francés, español y alemán usan todos un sistema llamado lSO-8859-1 (también conocido como “latin-l”), que usa los caracteres del ASCII de 7 bits del O al 127, pero lo extiende en el rango 128-255 para tener caracteres como n-con-una-tilde-sobre-eIIa (241) y u-con-dos-puntitos-sobre-ella (252).
Y UNICODE usa los mismos caracteres que el ASCII de 7 bits para los números del O al 127, y los mismos caracteres que ISO-8859-1 del 128 al 255, y de ahí en adelante se extiende para otros lenguajes que usan el resto de los números, del 256 al 65535.
Especialmente importantes son los problemas anteriores para las aplicaciones de Internet dado que el objetivo de estas aplicaciones es que sean lo más universales posible.
Unicode es un código de E/S propuesto por un consorcio de empresas y entidades que trata de crear aplicaciones capaces de procesar texto de muy diferentes sistemas de escritura. Está reconocido como estándar ISO/IEC 10646 y trata de ofrecer:
  • Universalidad: pretende cubrir la mayoría de los lenguajes actuales.
  • Unicidad: a cada carácter se le asigna un único código.
  • Uniformidad: todos los símbolos se representan con un número fijo de bits, 16 concretamente.

Unicode — es el único esquema de código capaz de representar todos los lenguajes del mundo actual. Se desarrolló precisamente porque el ASCII y el EBCDIC no eran suficientes para representar lenguajes para alfabetos diferentes al inglés o Europeo, como los asiáticos y otros.

No hay comentarios:

Publicar un comentario