Download - Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

Transcript
Page 1: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

[email protected]

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

Page 2: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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]

Page 3: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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.

Page 4: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 5: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 6: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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?

Page 7: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 8: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 9: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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?

Page 10: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 11: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 12: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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)

Page 13: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 14: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 15: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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.

Page 16: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 17: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 18: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 19: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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

Page 20: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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:

Page 21: Introducción a los Lenguajes de Programacióngalvez.milibreta.com.mx/UAS/Lenguajes/2.-Introduccion a...Introducción a los Lenguajes de Programación • FIUAS Temas Unidad I 1. ¿Que

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.