S EMANA 02 Ing. CIP Fabián Silva Alvarado [email protected] FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Temas 1. Que es un programa? 2. Que es un lenguaje de programación? 3. Clasificación de los Lenguajes de Programación 4. Características de los lenguajes de programación 5. Compiladores e Interpretes 6. Sistema de Numeración Lenguajes de Programación 2 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 1. ¿Que es un Programa? La unión de una secuencia de instrucciones que un computador puede interpretar y ejecutar y un conjunto de estructuras de datos que almacenan la información sobre la que la operan las instrucciones. “Escribir un programa es establecer el comportamiento de una máquina mediante una serie de algoritmos que definirán su funcionamiento. En el estado actual de la ciencia este algoritmo se plasma por escrito utilizando un lenguaje artificial comprensible por el humanoprogramador”. Lenguajes de Programación 3 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 2. Lenguajes de Programación Las instrucciones que se incluyen en un programa, deben estar en un lenguaje que entienda el computador. Los lenguajes de programación emplean palabras similares a las que usan las personas para comunicarse, pero con una sintaxis (estructura, orden, gramática y ortografía) específica, cuyas normas establece el propio lenguaje. Las personas que desarrollan estos conjuntos de instrucciones se conocen como programadores. Lenguajes de Programación 4 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 2. Lenguajes de Programación El programador debe conocer los comandos del lenguaje que va a utilizar y debe dividir el problema que quiere resolver, en pasos detallados que pueda convertir en instrucciones precisas, que no dejen lugar a ambigüedades. Una vez listo el programa, el computador traducirá los comandos del lenguaje de programación al lenguaje de ceros y unos que ella puede procesar. Lenguajes de Programación 5 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 2. ¿Lenguaje de Programación? Ejemplos: ◦ Visual Basic ◦ Pascal ◦ C/C++ ◦ JAVA ◦ C# ◦ FORTRAN ◦ LISP ◦ … Lenguajes de Programación 6 OFIMATICA BASICA La Programación Lenguajes de Programación La principal razón para que las personas aprendan lenguajes de programación es utilizar la computadora como una herramienta para la resolución de problemas. 7 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 3. Clasificación de los Lenguajes de Programación 3.1. Lenguaje máquina 3.2. Lenguaje ensamblador 3.3. Lenguajes de alto nivel: C, C++, Basic, Java, Pascal, Prolog, LISP,… Lenguajes de Programación 8 OFIMATICA BASICA 1.1. Lenguaje Maquina El único que entiende directamente la CPU del ordenador. Depende del modelo del ordenador Operaciones muy elementales Se simboliza por 0 y 1 (dos niveles de voltaje) Muy difícil de programar en el (en binario, con cadenas de ceros y uno Lenguaje orientado a la maquina Lenguajes de Programación 9 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 1.2. Lenguaje Ensamblador Equivalente al lenguaje de maquina, cada línea de código se traduce en una instrucción para la maquina. Utiliza códigos nemotécnicos para indicarle al hardware las operaciones que tiene que realizar Un código nemotécnico es una palabra o abreviatura que representa una tarea que debe realizar el procesador del ordenador. Por ejemplo: MOV AH, 4CH; indica en mover alguna información desde una posición a otra. Lenguaje orientado a la maquina Lenguajes de Programación 10 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS 1.3. Lenguajes de Alto nivel Utilizan una terminología fácilmente comprensible que se aproxima mas al lenguaje humano. Permiten que el programador exprese el procesamiento de datos en forma simbólica, sin tener en cuenta los detalles específicos de la maquina. En este caso la traducción es llevada a cabo por otro programa denominado compilador. Ejemplos: FORTRAN, COBOL, LISP, BASIC, PASCAL, C, C++, Java, C# Lenguajes de Programación 11 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Clasificación de los Lenguajes de Programación Lenguajes máquina Lenguajes de bajo nivel Son directamente inteligibles por la computadora (0 y 1) Sus instrucciones son mas sencillas de recordar, pero necesitan ser traducidas al lenguaje máquina. Ensamblador Lenguajes de alto nivel Sus instrucciones son muy fáciles de recordar pero necesitan traducirse a lenguaje máquina por medio de un compilador o intérprete. C++ Visual Basic Fortran Lenguajes de Programación Pascal 12 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Ejemplo de instrucciones de suma y resta Lenguaje de alto nivel Lenguaje de bajo nivel (Ensamblador) Lenguaje máquina + ADD 100101 _ SUB 010011 Lenguajes de Programación 13 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Evolución de los Lenguajes de Programación Lenguajes de Programación 14 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Características de los lenguajes de programación Tipos de datos Estructuras de datos Instrucciones y Control de flujo Filosofía de diseño Compilación e Interpretación Lenguajes de Programación 15 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Tipos de datos Datos: Los datos son las propiedades o atributos (cualidades o cantidades) sobre hechos u objetos que procesa el ordenador. Tipo de Datos: El tipo de datos, en un lenguaje de programación, define el conjunto de valores que una determinada variable puede tomar, así como las operaciones básicas sobre dicho conjunto. Lenguajes de Programación 16 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Estructuras de Datos Variables Arreglos 205 6 9 3 2 9 3 0 5 1 3 6 2 Listas 1 2 Lenguajes de Programación 3 4 6 9 17 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Instrucciones y Control de flujo int a = 1; while (a<=10) { cout << “Valor de a en: ”<<a; a++; } Lenguajes de Programación 18 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Filosofía de diseño Cada lenguaje se desarrolla de acuerdo a un diseño especial o una filosofía Estos están ligados al paradigma de programación a utilizar: ◦ Programación Estructurada ◦ Programación Orientada a Objetos. Se refiere a la forma de hacer las cosas Lenguajes de Programación 19 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Traductores de lenguaje: COMPILADORES Usado para traducir un programa escrito en un lenguaje de alto nivel (programa fuente) a lenguaje maquina. Genera un programa ejecutable a partir del código fuente. PROGRAMA ESCRITO EN UN LENGUAJE DE ALTO NIVEL Lenguajes de Programación COMPILADOR PROGRAMA ESCRITO EN UN LENGUAJE MAQUINA 20 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Compilador C++ El Sistema de Computación 21 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS Traductores de lenguaje: INTÉRPRETES No genera un programa escrito en lenguaje maquina a partir del programa fuente. Verifica cada línea del programa cuando se escribe. PROGRAMA FUENTE INTERPRETE EJECUCION DE LA(S) INSTRUCCION(ES) INTERPRETADA(S) Lenguajes de Programación 22 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS SISTEMAS NUMERICOS HEXADECIMAL FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS De decimal a binario. Dado un número decimal, para expresarlo en binario, se dividirá entre la potencia de dos más cercana por debajo. Ejemplo: El Sistema de Computación 24 FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS BIT Si quisiéramos representar el número 837 en bits. ¿Cuántos bits necesita el computador? El número está compuesto por 3 dígitos (cada digito es igual a 8 bits) FUNDAMENTOS DE COMPUTACIÓN E INFORMÁTICA – ALGORITMOS SISTEMA BINARIO