Introduccion a los LP
Transcripción
Introduccion a los LP
25/08/2016 1 UNIVERSIDAD AUTÓNOMA DE SINALOA Facultad de Informática Culiacán Introducción a los Lenguajes de Programación Instructor: MC. Gerardo Gálvez Gámez [email protected] Agosto de 2016 Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. 2. 3. 4. 5. ¿Que es un Lenguaje de Programación? Sintaxis y Semántica Principios Básicos de Lenguajes de Programación Atributos de un Buen Lenguaje de Programación Importancia y razones para el Estudio de Lenguajes de Programación 6. Lenguajes y Paradigmas de Programación 7. Áreas de Aplicación 8. Criterios para la Evaluación de los Lenguajes 9. Evolución de los Lenguajes de Programación 10. Perspectiva Histórica de los Lenguajes de Programación 11. Desarrollo de Software y Lenguajes de Programación 1 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Introducción Introducción a los Lenguajes de Programación • FIUAS La Importancia de Aprender a Programar Computadoras • La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico de los humanos, fue inventada para facilitar el trabajo intelectual.* • Si el hombre tiene algún problema, por ejemplo: ▫ "sumar dos y tres” • ¿Cual es el proceso a seguir para sumar? *Dra. Hanna Oktaba, Investigadora de la UNAM. Dirección electrónica: [email protected] 2 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Proceso a seguir para sumar: Programador Diseñador Define el algoritmo que resuelve el problema Listo Codifica en un lenguaje de programación, el cual la computadora es capaz de "entender" Computadora Ejecuta el algoritmo expresado como programa La máquina le entrega al hombre la respuesta “5", sin que éste tuviera que esforzar sus neuronas. Conclusión: ¿Se requiere de un medio de comunicación entre el hombre y la máquina?. Introducción a los Lenguajes de Programación • FIUAS Lenguaje de programación • Es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas (computadoras). • Pueden usarse: ▫ Para crear programas que controlen el comportamiento físico y lógico de una máquina, ▫ Para expresar algoritmos con precisión, o ▫ Como modo de comunicación humana. 3 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Lenguajes de Programación • “Es un sistema notacional para describir computaciones en una forma legible tanto para la máquina como para el ser humano”. • Referencia: Kenneth C. Louden Lenguajes de programación Segunda Edición Thomson Introducción a los Lenguajes de Programación • FIUAS de un lenguaje de programación 4 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Sintaxis • Es el conjunto de reglas que gobiernan la construcción o formación de sentencias (instrucciones) válidas en un lenguaje. • Es el aspecto que ofrece el programa. • Significa decir cómo se escriben los enunciados, declaraciones y otras construcciones de lenguaje. Introducción a los Lenguajes de Programación • FIUAS Semántica • Es el conjunto de reglas que proporcionan el significado de una sentencia o instrucción del lenguaje. • Es el significado que se da a las diversas construcciones sintácticas. Ejemplo: //Definición de Constantes y Variables CONST ENTERO Base=3, Altura=4 REAL Area 5 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Introducción a los Lenguajes de Programación • FIUAS La pregunta es: 12 • ¿Cuál es la ventaja de estudiar una variedad de lenguajes diferentes, que es poco probable que uno llegue a utilizar? 6 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Lo que se logra es: Mejorar la habilidad para desarrollar algoritmos eficaces (alcanzan su objetivo). Mejorar el uso del lenguaje de programación disponible. Acrecentar el propio vocabulario con construcciones útiles sobre programación. Hacer posible programación. una mejor elección del lenguaje de Facilitar el aprendizaje de un nuevo lenguaje. Facilitar el diseño de un nuevo lenguaje. Introducción a los Lenguajes de Programación • FIUAS 7 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Causas: Capacidad de las computadoras Aplicaciones Métodos de programación Métodos de implementación Estudios teóricos Estandarización Introducción a los Lenguajes de Programación • FIUAS 8 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Contar con: Adecuado al problema a resolver Claridad, sencillez y unidad Ortogonalidad (restricciones que dependen del contexto) Naturalidad para la aplicación Apoyo para la abstracción Facilidad para verificar programas Entorno de programación Portabilidad de programación Costo de uso: • • • • Costo de ejecución Costo de traducción de programas Costo de creación, prueba y uso de programas Costo de mantenimiento de los programas http://www.ecured.cu/index.php/Programaci%C3%B3n,_lenguajes_y_paradigmas Introducción a los Lenguajes de Programación • FIUAS ¿POR QUÉ HAY TANTOS Y APARECEN NUEVOS? 9 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS ¿Cuál es el papel del lenguaje de programación en el siguiente proceso? “Sumar dos y tres" El diseñador define el algoritmo que resuelve el problema El programador lo codifica en un lenguaje de programación, el cual la computadora es capaz de "entender", y listo. La máquina le entrega al hombre la respuesta “5", sin que éste tuviera que esforzar sus neuronas. Luego la computadora ejecuta el algoritmo expresado como programa en el lenguaje de programación en cuestión, Introducción a los Lenguajes de Programación • FIUAS ¿Cuál es el papel del lenguaje de programación en el proceso anterior? • El Lenguaje de programación es el medio comunicación entre el hombre y la máquina. de • Los lenguajes de programación tienen que adaptarse a la invención humana, que día a día se propone nuevos problemas a resolver por las crecientes necesidades que surgen. • Los Lenguajes de Programación tienen que aumentar la expresividad para poder resolver problemas muy diversos y cada vez más complejos. Además, tienen que ofrecer cierta eficiencia en la ejecución. http://www.researchgate.net/publication/267253724_LENGUAJES_DE _PROGRAMACIN_POR_QU_HAY_TANTOS_Y_APARECEN_NUEVOS 10 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Introducción a los Lenguajes de Programación • FIUAS De acuerdo a las herramientas usadas en el proceso de traducción y ejecución de los programas: Lenguaje Máquina Lenguaje Ensamblador Lenguajes Interpretados Lenguajes Compilados Lenguajes Preprocesados 11 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Lenguajes compilados Son lenguajes de alto nivel en los que las instrucciones se traducen del lenguaje utilizado a código máquina, para una ejecución rápida. ▫ Fortran ▫ La familia de lenguajes de C, incluyendo C++ y Objective C ▫ Ada, Pascal (incluyendo su dialecto Delphi) ▫ Algol ▫ Java, C# Introducción a los Lenguajes de Programación • FIUAS Lenguajes Interpretados • Son aquellos en el que las instrucciones se traducen o interpretan una a una siendo típicamente unas 10 veces más lentos que los programas compilados. • • • ActionScript ASP (hasta la versión 3) Bash • • • • • Basic4GL (Basic para OpenGL. Permite generar ejecutables Windows completos) BeanShell (Java en lenguaje de Scripts) COBOL (Compilador COBOL85) Gambas (visual basic mejorado para gnu/linux) Inform • IO (es un lenguaje reciente -2002-) • JavaScript (todas las plataformas) • • Logo (Linux, Windows y Mac) Lenguaje de programación R • • • Lisp Lua Lush (Lisp para gráficos Linux) • NWNScript (empleado en el videojuego Neverwinter Nights y Neverwinter Nights 2) • Perl (todas las plataformas) • • • PHP Pike (es el más rápido de todos, al estar escrito en gran parte en código nativo) Python (todas las plataformas) • REXX y variantes como Object REXX (todas las plataformas, en especial: OS/2 / AmigaOS) • Ruby • • Tcl VBScript (Microsoft Windows) 12 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Introducción a los Lenguajes de Programación • FIUAS De acuerdo con el estilo de programación: Lenguajes Declarativos (Funcionales y lógicos) Lenguajes Imperativos (Estructurados) Lenguajes Orientados a objeto 13 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Lenguajes Declarativos (Funcionales y lógicos) • Son aquellos en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se esta buscando. • Ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL. ▫ ▫ ▫ ▫ ▫ PROLOG SQL HTML WSDL (Web Services Description Language) XML Stylesheet Language for Transformation Introducción a los Lenguajes de Programación • FIUAS PROGRAMACIÓN LÓGICA • • • • • • • • La idea fundamental consiste en emplear la lógica como lenguaje de programación. Se especifican las condiciones que satisfacen las soluciones, Se deducen las soluciones a partir de las condiciones y el énfasis de todo está en qué problema resolver. El problema se describe especificando qué caracteriza a sus posibles soluciones. Se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no cómo, sino qué hacer. Se establece entonces que la idea esencial de la programación lógica es:algoritmos = lógica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lógica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que actúa sobre aquél. Ejemplo: ▫ PROLOG 14 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS PROGRAMACIÓN FUNCIONAL • Programar en un lenguaje funcional significa construir funciones a partir de las ya existentes. • Es un paradigma de programación declarativa basado en la utilización de funciones matemáticas. • El objetivo de la programación funcional es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa. • Están constituidos únicamente por definiciones de funciones. • Tienen la característica de no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración(utilizan recursividad). • Ejemplo: ▫ LISP, diseñado por McCarthy ▫ ML (defun suma1 (numero) (setf numero (+ 1 numero))) (suma1 a) (print a) (print (boundp 'numero)) Introducción a los Lenguajes de Programación • FIUAS Lenguajes Imperativos (Estructurados) • Son aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones. Ejemplo: BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc. 15 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS DIFERENCIA ENTRE LENGUAJES DECLARATIVOS E IMPERATIVOS • En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada. • Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema. Introducción a los Lenguajes de Programación • FIUAS Ejemplo: Lenguaje declarativo madre(X,Y):-mujer(X), progenitor(X,Y). mujer(pilar). mujer(belen). mujer(lucia). mujer(ana). mujer(maria). hombre(tomas). hombre(pedro). hombre(jose). Cuestionamientos: | ?- madre(belen,pedro). yes | ?- madre(X,belen). X = pilar ; no 16 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Introducción a los Lenguajes de Programación • FIUAS Ejemplo: Lenguaje imperativo 17 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS • Se definen los programas en términos de "clases de objetos“ • Los objetos son entidades que combinan: ▫ Estado (es decir, datos) ▫ Comportamiento (esto es, procedimientos o métodos) e ▫ Identidad (propiedad del objeto que lo diferencia del resto). • La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. • Esto permite hacer programas con módulos más fáciles de escribir, mantener y reutilizar. Introducción a los Lenguajes de Programación • FIUAS ALGUNOS LENGUAJES ORIENTADOS A OBJETOS Ada C++ C# VB.NET Clarion Delphi Eiffel Java Lexico (en castellano) aprender estudiantes Objective-C Ocaml Oz PHP PowerBuilder Python Ruby Smalltalk 18 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Por generaciones: • Primera Generación ▫ Lenguaje maquina • Segunda generación ▫ Ensamblador • Tercera Generación ▫ C, Fortran, Smalltalk, Ada, C++, C#, Cobol, Delphi, Java, etc. • Cuarta generación ▫ NATURAL, PL/SQL... • Quinta generación ▫ Prolog, OPS5 y Mercury Introducción a los Lenguajes de Programación • FIUAS De acuerdo a otros conceptos tomados en cuenta: • • • • Lenguajes Visuales Metalenguajes Lenguajes de propósito específico Lenguajes Script 19 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Conclusión Introducción a los Lenguajes de Programación • FIUAS La solución software, debe ser implementada teniendo en cuenta los siguientes parámetros: 20 25/08/2016 Introducción a los Lenguajes de Programación • FIUAS Parámetros Claridad del algoritmo Mínimo tiempo dedicado a escribir el programa Máxima velocidad de ejecución Mínimo uso de espacio de memoria Facilidad de comprensión y mantenimiento posterior Escribir, probar y explotar en el menor tiempo Permitir su mantenimiento por otros. Introducción a los Lenguajes de Programación • FIUAS Preguntas. 21