PROGRAMACIÓN LENGUAJES DE PROGRAMACIÓN Fundamentados en las notas anteriores, sabemos que software es muy relacionado con el termino programa. Entonces, si es algo intangible, ¿como hacemos para definirlo o escribirlo?. Para esto necesitamos un instrumento (Lenguaje de Programación) que nos permita escribir tales programas. Definición: Nos permiten escribir los programas de tal modo que la Computadora interprete y/o ejecute las ordenes / instrucciones que el usuario desea. Básicamente un Lenguaje de Programación es un Lenguaje Artificial que consta de un conjunto de palabras y de reglas o axiomas (sintácticos y semánticos) que permiten escribir programas para su posterior ejecución. Tipos de Lenguajes de Programación. Los podemos clasificar en tres tipos, que son: 1. Máquina: Cuyas ordenes están compuestas por ceros y unos (0’s y 1’s); su principal característica es su bajo nivel de interpretación por parte del usuario. Es el lenguaje que interpreta de modo directo la UCP y sus instrucciones están basadas en BITS. Este lenguaje no requiere de traductor. Ej. 0011010101111001 1111001100001010 -> Instrucción 1 -> Instrucción 2 2. Bajo Nivel: Ya que el lenguaje de máquina es de muy difícil comprensión, los fabricantes de microprocesadores han definido lenguajes ensambladores que traducen las ordenes dadas por el usuario a ordenes que puedan ser ejecutadas por la máquina (lenguaje de máquina). Estas están basadas en etiquetas nemónicas o simplemente nemónicos. Ej. Mov A,1C Add A,B -> Instrucción 1 -> Instrucción 2 3. Alto Nivel: Estos lenguajes permiten escribir programas de una manera semejante a como nos expresamos en lenguaje natural, con la salvedad de que generalmente las instrucciones están definidas en Ingles. Ej. printf(“hola”); Writeln(‘Hola’); System.out.print(‘Hola’); -> Lenguaje C -> Lenguaje Pascal -> Lenguaje Java NOTA: Algunos Lenguajes de Programación permiten la programación en Alto y Bajo nivel, como es el caso de Lenguaje C; a estos se les denominan Lenguajes de Nivel Intermedio. La idea principal de los Lenguajes de Programación es transformar las ordenes que desea dar el usuario o programador en ordenes que entienda o pueda ejecutar el Hardware. Tal proceso lo desempeñan programas Traductores. Traductor. Es el programa que transforma el programa o conjunto de instrucciones de Alto Nivel a instrucciones (entendibles) de máquinas.(ver Fig. 1) Alto Nivel Traductor Bajo Nivel Figura 1 Traductor Estos traductores, se clasifican en: 1. Compiladores: Revisa todas las instrucciones y hasta que el programa no esté libre de errores o depurado no realiza la ejecución del mismo. Ej. Pascal, Lenguaje C. 2. Interpretes: A diferencia del caso anterior, revisa y ejecuta instrucción por instrucción, de tal modo que puede presentar anomalías antes de finalizar la tarea. Ej. Algunas versiones de Basic. PROGRAMA Definición: Es un Conjunto ordenado y finito de ordenes o instrucciones que se escriben en lenguajes de programación para ejecutar y lograr una tarea o fin específico. NOTA: En pocas palabras un programa es como una receta de cocina que requiere de ingredientes (datos) y de una serie de pasos (instrucciones) para lograr así un deseado platillo o postre. Fases para la creación de un programa En la creación o desarrollo de un programa (aunque es un proceso creativo) se recomienda seguir las siguientes fases: 1. 2. 3. 4. 5. 6. 7. Análisis. Diseño. Codificación. Compilación. Depuración. Verificación. Documentación 1.Análisis ¿Qué? En esta etapa, el programador tiene una apreciación general del problema (a programar) y debe determinar: Entradas, Procesos y Salidas involucradas en el mismo. Luego de culminada esta etapa el programador debe tener una clara visión de la solución programada del problema. Entradas: Es el conjunto de datos (generalmente introducidos por el usuario) que accionan la ejecución o procesamiento de un programa. Procesos: Operaciones que basadas en las entradas generan las salidas. Salidas: Es el conjunto de datos que resulta del la ejecución del programa aunado a los datos de entrada. Ejemplo: Transformación de pulgadas a cm. Entradas: (en cada fila se define cada variable de entrada) Nombre Tipo de dato descripción pulg entero Nro. De Pulgadas restrcción ninguna Proceso: (Se describen brevemente los procesos u operaciones involucradas) Cm<-2.54*pulg Salidas: (en cada fila se define cada variable de salida) Nombre Tipo de dato descripción cm real Nro. De centimetros restrcción Ninguna 2. Diseño ¿Cómo? Esta fase se caracteriza por describir a través de técnicas y/o métodos la solución programada del problema. Por lo general, en esta etapa se propone una solución tipo modular de diseño descendiente (Top Down) en el que un gran problema se divide en pequeños sub-problemas, que son controlados por un programa o módulo principal. Este diseño se realiza con algoritmos. (un algoritmo para cada módulo si existen y uno para en principal) Algoritmo: Es un método (aunque no el único) que permite diseñar la solución programada de un problema, como una serie finita y ordenada de pasos bien definidos. Este debe ser: Definido -> Si se sigue 2 veces debe ser igual. Finito -> Termina o tiene fin. Preciso -> Cada orden o instrucción debe ser clara. TÉCNICAS y/o HERRAMIENTAS DE DISEÑO (Algoritmos) Para el diseño de programas, por lo general se emplean dos técnicas algorítmicas, que son: Flujogramas. Pseudocódigo. Flujogramas: Es una técnica o representación gráfica del algoritmo, en la que las operaciones, instrucciones y el orden de ejecución, tienen asociados figuras generalmente geométricas (estandarizada por ANSI) y entre las más utilizadas se tienen: