Representación interna de la Información y aritmética de computadores
Indice
Representación de enteros
Códigos intermedios
Conversiones y Operaciones
Introducción a las estructuras lógicas
Algebra de Boole
Representación esquemática de las funciones lógicas.
Introducción
La informática es la ciencia tecnológica que estudia el tratamiento automático y racional de la información, con el fin de obtener de ella la misma utilidad. La informática usa las computadoras y ordenadores para el tratamiento y el proceso de la información. Ahora… ¿Cómo se almacena internamente la información?
La información se agrupa internamente (en la ALU y en la CPU) en función de la longitud de la palabra (número bits) que procese el ordenador (por unidad de tiempo). Los distintos tipos de datos que se pueden almacenar en un ordenador tendrán distintas representaciones. El objetivo es agilizar los cálculos, ya que si se almacenasen directamente mediante su código de E/S se perdería la representación posicional de los números.
Sistemas de numeración usuales en informática
Un sistema de numeración es aquel que nos representan cantidades numéricas mediante un conjunto de símbolos. La utilidad de los sistemas de numeración en el tema que nos ocupa es determinante. La razón es que todos los ordenadores utilizan el sistema de numeración binaria para representar la información
Los sistemas de numeración más usados en informática y, por tanto, en las redes de ordenadores son los siguientes:
Binario: La base del sistema es 2. Se utilizan los dígitos 0 y 1. Se utilizan en todas las máquinas electrónicas digitales ya que éstas solo pueden representar dos estados. En particular lo utilizan los ordenadores.
Decimal: La base del sistema es 10. Se utilizan los dígitos 0,1,2,3,4,5,6,7,8,9
Hexadecimal: La base del sistema es 16. Se utilizan los dígios 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Octal: La base del sistema es 8. Los dígitos son 0,1,2,3,4,5,6,7.
Decimal
Los números decimales son aquellos que se representan con una coma y que tienen una parte entera(a la izquierda de la coma) y otra parte decimal (a la derecha de la coma).
Códigos intermedios
Es un código abstracto independiente de la máquina para la que se generará el código objeto.
Su uso se fundamenta en la facilidad de trasformar un número en base 2 a otra base potencia de 2 y viceversa. Usualmente se utilizan como códigos intermedios los sistemas de numeración en base 8 (u octal) y en base 16 (o hexadecimal).
El código intermedio ha de cumplir dos requisitos importantes
- ser fácil de producir a partir del análisis sintáctico.
- ser fácil de traducir al lenguaje objeto
Ventajas del código intermedio.
- Facilitar la fase de optimización.
- Aumentar la portabilidad del compilador de una maquina a otra
o Se puede utilizar el mismo analizador para diferentes generadores.
o Se puede utilizar optimizadores independientes de la máquina.
- Facilitar la división en fases del proyecto
Tipo de representaciones intermedias
- La presentación del código intermedio depende de la maquina objeto:
o 0-direcciones: código para máquinas de pila (código P)
o 2-direcciones: códigos para maquinas con operaciones sobre registro de memoria.
o 3-direcciones: código para máquinas de arquitectura RISC
- En todo caso, añado un recorrido descendente adicional para general el código final.
- Propiedades:
o Fácil de producir en el análisis semántico.
o Fácil de traducir a código maquina real
o Instrucciones simples y concisas, de fácil optimización
- Tipos
o Arboles de sintaxis abstracta
o Notación polaca inversa (RPN)
o Código P
o Código de tres dimensiones
§ Cuartetos
§ Tercetos
§ Tercetos indirectos
Representaciones intermedias: RPN
- Notación Polaca Inversa (RPN)
o Los operadores van después de los operandos
§ S = A + B * C S A B C * + =
o Ventajas
§ Facilidad para general códigos a partir de ella
§ Es la notación más sencilla para el lenguaje intermedio
o Inconvenientes
§ El código es difícil de entender
§ Poca flexibilidad
§ No es útil para optimización de códigos
Operaciones matemáticas en punto fijo.
En este tipo de formato de números binarios, un número es representado por diferentes campos, dependiendo si es con signo o sin signo:
En la representación sin signo, el número está compuesto por dos campos: parte
entera y parte decimal (números naturales) o solo por la parte entera
(números enteros).
Ø Operaciones matemáticas en punto fijo sin signo
Suma
Ø Consideraciones de rango
Siempre que se sumen números de n bits de formato, el resultado de una suma tendrá m bits, donde m >_ n., dependiendo de la cantidad de números que se sumen: Por ejemplo, con 3 bits, 111+111 dará 1110 (un bit más); 111+111+110 dará 10100 (dos bits más) y más.
Resta
Multiplicación
División
Algebra de boole
El álgebra de Boole está formada por un conjunto de variables Booleanas, x∈{0,1}
. Es decir variables que sólo pueden tomar dos valores: 0 ó 1, abierto o cerrado, encendido o apagado, etc.
Un literal l es una variable o su negada. Existen dos tipos: literalres con signo positivo cuando representan el valor ‘1’ de la variable (l=x
), y con signo negativo cuando representa el valor ‘0’ (l=¯¯¯x
).
Una cláusula (o término C) está formada por un conjunto de literales enlazados mediante conectivas lógicas.
Una fórmula lógica ϕ
está formada por conjuntos de cláusulas enlazadas mediante conectivas lógicas. Matemáticamente, toda fórmula lógica ϕ de n variables puede verse también como una función multivariable, esto es ϕ:{0,1}n→{0,1}
. En este texto emplearemos indistintamente los términos de función y fórmula.
Una interpretación de una fórmula lógica ϕ
es el valor lógico de la fórmula cuando se le asignan valores de verdad (TRUE / FALSE) a sus variables. En consecuencia, existirán tantas interpretaciones como combinaciones de asignaciones posibles.
Se dice que una fórmula lógica es satisfacible cuando existe al menos una interpretación que la hace verdadera.
Representación esquemática de las funciones lógicas
| |
Comentarios
Publicar un comentario