Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
30/11/2017
1
Facultad de Informática Culiacán
Introducción a los Lenguajes de
Programación
UNIVERSIDAD AUTÓNOMA DE SINALOA
Instructor: MC. Gerardo Gálvez Gámez
Agosto de 2017
1
Introducción a los Lenguajes de Programación • FIUAS
Temas Unidad I
1. ¿Que es un Lenguaje de Programación?
2. Sintaxis y Semántica
3. Principios Básicos de Lenguajes de Programación
4. Atributos de un Buen Lenguaje de Programación
5. 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
30/11/2017
2
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 otrasherramientas que en general apoyan el esfuerzofísico de los humanos, fue inventada parafacilitar 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]
30/11/2017
3
Introducción a los Lenguajes de Programación • FIUAS
Proceso a seguir para sumar:
Diseñador
Define el algoritmo que resuelve el problema
Programador
Codifica en un lenguaje de programación, el cual la
computadora es capaz de "entender"
Computadora
Ejecuta el algoritmo
expresado como programa
Listo
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 formaldiseñado para expresarprocesos que pueden serllevados a cabo por máquinas(computadoras).
• Pueden usarse:▫ Para crear programas que
controlen el comportamientofísico y lógico de una máquina,
▫ Para expresar algoritmos conprecisión, o
▫ Como modo de comunicaciónhumana.
30/11/2017
4
Introducción a los Lenguajes de Programación • FIUAS
Lenguajes de Programación
• “Es un sistema notacional para describircomputaciones en una forma legible tantopara la máquina como para el serhumano”.
• 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
30/11/2017
5
Introducción a los Lenguajes de Programación • FIUAS
Sintaxis
• Es el conjunto de reglas que gobiernan laconstrucció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 losenunciados, declaraciones y otrasconstrucciones de lenguaje.
Introducción a los Lenguajes de Programación • FIUAS
Semántica
• Es el conjunto de reglas que proporcionanel significado de una sentencia oinstrucción del lenguaje.
• Es el significado que se da a las diversasconstrucciones sintácticas.
Ejemplo:
//Definición de Constantes y VariablesCONST ENTERO Base=3, Altura=4REAL Area
30/11/2017
6
Introducción a los Lenguajes de Programación • FIUAS
Introducción a los Lenguajes de Programación • FIUAS
12
La pregunta es:
• ¿Cuál es la ventaja deestudiar una variedad delenguajes diferentes, quees poco probable que unollegue a utilizar?
30/11/2017
7
Introducción a los Lenguajes de Programación • FIUAS
Lo que se logra es:
Mejorar la habilidad para desarrollar algoritmoseficaces (alcanzan su objetivo).
Mejorar el uso del lenguaje de programación disponible.
Acrecentar el propio vocabulario con construccionesútiles sobre programación.
Hacer posible una mejor elección del lenguaje deprogramación.
Facilitar el aprendizaje de un nuevo lenguaje.
Facilitar el diseño de un nuevo lenguaje.
Introducción a los Lenguajes de Programación • FIUAS
30/11/2017
8
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
30/11/2017
9
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?
30/11/2017
10
Introducción a los Lenguajes de Programación • FIUAS
“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",
Luego la computadora ejecuta el algoritmo
expresado como programa en el lenguaje
de programación en cuestión,
y listo.
La máquina le entrega al hombre la respuesta “5", sin que éste tuviera que esforzar sus neuronas.
¿Cuál es el papel del lenguaje de
programación en el siguiente proceso?
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 decomunicación entre el hombre y la máquina.
• Los lenguajes de programación tienen que adaptarse a lainvención humana, que día a día se propone nuevosproblemas a resolver por las crecientes necesidades quesurgen.
• Los Lenguajes de Programación tienen que aumentar laexpresividad para poder resolver problemas muy diversosy cada vez más complejos. Además, tienen que ofrecercierta eficiencia en la ejecución.
http://www.researchgate.net/publication/267253724_LENGUAJES_DE_PROGRAMACIN_POR_QU_HAY_TANTOS_Y_APARECEN_NUEVOS
30/11/2017
11
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
30/11/2017
12
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)
30/11/2017
13
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
30/11/2017
14
Introducción a los Lenguajes de Programación • FIUAS
Lenguajes Declarativos (Funcionales y
lógicos)
• Son aquellos en los cuales se le indica a lacomputadora qué es lo que se desea obtener oqué es lo que se esta buscando.
• Ejemplo: Obtener los nombres de todos losempleados que tengan más de 32 años. Eso sepuede lograr con un lenguaje declarativo comoSQL.
▫ 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 deinferencia (control) que actúa sobre aquél.
• Ejemplo:
▫ PROLOG
30/11/2017
15
Introducción a los Lenguajes de Programación • FIUAS
PROGRAMACIÓN FUNCIONAL
• Programar en un lenguaje funcional significa construir funciones apartir de las ya existentes.
• Es un paradigma de programación declarativa basado en la utilizaciónde funciones matemáticas.
• El objetivo de la programación funcional es conseguir lenguajesexpresivos y matemáticamente elegantes, en los que no seanecesario bajar al nivel de la máquina para describir el procesollevado a cabo por el programa.
• Están constituidos únicamente por definiciones de funciones.
• Tienen la característica de no existencia de asignaciones de variablesy la falta de construcciones estructuradas como la secuencia o laiteració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 lacomputadora cómo realizar una tarea siguiendouna serie de pasos o instrucciones.
Ejemplo:
BASIC, C, C++, Java,
Clipper, Dbase, C#, PHP,
Perl, etc.
30/11/2017
16
Introducción a los Lenguajes de Programación • FIUAS
DIFERENCIA ENTRE LENGUAJES DECLARATIVOS E
IMPERATIVOS
• En los lenguajes declarativos las sentencias que se utilizanlo que hacen es describir el problema que se quieresolucionar, pero no las instrucciones necesarias parasolucionarlo. Esto último se realizará mediante mecanismosinternos de inferencia de información a partir de ladescripción realizada.
• Los lenguajes imperativos describen paso a paso unconjunto de instrucciones que deben ejecutarse para variarel estado un programa y hallar la solución, es decir, unalgoritmo en el que se describen los pasos necesarios parasolucionar 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
30/11/2017
17
Introducción a los Lenguajes de Programación • FIUAS
Introducción a los Lenguajes de Programación • FIUAS
Ejemplo: Lenguaje imperativo
30/11/2017
18
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 comoun conjunto de estos objetos, que colaboran entre ellos pararealizar 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 JavaLexico (en castellano) aprender
estudiantes
Objective-C
Ocaml Oz PHP PowerBuilder Python
Ruby Smalltalk
30/11/2017
19
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
30/11/2017
20
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:
30/11/2017
21
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.