Computación 1 Introducción a la Programación Contenido Programas ● Algoritmos ● Lenguajes de Programación ● Compilación e Interpretación ● 31/03/16 Computación 1 - Clase 4 2 Programas - ¿Qué son? Un PROGRAMA es un conjunto de instrucciones que se ejecutan en un computador para realizar una tarea especifica. 31/03/16 Computación 1 - Clase 4 3 Otras definiciones PROGRAMACIÓN: proceso de diseñar, codificar, depurar y mantener el código fuente de programas de computadora. 31/03/16 Computación 1 - Clase 4 4 Otras definiciones(II) ALGORITMO: secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. “un método para resolver un problema” 31/03/16 Computación 1 - Clase 4 5 PROGRAMA IMPLEMENTA ALGORITMO PROGRAMA = ALGORITMO + ESTRUCTURA DE DATOS 31/03/16 Computación 1 - Clase 4 6 Resolución de un problema 1)Diseño del algoritmo, describe la secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo). 2)Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación). 3)Ejecución y validación del programa por computadora. 31/03/16 Computación 1 - Clase 4 7 Resolución de un problema(II) ● ● Para llegar a la resolución de un problema es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. 31/03/16 Computación 1 - Clase 4 8 Algoritmo - Representación inicio Seudocodigo Toma de datos Condición NO SI Tarea 1 Diagrama de Flujo Inicio Inicio • Paso • Paso11 • Paso • Paso22 • Paso • Paso33 • Paso • Paso44 • Paso • Paso55 • .... • .... • Paso • Pasonn Fin Fin Tarea 2 31/03/16 Computación 1 - Clase 4 9 Lenguajes de programación Definición genérica de lenguaje: “conjunto de símbolos y reglas acerca de cómo se organizan esos símbolos”. ● Los procesadores de las computadoras tienen su lenguaje “de máquina” también llamado “binario”. ● Un lenguaje de programación nos permite transcribir un algoritmo en un conjunto de instrucciones precisas. ● 31/03/16 Computación 1 - Clase 4 10 Lenguajes de máquina ● ● ● Las computadoras tienen su propio lenguaje, conocido como lenguaje binario o de máquina, el cual es ejecutado directamente por los circuitos electrónicos que ellas poseen. Cada arquitectura de máquina tiene pues un lenguaje de máquina propio, ya que cada empresa diseña los circuitos según su capacidad tecnológica y el destino final del producto que crea. Los lenguajes de máquina son sumamente engorrosos y primitivos, para utilizarlos hay que concentrarse mucho en el lenguaje y en la arquitectura de la máquina. 31/03/16 Computación 1 - Clase 4 11 Lenguajes de programación y de máquina Instrucciones 31/03/16 Lenguaje de Programación Computación 1 - Clase 4 Lenguaje de Máquina 12 Ejemplos Científicos: FORTRAN, BASIC, Matlab, Octave ● Comerciales: Cobol, PL/SQL (Oracle) ● Objetivos genéricos: C, C++, Java ● Simulación: SIMULA, GAMS ● Generación de animaciones: FLASH (Macromedia) ● Web: PHP, ASP, JSP, Javascript ● Otros paradigmas: Funcionales, Lógicos ● 31/03/16 Computación 1 - Clase 4 13 Compilación e Interpretación Se traduce de lenguaje de programación lenguaje de máquina, dos estrategias: ● Compilar ● Interpretar 31/03/16 Computación 1 - Clase 4 14 Compilación Código Código Fuente Fuente Programador Programa Programa ejecutable ejecutable … … 1001011100 1001011100 0100101111 0100101111 … … 31/03/16 Compilador Código Código máquina máquina Bibliotecas Bibliotecas de decódigo código binario binario Encadenador Computación 1 - Clase 4 15 Compilación - Desventajas Binarios muy grandes para cargar en la memoria RAM ● Bibliotecas dinámicas ● DLL – Dynamic Link Library ● dso/so dso/ – (Dynamic) Shared Objects ● 31/03/16 Computación 1 - Clase 4 16 Interpretación Lee sentencia Analiza No OK Si OK Mensaje de error Ejecuta Espera/Lee próxima sentencia 31/03/16 Computación 1 - Clase 4 17 Compilados / Interpretados Sentencias del programa Programa ejecutable Intérprete Sistema Operativo Sistema Operativo HARDWARE 31/03/16 Programa compilado HARDWARE Programa interpretado Computación 1 - Clase 4 18 Compilados vs. Interpretados Interpretados ● Más lentos al ejecutar (hay que interpretar cada vez) ● El programa es válido para cualquier plataforma con el intérprete ● Más fácil para modelar y hacer análisis de datos rápidos Computación 1 - Clase 4 19 Compilados ● Más rápidos al ejecutar (se ejecutan en el procesador) ● Un código ejecutable para cada plataforma ● No es cómodo para modelar cuando no se tiene un algoritmo 31/03/16 Octave Entorno para realizar cálculos numéricos ● Lenguaje de programación de alto nivel ● Compatible con Matlab ● Página web: https://www.gnu.org/software/octave/ ● 31/03/16 Computación 1 - Clase 4 20 Octave - Entorno interactivo ● Interacción con el usuario Consola Ejecución de comandos o “programas” Respuesta inmediata a los comandos Lenguaje estructurado y sintaxis apropiada a problemas técnicos 31/03/16 Computación 1 - Clase 4 21 Octave - Entorno interactivo (II) ● ● Programas que se ejecutan son interpretados Se programamos usando Funciones Scripts 31/03/16 Computación 1 - Clase 4 22 Octave - Entorno interactivo (III) ● Se invoca ejecutando octave o usando la interfaz gráfica correspondiente (QtOctave) ● Se abandona con el comando quit ● Obtenemos ayuda con el comando help 31/03/16 Computación 1 - Clase 4 23 Octave - Entorno interactivo (IV) 31/03/16 Computación 1 - Clase 4 24