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

Documentos relacionados