La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería 2015-2 Informática.

Presentaciones similares


Presentación del tema: "Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería 2015-2 Informática."— Transcripción de la presentación:

1 Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería 2015-2 Informática I - 2547100 Introducción a la computación

2 Informática I (2015-2) LENGUAJES DE PROGRAMACIÓN Notaciones formales para describir algoritmos y funciones que serán ejecutadas por un ordenador. Clasificación de Lenguajes de Programación: – Según grado de independencia de la máquina. – Según la forma de sus instrucciones – Por generaciones

3 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN INDEPENDENCIA DE LA MAQUINA Lenguaje de máquina – Cada instrucción es un código binario – Notación que entiende directamente un computador – Las instrucciones y su estructura son particulares de cada maquina.

4 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN INDEPENDENCIA DE LA MAQUINA Lenguaje ensamblador – Versión simbólica del lenguaje de máquina. – Equivalencia uno a uno entre instrucciones de ensamblador y lenguaje maquina. – Permite hacer asignaciones de memoria con nombres simbólicos. – Algunos ensambladores contienen macroinstrucciones cuyo nivel es superior a las instrucciones de ensamblador. – Da acceso completo a todos los recursos de la máquina.

5 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN INDEPENDENCIA DE LA MAQUINA Lenguajes de medio nivel – Poseen características de lenguajes de bajo nivel (maquina y ensamblador) y algunas ventajas de los lenguajes de alto nivel – Proporciona estructuras de control y datos – Ejemplos: C, FORTH Lenguajes de alto nivel – No acceso directo al hardware – Estructuras de datos complejas – Lenguajes orientados a objetos. – Ejemplos: C++, JAVA, Pascal

6 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN INDEPENDENCIA DE LA MAQUINA Lenguajes orientados a problemas – Resolución de problemas de un campo o dominio concreto. – Ejemplos: HTML  Sitios web SQL  Bases de datos VHDL y VERILOG  Descripción de hardware MATLAB y GNU-Octave  Programación matricial

7 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN FORMA DE INSTRUCCIONES Lenguajes procedimentales – Sentencias de asignación es construcción básica de programas – Históricamente primeros lenguajes y los mas usados actualmente – C, C++, FORTRA, Pascal, etc. Lenguajes declarativos – Notación muy próxima al problema – Lenguajes declarativos  llamados a funciones (LISP) – Lenguajes lógicos  clausulas lógicas (PROLOG)

8 Introducción a la computaciónInformática I (2015-2) CLASIFICACIÓN SEGÚN FORMA DE INSTRUCCIONES Lenguajes Orientados a Objetos – Soporte para tipos de datos abstractos y clases (basado en objetos) – Soporte para herencia y polimorfismo (orientado a objetos) – C++, JAVA, Delphi, etc.

9 Introducción a la computaciónInformática I (2015-2) LENGUAJES DE ALTO NIVEL VENTAJAS Mas fáciles de aprender No se necesita tener conocimiento del hardware Liberan de ocupaciones tediosas como el manejo detallado de memoria Ofrecen múltiples estructuras de control Ofrecen múltiples estructuras de datos y permiten crear nuevas Facilitan la depuración Portabilidad de los programas

10 Introducción a la computaciónInformática I (2015-2) LENGUAJES DE ALTO NIVEL DESVENTAJAS Mayores tamaños de ficheros, mayores tiempos de compilación y ejecución Tamaño de archivo para aplicación “Hello World” codificada a diferentes niveles de abstracción: L. máquina, L. ensamblador, L. C y L. C++.

11 Introducción a la computaciónInformática I (2015-2) PROCESADORES DE LENGUAGE Nombre genérico de todas las aplicaciones en las cuales uno de los datos de entrada es un lenguaje de programación: Traductores (translators) Compiladores (compilers) Ensambladores (assemblers) Enlazadores (linkers) Cargadores (loaders) Intérpretes (interpreters) Desensambladores (dissemblers) Decompiladores (decompilers) Depuradores (debuggers) Analizadores de rendimiento (profilers) Optimizadores de código (code optimizers) Compresores (compressors) Preprocesadores (preprocessors) Formteadores (formatters) Editores (editos)

