(totalmente inventado)

Slides:



Advertisements
Presentaciones similares
Unidad I - Programación. Como están escritos los programamas de computadoras.
Advertisements

5. Técnicas de Simulación 1. Conceptos
ARMAR EL CUBO DE RUBIK EN 7 PASOS
¿Cómo hacer para que una máquina comprenda el LN?
INSTITUTO TECNOLOGICO DE APIZACO Integrantes del equipo: José Luis Cocoletzi López Edgar Lozano Velázquez TEMA: Lenguaje Ensamblador.
¿Qué son Los Lenguajes de Programación?
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Lenguajes de programación
PASOS PARA LA RESOLUCIÓN DE PROBLEMAS
Resolución de Problemas Algoritmos y Programación
INSTITUTO TECNOLOGICO DE MINATITLAN
Lenguajes de programación
Introducción a la programación
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Pablo Cesar Tapia Catacora
Lenguajes de programación
METODOLOGIA DE LA PROGRAMACION
Las variables en PHP Programación en Internet II.
GRÁFICAS Y FUNCIONES María José Peña Mártil MATEMÁTICAS
1. Tipos de dibujos 2. Escalas 3. Sistemas de representación
Ingeniero Anyelo Quintero
TRADUCTOR DE UN PROGRAMA
Proceso de información en la computadora
Ingeniero Anyelo Quintero
M.C. Meliza Contreras González
Computadoras analógicas Miden magnitudes físicas que se distribuyen en escala continua como pueden ser la temperatura y la presión. Este tipo de computadoras.
Fundamentos de programación
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
ORDEN DE LAS FRACCIONES:
Sistemas de numeración
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
FUNDAMENTOS DE PROGRAMACIÓN ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ.
LENGUAJES DE PROGRAMACIÓN
LA ANSIEDAD EN LOS EXÁMENES.
SISTEMAS OPERATIVOS.
PHP-MYSQL Introducción Prof. Juan Carlos Lima Cruz Colegio IPTCE.
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Lenguajes de programación. Lenguaje máquina El ordenador sólo sabe hacer un número limitado de tareas (muy pocas) definidas electrónicamente en su procesador.
Universidad Pedagogica Nacional Francisco Morazán PREUFOD S.P.S.
Coordenadas 2D Absolutas y relativas.
Curso: “Sistemas de control programado na área de tecnoloxía “
Tipo de Errores.
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Metodología de la programación
Prof. Flor Narciso Departamento de Computación
DEV- C++ ·include <iostream> Int x x=x+2(x)
INTRODUCCION A LA PROGRAMACION
Lenguajes de Programación
Lenguaje programación
UNIDAD V Bibliotecas de Funciones L.I. & M.S.C. OSCAR RAMÍREZ CORTÉS PROGRAMACIÓN DE SISTEMAS.
Tipos de Lenguajes Ensamblador.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Cuatro pasos para hacer un cartel
Clasificación de software
Curso: Programación I Grado: 4to. Bachillerato Prof. Gerardo Barrientos.
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
TEMA: Tipos de Errores Integrantes del equipo : Chávez Cholula Gisela Ramírez Valerio Ángeles Docente: L.I. Fuentes Cortes Miguel INSTITUTO TECNOLÓGICO.
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
COMPUTER SCIENCE PARCIAL 1
Harware Software Yuneidy moreno 7-2 Tecnología i. E. devora Arango.
Fundamentos de Programación Unidad I Conceptos Básicos.
 Software Comercial(Copyright)  Software Libre(Copyleft)  Freeware  Shareware  Adware(Pop-Up)  Spyware  Malware  Phishing  Spam  Hacker  Cracker.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
MAIKOL ESTIVEN MARTINEZ LAS MATEMATICA EN LA INGENIERIA DE SISITEMAS CORPORACIÓN UNIVERSITARIA REMINGTON.
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
Transcripción de la presentación:

(totalmente inventado) Un ejemplo (totalmente inventado)

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.

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

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

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).

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. 010001100010010010100010000001100010010011 100010010001100101010001100010010011100011

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. 010001 100010010010100010000001100010 010011 100010 010001100101010001100010010011 100011

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. 010001 100010 010010100010000001 100010 010011 100010 010001 100101010001100010 010011 100011

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. 010001 100010 010010 100010 000001 100010 010011 100010 010001 100101 010001 100010 010011 100011

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. 010001 100010 010010 100010 000001 100010 010011 100010 010001 100101 010001 100010 010011 100011

Un programa Ejecuta la orden 01 (gira a la derecha) 0001 veces (es decir, 1 vez) 010001 100010 010010 100010 000001 100010 010011 100010 010001 100101 010001 100010 010011 100011

Un programa Ejecuta la orden 10 (dibuja) 0010 cuadros (es decir, 2 cuadros) 010001 010010 100010 000001 100010 010011 100010 010001 100101 010001 100010 010011 100011 100010

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

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

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.

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

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

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).

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

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).

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.

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.

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)

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

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).

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.

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) 1101100110 1101001101 1000010011 0010010010 1111011011 Traducción a otra máquina