La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

(totalmente inventado)

Presentaciones similares


Presentación del tema: "(totalmente inventado)"— Transcripción de la presentación:

1 (totalmente inventado)
Un ejemplo (totalmente inventado)

2 Nuestra máquina Hemos fabricado una máquina que dibuja sobre un papel cuadriculado. Dispone de un ploter que podemos programar. La máquina está diseñada para realizar tres tareas: mover el ploter, dibujar y girar el ploter.

3 Lenguaje máquina Para comunicarnos con la máquina, diseñamos un lenguaje para indicarle cuál de entre las tareas que puede hacer, queremos que haga en cada momento. Decidimos que cada orden estará escrita con 6 bits

4 Lenguaje máquina Los dos primeros bits, indicarán a la máquina, cual de las tareas tiene que realizar: 00 -> Gira un octavo de vuelta en sentido antihorario 01 -> Gira un octavo de vuelta en sentido horario 10 -> Pinta 11 -> Mueve sin pintar

5 Lenguaje máquina Los siguientes 4 bits indicarán cuántas veces se realiza la tarea en cuestión (cuántos cuadros se avanza o cuántas octavos de vuelta hay que girar).

6 Un programa Como la longitud de cada instrucción es fija, la máquina no tiene ninguna dificultad en separar el código en instrucciones: es una tarea totalmente mecánica y no requiere ningún tipo de razonamiento.

7 Un programa Como la longitud de cada instrucción es fija, la máquina no tiene ninguna dificultad en separar el código en instrucciones: es una tarea totalmente mecánica y no requiere ningún tipo de razonamiento.

8 Un programa Como la longitud de cada instrucción es fija, la máquina no tiene ninguna dificultad en separar el código en instrucciones: es una tarea totalmente mecánica y no requiere ningún tipo de razonamiento.

9 Un programa Como la longitud de cada instrucción es fija, la máquina no tiene ninguna dificultad en separar el código en instrucciones: es una tarea totalmente mecánica y no requiere ningún tipo de razonamiento.

10 Un programa También es mecánico interpretar cada instrucción, puesto que siempre, los dos primeros bits son el comando y los otros cuatro el parámetro.

11 Un programa Ejecuta la orden 01 (gira a la derecha)
0001 veces (es decir, 1 vez) 010001

12 Un programa Ejecuta la orden 10 (dibuja) 0010 cuadros
(es decir, 2 cuadros) 100010

13 Un programa Escribe un programa que dibuje un cuadrado de 5 cuadraditos de lado. Recuerda: 00 -> Gira un octavo de vuelta en sentido antihorario 01 -> Gira un octavo de vuelta en sentido horario 10 -> Pinta 11 -> Mueve sin pintar

14 Lenguaje ensamblador La máquina sólo entenderá lo que se le diga con ceros y unos pero para el programador resulta muy incómodo. El problema es fácil de resolver. Basta con asignar a cada orden un conjunto de caracteres fáciles de recordar: 00 -> GiraI 01 -> GiraD 10 -> Pinta 11 -> Mueve

15 Lenguaje ensamblador También nos resultaría más cómodo permitirnos escribir los parámetros en la base decimal en lugar de la binaria. Ya hemos diseñado un lenguaje ensamblador. Ahora, naturalmente, hay que escribir un programa que traduzca estas instrucciones en ensamblador a las instrucciones en lenguaje máquina que son las únicas que comprenderá nuestro aparato.

16 Lenguaje ensamblador Pero este traductor es fácil de diseñar porque hace una tarea totalmente mecánica: 10 10 Pinta Pinta 6 6 0110 0110

17 Lenguaje ensamblador En este lenguaje ensamblador, el programa anterior nos resulta mucho más inteligible: Pinta 2 GiraD 3 GiraD 1 Pinta 5 GiraD 1 Pinta 2 GiraD 3 Pinta 3 GiraD 1 Pinta 2 GiraD 2 GiraI 1

18 Lenguaje de alto nivel Nuestra máquina sólo sabe hacer cuatro tareas y aun así, darle órdenes en su lenguaje, sin usar un lenguaje ensamblador, es una tarea complicada. Incluso en lenguaje ensamblador, la programación es muy costosa para dibujos que no sean muy sencillos, ya que sólo disponemos de cuatro instrucciones (las cuatro básicas).

19 Lenguaje de alto nivel Será una tarea muy larga y tediosa si queremos programar a nuestra máquina para que haga el siguiente dibujo:

20 Lenguaje de alto nivel Hay que pintar 28 segmentos. Entre cada dos de ellos hay que hacer un giro y en varias ocasiones hay que hacer un desplazamiento sin pintar (no se puede hacer de un único trazo).

21 Lenguaje de alto nivel Necesitamos más de 60 instrucciones básicas de la máquina, sean en lenguaje máquina o en lenguaje ensamblador.

22 Lenguaje de alto nivel En lugar de resignarnos a utilizar sólo las instrucciones de la máquina (y por tanto muchas, si la tarea no es demasiado sencilla), podemos utilizar instrucciones complejas que equivalgan a varias instrucciones básicas. Por ejemplo, una instrucción que dibuje un cuadrado, desde el punto actual hacia arriba-derecha, arriba-izquierda, abajo-derecha o abajo-izquierda.

23 Lenguaje de alto nivel Por ejemplo, la sintaxis para dibujar un cuadrado de 5 unidades de lado hacia arriba a la derecha desde el punto actual, podría ser: Pinta 5 GiraD 2 GiraD2 100101 010010 Lenguaje de alto nivel Lenguaje ensamblador Cuadrado(A, D, 5)

24 Lenguaje de alto nivel Un leguaje que disponga de sentencias como ésta, simplifica mucho nuestro programa: Cuadrado( A, I, 1) GiraD 3 Pinta1 GiraI 1 Cuadrado( B, D, 3) Mueve 1 etc

25 Lenguaje de alto nivel La traducción del lenguaje de alto nivel al lenguaje máquina es más compleja que antes y tanto más cuanto más complicadas sean las instrucciones que queremos que contenga. Ésto hace que los programas resulten algo menos eficientes que los programados directamente en lenguaje máquina (o en ensamblador).

26 Lenguaje de alto nivel A cambio, el lenguaje puede ser más universal y que usuarios de distintas máquinas puedan usar los mismos programas. Para ello basta que el lenguaje (que será una sintáxis y un traductor al lenguaje de una máquina) venga equipado con traductores a distintas máquinas.

27 Traducción a otra máquina
Lenguaje de alto nivel Así, la instrucción anterior puede tener distintas traducciones a máquinas distintas, pero eso no es asunto del usuario final. Pinta 5 GiraD 2 GiraD2 100101 010010 Lenguaje ensamblador Lenguaje de alto nivel Cuadrado(A, D, 5) Traducción a otra máquina


Descargar ppt "(totalmente inventado)"

Presentaciones similares


Anuncios Google