Introducción a la Programación
Tema 1:
Conceptos Básicos para la Programación La arquitectura de von Neumann
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
1
¿Por qué surgen las computadoras? z
a.c. Abaco
z
S XVII Pascal Leibnitz
z
S XIX Babbage 8 Programa
z
1945 Von Neumann 8 Programa interno 8 Ruptura de secuencia. PROCESADOR Y MEMORIA
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
2
Introducción a la Programación z¿En
qué consiste comunicar algo a la Periféricos máquina? 8Introducir de alguna manera las instrucciones en algún sitio al que pueda acceder el “cerebro” de la máquina para comprenderlas y ejecutarlas. Memoria Representación
z¿Qué
Unidad de Control
es un lenguaje de programación?
8 Un lenguaje directamente traducible a operaciones que algún componente de la máquina sea capaz de realizar. Unidad Aritmético Lógica Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
3
¿Que es una computadora?
z
La memoria
z
La unidad de control
z
La Unidad Aritmético-Lógica
z
La unidad de Entrada/Salida.
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
4
Detalle de los componentes de un ordenador: Von Neumann Periféricos
Unidad Aritmético Lógica
Unidad de memoria
buses
T S AB
I C C buses RA
Unidad de Entrada / Salida
ÓN
Periféricos
.... .
Unidad de Control
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
5
La memoria z
Se encarga de almacenar el programa y los datos sobre los que éste debe actuar.
z
Conjunto de celdas, accesibles directamente de manera individual mediante su Dirección (relación unívoca). 8 Sobre cada celda de memoria, sólo operaciones de lectura (consulta) y escritura (sustitución) de la información almacenada
z
El registro de direcciones (MAR): almacenará la dirección de la celda de memoria a la que se desea acceder.
z
El registro de intercambio (MBR): almacenará la información que se desea escribir (o leer) en (de) la celda de memoria direccionada.
z
El dispositivo selector: encargado de establecer la comunicación física entre la celda de memoria indicada en el registro de direcciones y el registro de intercambio.
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
6
La memoria z
Operaciones:
Lectura: (transferir de la celda al MBR)
Escritura (copiar del MBR a la celda):
8 DIR → MAR
8 DIR → MAR
8 selector comunica
8 INFO → MBR
8 (MAR) → MBR
8 selector comunica 8 MBR → (MAR)
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
7
El procesador z
Leer secuencialmente de la memoria las instrucciones que componen el programa, identificando para cada una de éllas, la operación a realizar y los operandos que intervienen.
z
Ejecutar la operación identificada sobre los datos adquiridos y guardar el resultado donde corresponda. 8 Unidad de control 8 Unidad aritmético-lógica
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
8
La unidad de control z
Leer de la Memoria la instrucción del programa que se ejecutará en cada momento e identificar la operación a realizar.
z
Buscar los operandos que intervienen en la operación.
z
Informar a la Unidad Aritmético-Lógica de la operación a realizar y suministrarle los operandos.
z
Guardar en la memoria el resultado de la operación realizada.
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
9
La unidad de control z
El registro Contador de Programa (PC). Almacena la dirección de memoria donde reside la instrucción que se ejecutará a continuación. Cuando se inicia la ejecución de una instrucción, el contenido del registro contador se incrementa siempre en una unidad.
z
El registro de Instrucción (IR). Almacena la instrucción que se está ejecutando en cada momento. 8 Formato de instrucción: Código_operación operando(s) dir_resultado OPS: operando(s): puede haber uno o dos, en función de la operación, y serán valores o direcciones de memoria donde realmente se encuentra el operando. Dir_resultado es la dirección de la celda de memoria donde se debe almacenar el resultado
z
Secuenciador. Es un dispositivo que se encarga de interpretar la información contenida en el registro de instrucción. Una vez interpretada ésta, se encarga de activar en orden los circuitos apropiados para que la operación se complete con éxito. 8 El secuenciador “comprende” un conjunto limitado de operaciones
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
10
La unidad de control z
Ejecución de una instrucción: 8 Secuenciador activa circuitos para cargar instrucción en IR PC → MAR (MAR) →MBR MBR → IR 8 PC + 1 → PC 8 Secuenciador interpreta esta instrucción, transfiriendo a la UAL datos y operador si es necesario, y almacena el resultado 8 Repetición del ciclo
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
11
La Unidad Aritmético-Lógica z
Almacenar temporalmente en sus registros los operandos que le suministra la Unidad de Control.
z
Realizar sobre ellos la operación aritmética (suma, resta) o lógica (and, or) que le indique la propia unidad de control.
z
Almacenar temporalmente en sus registros el resultado de dicha operación.
¿Cuántas operaciones tiene que ser capaz de ejecutar una U.A.L.?
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
12
La Unidad de Entrada/Salida. z
Sirve de intermediario entre la máquina y el mundo exterior, es decir, se encarga de comunicarse con el exterior, con objeto de cargar el programa y los datos en la memoria y de notificar al usuario los resultados de los cálculos obtenidos.
z
Periféricos. 8 Entrada 8 Salida
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
13
Los buses z
Caminos físicos por los que circula la información.
z
Sirven para que los distintos dispositivos se comuniquen entre sí y con el exterior.
z
La velocidad de trabajo de la computadora vendrá dada, en cierta medida, por la cantidad de información que pueda viajar por el bus en un momento dado (Anchura de banda del bus). 8 control 8 datos 8 direcciones
¿qué hace cada bus y con quién se comunica?
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
14
Detalle de los componentes de un ordenador: Von Neumann Reg. Direcciones MAR
Reg. Intercambio MBR
Periféricos
Reg. Oper 2
Reg. Oper 1
+/-
Selecto r
Acumulador Unidad Aritmético Lógica
celdas de memoria
Unidad de Entrada / Salida
Periféricos
.... .
Unidad de memoria
buses
Reg. Instrucción Secuenciador Reg. contador del programa Unidad de Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial Control
15
Ejercicio (Utilizando fichas) z
Si suponemos la siguiente estructura de la memoria, y que en el registro contador de programa hay un 12, decir todos los pasos que sigue la computadora para ejecutar el programa. DIRECC
CONTENIDO
12
Sumard18d37d43
13
Añadir15d43
14
Fin
18
26
37
18
43
12
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
16
Ejercicio (Utilizando fichas) z
Si suponemos la siguiente estructura de la memoria, y que en el registro contador de programa hay un 71, decir todos los pasos que sigue la computadora para ejecutar el programa. 70
añadir 10d12
71
restar d11 d12 d15
72
añadir 20 d15
73
Fin
10
7
11
8
12
15
13
9
14
30
15
25
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
17
Representación de la información
z
Los sistemas de numeración
z
Representación de la información en una computadora (datos) 8 Número enteros 8 Números reales 8 Caracteres
z
Organización de la memoria
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
18
Los sistemas de numeración z
Información analógica
z
Información digital ¿Por qué digital? 8 0,1 BIT: Cantidad de información que se puede almacenar en una variable binaria. BYTE: Información que se puede codificar con 8 bits. 28 = 256 valores. KBYTE: 210 bytes = 1.024 bytes MBYTE: 210 Kbytes = 220 bytes = 1.048.576 bytes GBYTE: 210 Mbytes = 220 Kbytes = 230 bytes = 1.073.741.824 bytes
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
19
Los sistemas de numeración z
Necesitamos una sistemática de conversión(una cosa es el concepto y otra la representación número romanos)
z
Sistema de numeración posicional dn-1....d3d2d1d0 Su valor decimal será dn-1 rn-1 + dn-2 rn-2 + ... + d2 r2 + d1 r1 + d0 r0 donde r representa la base o raiz del sistema de numeración. Es decir:
n −1
∑ di ri
i =0
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
20
Sistemas de numeración z
Decimal (base 10) 8 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 8 32710 = 3 x 100 + 2 x 10 + 7 = 3 x 102 + 2 x 101 + 1 x 100
z
Binario (base 2) 8 0, 1 8 10112 = 1 x 20 + 1 x 21 + 0 x 22 + 1 x 23 = 1110
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
21
Sistemas de numeración z
Octal (base 8) 8 0,1,2,3,4,5,6,7 8 2038 = 3 x 80 + 0 x 81 + 2 x 82 = 13110
z
Hexadecimal (base 16) 8 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 8 AC16 = 10 x 161 + 12 x 160 = 17210
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
22
Sistemas de numeración z
DECIMAL -> BINARIO
Tenemos un número en decimal N10 N10 = dn-1 2n-1 + dn-2 2n-2 + ... + d2 22 + d1 2 + d0 = 2(dn-1 2n-2 + dn-2 2n-3 + ... + d2 2 + d1 ) + d0 2(2(dn-1 2n-3 + dn-2 2n-4 + ... + d2 ) + d1 ) + d0 29 1
2910 = 111012
2 14 0
2 7 1
2 3 1
2 1
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
23
Sistemas de numeración z
BINARIO <-> OCTAL
Agrupar de 3 en 3 (dcha -> izqda) z
BINARIO <-> HEXADECIMAL
Agrupar de 4 en 4 Ejemplo z
N10 = 29
z
N2 = 11101 = 11 101 => N8 = 35 3
z
5
N2 = 11101 = 1 1101 => N16 = 1D16 1
13
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
24
Representación de la información en una computadora (datos) z
Numeros enteros 8 Enteros sin signo 8 Enteros con signo Magnitud y signo
C C A R T S
Complemento a 1
N IÓ
Complemento a 2 Exceso a M z
Numeros reales
B A
Coma fija
Coma flotante
z
Caracteres
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
25
Representación de caracteres 8 Caracteres alfabéticos: Las letras mayúsculas y minúsculas del alfabeto a..z, A..Z 8 Caracteres numéricos: Los dígitios del sistema decimal 0..9 8 Signos de puntuación: : ; . , ( ) “ ? ¿ ! ... 8 Operadores aritméticos: + - = / *... a Operadores lógicos: ≠ ∧ ∨ ⇔ ⇒ a Caracteres especiales: © ← ↑ ↓ → ....
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
26
Representación de caracteres z
En cualquier codificación de los caracteres que utilizemos debe verificarse: Unicidad de código (cada código equivaldrá a un carácter y viceversa). Orden (los códigos guardarán los órdenes establecidos para cada tipo de caracteres, es decir, 0<1<2...; a
z
El código ASCII supone que con un máximo de 128 combinaciones podemos representar cualquiera de los símbolos que empleamos en la comunicación. Esto implica emplear al menos 7 bits ( 27=128 ) para almacenar cualquier carácter en la computadora, Aunque en realidad se utiliza un byte completo, reservándose el octavo bit para representar 128 nuevos caracteres.
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
27
Representación de caracteres
ASCII American Standard Code for Information Interchange (Código de caracteres) 000 (nul) 001 (soh) 002 (stx) 003 (etx) 004 (eot) 005 (enq) 006 (ack) 007 (bel) 008 (bs) 009 (tab) 010 (lf) 011 (vt) 012 (np) 013 (cr) 014 (so) 015 (si)
016 (dle) 017 (dc1) 018 (dc2) 019 (dc3) 020 (dc4) 021 (nak) 022 (syn) 023 (etb) 024 (can) 025 (em) 026 (eof) 027 (esc) 028 (fs) 029 (gs) 030 (rs) 031 (us)
032 sp 033 ! 034 " 035 # 036 $ 037 % 038 & 039 ' 040 ( 041 ) 042 * 043 + 044 , 045 046 . 047 /
048 0 049 1 050 2 051 3 052 4 053 5 054 6 055 7 056 8 057 9 058 : 059 ; 060 < 061 = 062 > 063 ?
064 @ 065 A 066 B 067 C 068 D 069 E 070 F 071 G 072 H 073 I 074 J 075 K 076 L 077 M 078 N 079 O
080 P 081 Q 082 R 083 S 084 T 085 U 086 V 087 W 088 X 089 Y 090 Z 091 [ 092 \ 093 ] 094 ^ 095 _
096 ` 097 a 098 b 099 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
28
Organización de la memoria z
Normalmente, los caracteres necesitan 8 bits, los números enteros 8 (128), 16 (33920) ó 32 (21.474.83.648) bits, dependiendo de su precisión, y los números reales 32 ó 64 bits
z
¿cuántos bits colocamos en cada posición direccionable? -> 1 byte
z
Palabra -> conjunto de bits necesarios para almacenar un entero de longitud normal.
z
Tamaño de la memoria o espacio de direcciones -> capacidad de la memoria (el número de bytes disponibles)
z
Tipos de memoria: RAM y ROM
ABSTRACCIÓN
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
29
Pero, ¿qué es la tan nombrada abstracción? z
abstracción.(Del lat. abstractĭo, -ōnis).
z
1. f. Acción y efecto de abstraer o abstraerse.
z
abstraer.(Del lat. abstrahĕre).
z
1. tr. Separar por medio de una operación intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo objeto en su pura esencia o noción.
z
2. intr. Prescindir, hacer caso omiso. Abstraer de examinar la naturaleza de las cosas. U. t. c. prnl.3. prnl. Enajenarse de los objetos sensibles, no atender a ellos por entregarse a la consideración de lo que se tiene en el pensamiento.
Profesores: María José García, Raúl Murciano, Manuel Ortega, Pilar Pilar Romay, Romay, Pedro J Lara Bercial
30