12 Introducción a la computaciónInformática I (2015-2) PROCESADORES DE LENGUAGE Traductores – Procesa Lenguaje Fuente (LF) y genera Lenguaje Objeto (LO). – El Lenguaje de Implementación (LI) puede ser cualquier lenguaje. Ensambladores – Si el LF es lenguaje ensamblador y el LO es el lenguaje de maquina. – Traductores simples por la equivalencia entre declaraciones en ensamblador y códigos binarios en lenguaje maquina. – Macroinstrucciones se traducen en múltiples instrucciones de maquina (Macroensambladores)

13 Introducción a la computaciónInformática I (2015-2) PROCESADORES DE LENGUAGE Compilador – Traductor de LF de alto nivel a LF de bajo nivel. Compilador Programa en Lenguaje fuente (C, C++, Fortran, etc.) Programa en Lenguaje destino (IR, Ensamblador, Lenguaje de Maquina) ALTO NIVEL BAJO NIVEL Tiempo de Compilación Programa Objeto DatosResultados Tiempo de Ejecución

14 Introducción a la computaciónInformática I (2015-2) PROCESADORES DE LENGUAGE Linkers – Ocurre entre el proceso de compilación y la ejecución – Necesario cuando el LF permite fragmentación del programa. Librerías, procedimientos, subrutinas, etc. El compilador produce códigos objeto para cada parte. – El linker une los diferentes códigos objeto en el programa objeto completo. Cargador (Loader) – Coloca el archivo ejecutable en memoria – Asigna el espacio de memoria – Pasa el control a la primera instrucción ejecutarse

15 Introducción a la computaciónInformática I (2015-2) COMPILACIÓN, MONTAJE Y EJECUCIÓN Traductor Ensamblador L. fuente L. ensamblador C. objeto 0 C. objeto 1 C. objeto n Linker C. objeto full Cargador Programa en Ejecución compilación montaje

16 Introducción a la computaciónInformática I (2015-2) PROCESADORES DE LENGUAGE Interprete – Ejecuta en la máquina las instrucciones que encuentra en LF – Todo el proceso se realiza en tiempo de ejecución – Aplicación e interprete coexisten en memoria – Ejecución más lenta que en programas compilados – Mayor portabilidad y flexibilidad.

