sistemas numericos y operaciones aritmeticas - Departamento de ...
sistemas numericos y operaciones aritmeticas - Departamento de ...
sistemas numericos y operaciones aritmeticas - Departamento de ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Introducción.<br />
LENGUAJES Y ORGANIZACION DE UNA COMPUTADORA<br />
Una computadora digital es una m quina que pue<strong>de</strong> resolver problemas a<br />
partir <strong>de</strong> ir ejecutando instrucciones que se le han suministrado. La secuencia<br />
<strong>de</strong> instrucciones que <strong>de</strong>scriben como realizar una tarea se <strong>de</strong>nomina 'programa'.<br />
Como hemos dicho, las componentes electrónicas directamente solo pue<strong>de</strong>n<br />
realizar un conjunto limitado <strong>de</strong> instrucciones, en las cuales los programas<br />
<strong>de</strong>berían realizarse (o convertirse) antes <strong>de</strong> ser ejecutados (excepción hecha <strong>de</strong><br />
los Hard <strong>de</strong>dicados a propósitos especiales, por ejemplo para procesamiento <strong>de</strong><br />
matrices, etc.).<br />
Estas instrucciones primitivas con todo forman un lenguaje en el cual la<br />
gente pue<strong>de</strong> comunicarse con la computadora. Este lenguaje se llama 'Lenguaje<br />
Máquina'. El diseñador <strong>de</strong> una computadora nueva <strong>de</strong>be <strong>de</strong>cidir qué instrucciones<br />
incluir en su lenguaje m quina. En general trataría <strong>de</strong> hacer estas instrucciones<br />
primitivas lo más simples posible, consistente con la computadora <strong>de</strong>seada, con<br />
el objetivo <strong>de</strong> reducir el costo <strong>de</strong> la electrónica necesitada. Dado que muchos <strong>de</strong><br />
estos lenguajes son tan simples, es difícil y tedioso programar en ellos.<br />
El problema pue<strong>de</strong> ser atacado fundamentalmente <strong>de</strong> dos maneras, las cuales<br />
en ambos casos implican <strong>de</strong>finir un nuevo set <strong>de</strong> instrucciones que sea mas<br />
convencional para la gente. Estas instrucciones constituyen un nuevo lenguaje al<br />
cual podremos llamar L2, así como las instrucciones construidas en hardware<br />
forman un lenguaje L1. La diferencia entre los dos métodos radica en la forma en<br />
que los programas escritos en L2 son ejecutados por la computadora, la cual<br />
<strong>de</strong>spués <strong>de</strong> todo solo pue<strong>de</strong> ejecutar programas en el lenguaje máquina L1.<br />
Uno <strong>de</strong> los métodos <strong>de</strong> ejecutar un programa escrito en L2 es reemplazar<br />
primero cada instrucción en L2 por la secuencia equivalente en L1. La<br />
computadora ejecuta luego un nuevo programa L1 en lugar <strong>de</strong>l viejo L2. Esto se<br />
<strong>de</strong>nomina 'Traducción'.<br />
La otra técnica es escribir un programa en L1 que toma al programa L2 como<br />
dato <strong>de</strong> entrada, examina en or<strong>de</strong>n cada instrucción ejecutando la secuencia<br />
equivalente <strong>de</strong> L1 directamente. Esto no requiere la generación <strong>de</strong> un nuevo<br />
programa en L1. Esto se <strong>de</strong>nomina 'Interpretación' y el programa que lo realiza<br />
se llama 'Intérprete'.<br />
La diferencia es que en el primero todo el programa es convertido primero<br />
a un programa en L1, y L2 es <strong>de</strong>jado a un lado (en cuanto a la ejecución). En el<br />
otro cada instrucción <strong>de</strong> L2 es examinada y <strong>de</strong>codificada y ejecutada<br />
inmediatamente. Ambos métodos son ampliamente usados.<br />
Mas que pensar en términos <strong>de</strong> traducción o interpretación, es a menudo mas<br />
conveniente imaginar la existencia <strong>de</strong> una máquina hipotética, 'Virtual Machine',<br />
cuyo lenguaje sea L2. Si esa máquina se pue<strong>de</strong> construir en forma económica no<br />
hay necesidad <strong>de</strong> tener L1; esto es, una máquina que ejecuta programas en L1. Aún<br />
cuando esta máquina no fuese implementable razonablemente (económicamente), el<br />
programador podrá escribir programas en L2 los cuales no se ejecutar n<br />
directamente sino que serán o bien interpretados o bien traducidos <strong>de</strong> forma <strong>de</strong><br />
po<strong>de</strong>r ser ejecutados en L1, el cual en sí mismo se ejecuta directamente en el<br />
hardware existente.<br />
Para realizar o bien la traducción o la interpretación práctica, L1 y L2<br />
no <strong>de</strong>ben ser <strong>de</strong>masiado diferentes. Esto significa que L2 aún siendo mejor que L1<br />
estar no muy lejos <strong>de</strong>l i<strong>de</strong>al para la mayoría <strong>de</strong> las aplicaciones.<br />
La salida lógica es, en el mismo sentido, i<strong>de</strong>ar un nuevo lenguaje, con su<br />
set <strong>de</strong> instrucciones que sea mas orientado a la gente y menos a la máquina <strong>de</strong> lo<br />
que lo es L2. Al mismo lo llamaremos L3. La gente podrá escribir programas en L3<br />
pensando que la máquina virtual con tal lenguaje realmente existe. El programa<br />
podrá o bien traducirse a L2, o ejecutarse por un intérprete en L2.<br />
La creación <strong>de</strong> todo un conjunto <strong>de</strong> nuevos lenguajes, cada uno mas<br />
conveniente que su pre<strong>de</strong>cesor, podrá ir in<strong>de</strong>finidamente hasta que el a<strong>de</strong>cuado es<br />
alcanzado.<br />
25