17 Introducción a la computaciónInformática I (2015-2) Interpreter vs. compiler Intérprete: actúa en tiempo de ejecución ( runtime ) Compilador: traducción completa antes de ejecución 17 myprog.c int main(void){ int a, b; a = 3; printf(“a=%d”, a); exit(0); } COMPILADOR myprog.exe 0101001001010 1010010101000 1111010100101 0100010101001 01101001 COMPUTADOR (Hardware) hola myprog.py b = 1 vec[a] = func(b) a = b+ 1 if a==10: b = 0 } print a INTÉRPRETE (Python engine) COMPUTADOR (Hardware) hola myprog.java public class HelloWorld { public static void main(String[] args) { System.out.println(“ a=3"); } } COMPILADOR (a bytecode) myprog.class 0101001001010 1010010101000 1111010100101 0100010101001 01101001 COMPUTADOR (Hardware) Java Virtual Machine hola

18 Introducción a la computaciónInformática I (2015-2) SISTEMAS NUMÉRICOS Conjunto ordenado de símbolos llamados dígitos, con relaciones definidas para la suma (+), resta (-), multiplicación (x) y división (÷) BASE (r) El número de dígitos en un sistema numérico se denomina base. Las bases mas utilizadas en sistemas digitales son las siguientes:

19 Introducción a la computaciónInformática I (2015-2) NOTACIÓN 1 9 8 5. 2 5 6 Parte Entera Parte Fraccionaria Notación Posicional Notación Polinómica · = separa dígitos enteros de fraccionarios. r = base del sistema numérico. n = número de dígitos enteros m = número de dígitos fraccionarios a i = digito entero cuando n-1 >= i >= 0 a i = digito fraccionario cuando -1 >= i >= -m a n-1 = dígito mas significativo (MSB) a -m = digito menos significativo (LSB) Parte Entera Parte Fraccionaria

20 Introducción a la computaciónInformática I (2015-2) EJEMPLOS NOTACIONES POSICIONAL Y POLINÓMICA

21 Introducción a la computaciónInformática I (2015-2) CONVERSIONES BASE 10  BASE r Convertir (234.45) 10 a base 2 234 7 -234 0 3 -6 117 58 2 2 -116 1 2 29 -58 0 2 14 -28 1 2 -14 0 2 1 2 1 -2 1 Paso 1 – Convertir parte entera Se realizan divisiones consecutivas hasta que el cociente de la división sea menor que la base. Cociente < base TERMINAMOS El resultado de la conversión es: el ultimo cociente como bit más significativo (234) 10 = 11101010 Los dígitos restantes corresponden a los residuos de las divisiones en el orden inverso al que fueron obtenidos () 2 El procedimiento consiste en dividir la parte entera del número por la base del sistema numérico al que se desea pasar

22 Introducción a la computaciónInformática I (2015-2) CONVERSIONES BASE 10  BASE r.45 x 2 = x 2 = 0.90 x 2 = 1.80.80.90 1.60 x 2 =.60 1.20.20 x 2 = 0.40 Paso 2 – Convertir parte fraccionaria Las multiplicacione s continúan hasta que la parte fraccionaria sea cero, o se alcance la precisión deseada Convertir (234.45) 10 a base 2 (0.45) 10 = 01110 El procedimiento consiste en multiplicar la parte fraccionaria del número a convertir por la base. Una vez obtenido el primer producto, la parte fraccionaria de este se multiplica de nuevo por la base El resultado final es la parte entera de los productos en el orden en que fueron obtenidos Finalmente se obtiene: (234.45) 10 = (11101010.0111001) 2 (234) 10 = (11101010) 2 (0.45) 10 = (.0111001) 2 ()2)2. x 2 =.40 0.80 0 x 2 =.80 1.60 Parte Fraccionaria: Parte Entera: Total 1 La secuencia se repetirá una y otra vez. No es posible obtener un valor exacto Terminamos aquí con una precisión de 7 bits

23 Introducción a la computaciónInformática I (2015-2) CONVERSIONES BASE r  BASE 10 Convertir (16435.62) 7 a base 10 16435.62 2 x 7 -2 6 x 7 -1 5 x 7 0 3 x 7 1 4 x 7 2 6 x 7 3 1 x 7 4 = 0.020482 = 0.142857 = 5 = 21 = 196 = 2058 = 2401 + 4681.163339 Notación Polinomial 2 x 7 -2 6 x 7 -1 5 x 7 0 3 x 7 1 4 x 7 2 6 x 7 3 1 x 7 4 m = -2 n = 4 a i x 7 i El procedimiento consiste básicamente en multiplicar cada uno de los dígitos por su peso correspondiente Finalmente hacemos la sumatoria de los productos + ++ + ++ El procedimiento anterior es equivalente al uso de la notación polinomial = peso s

24 Introducción a la computaciónInformática I (2015-2) CONVERSION BINARIO  OCTAL Convertir (1101110001.1) 2 a base 8 Convertir (7341.53) 8 a base 2 0011101011.1 El procedimiento consiste en agrupar los bits en grupos de 3 Para la parte entera se agrupa del punto hacia la izquierda La parte fraccionaria se agrupa del punto hacia la derecha 1 561 4. Finalmente usando una tabla de equivalencias, asignamos a cada grupo de bits el digito octal correspondiente El procedimient o consiste en usar la tabla de equivalencias para asignar un valor binario a cada digito octal 734153. 111011100001101011. (1101110001.1) 2 = (1561.4) 8 (7341.53) 8 = (111011100001.101011) 2 0000

25 Introducción a la computaciónInformática I (2015-2) CONVERSION BINARIO  HEXADECIMAL Convertir (1101111101.111101) 2 a base 16 Convertir (7AD.B) 16 a base 2 1101 0111 11. 1111 37DF. 7ADB. 0111101011011011. (1101111101.111101) 2 = (37D.F4) 16 (7AD.B) 16 = (011110101101.1011) 2 01 4 El procedimiento consiste en usar la tabla de equivalencias para asignar un valor binario a cada digito hexadecimal Finalmente usamos una tabla de equivalencias, para asignar a cada grupo de bits un digito hexadecimal El procedimiento consiste en agrupar los bits en grupos de 4 La parte fraccionaria se agrupa del punto hacia la derecha La parte entera se agrupa del punto hacia la izquierda 00 00

26 Introducción a la computaciónInformática I (2015-2) Binario a Octal – Paso directo  grupos de 3 bits a dígitos octales Octal a Binario – Paso directo  dígitos octales a su equivalente binario de 3 bits Binario a Hexadecimal – Paso directo  grupos de 4 bits a dígitos hexadecimales Hexadecimal a Binario – Paso directo  dígitos hexadecimales a su equivalente binario de 4 bits Octal a Hexadecimal, Hexadecimal a Octal – Paso intermedio a través de base binaria – Octal  binario  hexadecimal – Hexadecimal  binario  Octal ORDEN DE CONVERSIONES

27 Introducción a la computaciónInformática I (2015-2) ORDEN DE CONVERSIONES BASE X a BASE Y – Solo sabemos multiplicar y dividir en decimal  – Paso intermedio a través de base decimal – BASE X  Decimal, evaluar notación polinómica del número en base X – Decimal  BASE Y, divisiones sucesivas por Y

28 Introducción a la computaciónInformática I (2015-2) Binary system Formato de un número decimal: d 0 ·10 0 + d 1 ·10 1 + d 2 ·10 2 … + d n ·10 n Formato de un número binario o en base 2: b 0 ·2 0 + b 1 ·2 1 + b 2 ·2 2 … + b n ·2 n b 0 ·1 + b 1 ·2 + b 2 ·4 + b 3 ·8 + b 4 ·16 … Ejemplo: (1101) 2 = (1·2 0 + 0·2 1 + 1·2 2 + 1·2 3 ) 10 = (1·1 + 0·2 + 1·4 + 1·8) 10 = 13 10 28 ¿Cuál es el número más grande que puede representarse con 8 bits?

29 Introducción a la computaciónInformática I (2015-2) Bits, bytes, words Bit : unidad absoluta mínima de información que tiene la capacidad de almacenar un ‘1’ o un ‘0’. Byte : 8 bits, unidad típica mínima de información que se puede almacenar en una memoria. – Un byte puede tomar 256 valores diferentes. Word : cantidad máxima de bits que pueden ser manipulados a la vez, es específico de la arquitectura del procesador. – En computadores, es 32 o 64 bits => 4 u 8 bytes 29

30 Introducción a la computaciónInformática I (2015-2) Memory 30 DirecciónContenido 110111010 201100011 310101000 400011011 511111010 600000011 710111010 801011110 900001000 1010111010 1111111011 1210111010 … 4567410111010 … 4.294.967.29510101000 ¿Cuántas posiciones de memoria puedo direccionar con direcciones que usan 32 bits? bits byte word (32 bits)

31 Introducción a la computaciónInformática I (2015-2) El código decimal codificado en binario (BCD) sirve para representar los dígitos decimales del 0 al 9. El código BCD utiliza 4 bits, y los pesos son los mismos que en un entero binario de 4 bits. Por tanto el código BCD para un digito decimal dado es igual al equivalente binario del número, con ceros de relleno. Este código también se conoce como código 8-4-2- 1, por los pesos utilizados. CODIGO DECIMAL BINARIO (BCD) Las combinaciones de 10- 15 no son válidas.

32 Introducción a la computaciónInformática I (2015-2) CODIGO DECIMAL BINARIO (BCD) Encontrar la representación en BCD de los siguientes números: –3467 –97.513 –123 Encontrar el valor de los siguientes números representados en BCD: –1001 0010 1000. 0111 –0010 0000 0000 0111 –0001 1001. 1000 0000

33 Introducción a la computaciónInformática I (2015-2) CODIGO DECIMAL BINARIO (BCD) Los códigos BCD se utilizan para codificar números que se envían a pantallas numéricas y para representar números en procesadores que realizan aritmética decimal. Este código es utilizado tanto en supercomputadoras como en calculadoras de bolsillo. CONVERSOR BIN-BCD CONVERSOR BIN-BCD 11000000111001

34 Introducción a la computaciónInformática I (2015-2) Binary information coding 34 DirecciónContenidoASCII 398101010000 398201000001 398301010010 398401010100 398501001001 398601000100 398701001111 P A R T I D O DecimalCarácterDecimalCarácter 65A78N 66B79O 67C80P 68D81Q 69E82R 70F83S 71G84T 72H85U 73I86V 74J87W 75K88X 76L89Y 77M90Z Fragmento de memoriaTabla ASCII ¿Qué palabra ASCII está almacenada en ese fragmento de memoria?

35 Introducción a la computaciónInformática I (2015-2) ASCII Table 35

36 Introducción a la computaciónInformática I (2015-2) ASCII El código de caracteres más utilizado en las aplicaciones de cómputo es el código ASCII (siglas en Ingles de Código Estándar Americano para Intercambio de información). Para la representación de los caracteres el código ASCII utiliza 7 bits, para un total de 128 caracteres posibles.


Descargar ppt "Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería 2015-2 Informática."

Presentaciones similares


Anuncios Google