Lenguajes de Programación Presentacion

40
Lenguajes De Programación: Usos y Ventajas -Programación- Páramo Cortés Verónica Santibáñez Rocha Gustavo Alberto Propedéutico Maestría Estructuras

description

presentacion de lenguajes de programacion

Transcript of Lenguajes de Programación Presentacion

Page 1: Lenguajes de Programación Presentacion

Lenguajes De Programación:Usos y Ventajas

-Programación-

Páramo Cortés VerónicaSantibáñez Rocha Gustavo Alberto

Propedéutico Maestría Estructuras

Page 2: Lenguajes de Programación Presentacion

DefiniciónUn lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

Page 3: Lenguajes de Programación Presentacion

Tipos de Lenguajes de Programación

Es el lenguaje que entiende el ordenador, también se le conoce como código binario, que consiste en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción.

Lenguaje de Máquinas

VENTAJAS• Transferir un programa a la memoria sin necesidad de

traducción posterior.• Velocidad de ejecución superior a cualquier otro lenguaje

de programaciónDESVENTAJAS• Dificultad grande de verificar y poner a punto a los

programas• Los programas sólo son ejecutables en el mismo procesador

• No está diseñado para cumplir con las necesidades del programador • Requiere un conocimiento profundo del procesador y de los dispositivos de la

computadora, además de que es casi imposible que un humano pueda leerlo.

Page 4: Lenguajes de Programación Presentacion

Lenguaje de Bajo Nivel• Es el lenguaje más próximo a la arquitectura hardware. Es aquel

en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta.

• Compiladores: Programas que traducen un código fuente, escrito en un lenguaje de alto nivel, a un código objeto escrito en lenguaje máquina. El programa desarrollado se ejecuta tras la compilación. La fase de compilación es independiente de la fase de ejecución. Los programas compilados son más rápidos que los interpretados.

• Intérpretes: Programas que traducen el código fuente instrucción a instrucción a lenguaje máquina mientras lo van ejecutando. No generan un programa escrito en lenguaje máquina. Cada vez que se ejecuta el programa, este deberá ser interpretado de nuevo. Son más lentos que el mismo programa compilado.

Page 5: Lenguajes de Programación Presentacion

Lenguaje de alto nivelPermite al programador escribir las instrucciones de un programa, utilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: case, if, for, while, etc. Se encuentra más cercano a los programadores y usuarios.

Page 6: Lenguajes de Programación Presentacion

Lenguaje de alto nivelLos lenguajes de alto nivel, también denominados lenguajes evolucionados,

surgen con posterioridad a los anteriores, con los siguientes objetivos:

Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante.

Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.

Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc

Page 7: Lenguajes de Programación Presentacion

Ejemplos de lenguajes ampliamente usados

Page 8: Lenguajes de Programación Presentacion

Lenguaje imperativo y declarativo

En los lenguajes de programación imperativa lo importante es la secuencia de pasos, acciones y condiciones, para llegar a un resultado previsible. Se basa en estructuras, variables e instrucciones de repetición.Los lenguajes declarativos están orientados a buscar la solución del problema, sin preocuparse por la forma de llegar a ello. Están formados por un conjunto de definiciones o ecuaciones, las cuales describen lo que debe ser calculado, no en la forma de hacerlo.

Page 9: Lenguajes de Programación Presentacion

9

Programación Imperativa o Procedural: FORTRAN

Su nombre proviene del inglés de: FORmula TRANslator. Es un lenguaje de programación para el desarrollo de aplicaciones matemáticas y científicas, fue el primer lenguaje de programación de alto nivel. Es la primera que se desarrolla porque va determinando las operaciones que hay que realizar sobre una máquina ideal de Von Neumann. Desde este punto de vista un programa es una secuencia de acciones (instrucciones) que se realizan en un cierto orden determinado por el flujo del programa.Las estructuras para el control son generalmente sentencias condicionales y bucles.

Page 10: Lenguajes de Programación Presentacion

10

FORTRAN. Historia

Primer lenguaje de alto nivel (1957).Desarrollado por IBM para el IBM 704.Estaba orientado a la eficiencia en la ejecución.Definición estándar del lenguaje en el 66.Otras versiones:

FORTRAN 77FORTRAN 90

Page 11: Lenguajes de Programación Presentacion

11

FORTRAN. EjemploPROGRAM TRIVIAL

INTEGER II=2IF(I=2) CALL PRINTITSTOP

ENDSUBROUTINE PRINTIT

PRINT *,’Hola Mundo’RETURN

END

Page 12: Lenguajes de Programación Presentacion

12

FORTRAN. CaracterísticasTipos de datos:

Numéricos (enteros, reales, complejos y doble precisión).Booleanos (logical)ArreglosCadenas de caracteresArchivos

FORTRAN 90 ya es estructurado, y no requiere sentencias GOTO.Sólo dos ámbitos para las variables: local y global

Page 13: Lenguajes de Programación Presentacion

13

FORTRAN. Objetos de datos

Variables y constantesFORTRAN no es sensible a mayúsculas y minúsculas. Los nombre de variables tienen de 6 a 31 caracteres máximo y deben comenzar por una letra. Los blancos son significativos.Declaración explicita de variables.Enteras (I-N), el resto reales. (se modifica con IMPLICIT).Punteros: en los primeros FORTRAN no hay punteros y todas las variables se almacenan en memoria estática. En FORTRAN 90 se declaran INTEGER, POINTER::P.Para memoria dinámica ALLOCATE y DEALLOCATE

Page 14: Lenguajes de Programación Presentacion

14

FORTRAN. Objetos de datosTipos de datos estructurados

Arrays, pueden tener hasta 7 dimensiones y se guardan por colummnas.REAL M(20),N(-5:5)DIMENSION I(20,20) (tipo por nomenclatura implícita)

Cadenas de caracteres, el primer carácter es el 1, el operador // permite concatenar cadenas.

CHARACTER S*10, T*25Almacenamiento de datos. Se usa COMMON para datos compartidos y EQUIVALENCE cuando almacenamos una variable con dos posibles tipos en la misma posición de memoria (como union en C). Se usa DATA para inicializar datos estáticos.

DATA X/1.0/,Y/3.1416/,K/20/Tipos definidos por el usuario, con TYPE <nombre>... END TYPE <nombre>

Page 15: Lenguajes de Programación Presentacion

15

FORTRAN. Control de secuenciaEL conjunto de estructuras de control es limitado:

Expresiones, prioridad de operadoresEnunciados

Asignación, cuando se hace entre cadenas hay ajuste de tamaño con blancos o truncamiento.Condicional. Permite IF <cond> ELSE IF... Para selección múltiple SELECT CASE <expr> CASE.....CASE DEFAULT.... END SELECTIteración. DO....END DONulo, se usa solo para la etiqueta. CONTINUE.

Control de subprogramas. CALL invoca al subprograma y RETURN devuelve un valor al programa llamante.Construcciones propensas a error: GOTO.

Page 16: Lenguajes de Programación Presentacion

16

FORTRAN. Entrada y Salida

Tipos de archivos:SecuencialesDe acceso directo

Comandos: READ, WRITE, PRINT, OPEN , CLASE, INQUIRE (propiedades o estado del archivo) REWIND y ENDFILE (para ubicar el puntero del fichero).Para el tratamiento de excepciones en las sentencias READ/WRITE se puede introducir la posición de la rutina de dicho tratamiento (ERR=90).

Page 17: Lenguajes de Programación Presentacion

17

FORTRAN. Subprogramas

Hay tres tipos de subprogramas:Function, devuelven un solo valor de tipo numérico, lógico o cadena de caracteres.Subroutine, devuelve valores a través de variables no locales COMMON.Función de enunciado, permite calcular una sola expresión aritmética o lógica.

FN(X,Y)=SIN(X)**2-COS(Y)**2

Gestión de almacenamiento.Las variables son locales o globales (COMMON)Recursividad: RECURSIVE FUNCTION FACTORIAL(X)Parámetros de subprograma. Paso por referencia.

Page 18: Lenguajes de Programación Presentacion

18

Abstracción y encapsulamiento FORTRAN. Evaluación del lenguaje

La abstracción es posible mediante los subprogramas y el uso de variables COMMON, aunque su uso es propenso a errores.FORTRAN sigue siendo utilizado en el ámbito científico y es muy eficiente realizando cálculos.

La estructura del programa suele ser difícil de entender.En FORTRAN 90 se incluye la recursividad y la memoria dinámica.Las etiquetas de las sentencias ya no son necesarias, ni el GOTO, pues se ha transformado en un lenguaje estructurado.El aspecto de los programas sigue siendo de procesamiento por lotes

Page 19: Lenguajes de Programación Presentacion

MATLABMATLAB es un lenguaje de alto nivel y un entorno interactivo de cálculo técnico de altas prestaciones para cálculo numérico y visualización usado por millones de ingenieros y científicos en todo el mundo que permite explorar y visualizar ideas y colaborar en diferentes disciplinas.

Page 20: Lenguajes de Programación Presentacion

MATLABPRINCIPALES CARACTERÍSTICAS DE MATLAB

Matlab es un programa desarrollado por Cleve Moler en los 70’sFue diseñado para darle a sus estudiantes acceso a LINPACK y EISCPACK sin que tuvieran que aprender FORTRANEs derivado de las subrutinas de Fortran: LINPACK y EISCPACK, sistemas lineares y de valores propios. Ganó su popularidad con recomendaciones ya que no era distribuido oficialmenteFue reescrito en C en los 80’s con más funcionalidad, lo cual incluía el trazado de rutinas.

Page 21: Lenguajes de Programación Presentacion

USOSEs más conveniente para análisis numéricos y álgebra lineal. Es usado frecuentemente en la comunidad de ingeniería. Incluye funciones para:

MatricesAnálisis estático y de FourierResolución de ecuaciones

diferenciales

Page 22: Lenguajes de Programación Presentacion

VENTAJASPuede comportarse como un calculador o como un lenguaje de programaciónCombina muy bien los cálculos y la representación gráfica.Es relativamente fácil de aprenderEs interpretado (no compilado), por lo que los errores son fáciles de arreglarEstá optimizado para ser relativamente rápido cuando realiza operaciones matricialesTiene algunos elementos orientados a objetos.

Page 23: Lenguajes de Programación Presentacion

DESVENTAJASNo es un lenguaje de programación de propósito general tal como C, C++ o FORTRANEs diseñado para cálculo científico y no es tan bien adaptable para otras aplicacionesAl ser un lenguaje interpretado es más lento que un lenguaje compilado como el C++Sus comando son específicos para uso en MATLAB, muchos de ellos no tienen un equivalente directo con otros comandos de lenguaje de programación

Page 24: Lenguajes de Programación Presentacion

Introducción

Elementos básicos del escritorio de Matlab

Command Windows: Donde se ejecutan todas las instrucciones y programas. Se escribe la instrucción o el nombre del programa y se da a Enter.

Command History: Muestra los últimos comandos ejecutados en Command Windows. Se puede recuperar el comando haciendo doble

Current directory: Situarse en el directorio donde se va a trabajar

Help (también se puede usar desde comand windows)

Workspace: Para ver las variables que se están usando y sus dimensiones (si son matrices)

Editor del Matlab: Todos los ficheros de comandos Matlab deben de llevar la extensión .m

Page 25: Lenguajes de Programación Presentacion

IntroducciónElementos básicos del escritorio de Matlab

CommandWindows

Current directory

CommandHistory

Page 26: Lenguajes de Programación Presentacion

Números y operacionesDatos numéricos:

No hace falta definir variables enteras, reales, etc. como en otros lenguajes Números enteros: a=2 Números reales: x=-35.2

Máximo de 19 cifras significativas

2.23e-3=2.23*10-3

Precisión y formatos: Por defecto tiene un formato corto, pero se pueden usar otros >> format long (14 cifras significativas) >> format short (5 cifras significativas) >> format short e (notación exponencial) >> format long e (notación exponencial) >> format rat (aproximación racional)

Page 27: Lenguajes de Programación Presentacion

Números y operacionesDatos numéricos:

Son sensibles a las mayúsculas: x=5, X=7

Información sobre variables que se están usando y sus dimensiones (si son matrices): Workspace. También tecleando

>> who >> whos (da más información)

Para eliminar alguna variable se ejecuta>> clear variable1 variable2

Si se quieren borrar todas las variables: >> clear

Constantes características: pi=, NaN (not a number, 0/0), Inf=.

Números complejos: i=sqrt(-1) (sólo se puede usar i o j), z=2+i*4, z=2+4i Cuidado con no usar luego ‘i’ como contador en un bucle trabajando con complejos.

Page 28: Lenguajes de Programación Presentacion

Números y operaciones

Operaciones aritméticas elementales:

Suma: +, Resta -

Multiplicación: *, División: /

Potencias: ^

Orden de prioridad: Potencias, divisiones y multiplicaciones y por último sumas y restas. Usar () para cambiar la prioridad

Page 29: Lenguajes de Programación Presentacion

Números y operacionesFunciones de Matlab:

exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)

Funciones trigonométricas: sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x) (entre –pi y pi)

Funciones hiperbólicas: sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x)

Otras funciones: abs(x) (valor absoluto), int(x) (parte entera), round(x) (redondea al entero más próximo), sign(x) (función signo)

Funciones para números complejos: real(z) (parte real), imag(z) (parte imaginaria), abs(z) (módulo), angle(z) (ángulo), conj(z) (conjugado)

Page 30: Lenguajes de Programación Presentacion

Vectores y matricesDefinición de vectores:

Vectores fila; elementos separados por blancos o comas >> v =[2 3 4]

Vectores columna: elementos separados por punto y coma (;)>> w =[2;3;4;7;9;8]

Dimensión de un vector w: length(w)

Generación de vectores fila:Especificando el incremento h de sus componentes v=a:h:bEspecificando su dimensión n: linspace(a,b,n) (por defecto n=100) Componentes logarítmicamente espaciadas logspace(a,b,n) (n puntos logarítmicamente espaciados entre 10a y 10b. Por defecto n=50)

Page 31: Lenguajes de Programación Presentacion

Vectores y matricesDefinición de matrices:

No hace falta establecer de antemano su tamaño (se puede definir un tamaño y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas. Las filas están separadas por punto y coma (;).

» M=[3 4 5; 6 7 8; 1 -1 0]

Matriz vacía: M=[ ];

Información de un elemento: M(1,3), de una fila M(2,:), de una columna M(:,3).

Cambiar el valor de algún elemento: M(2,3)=1;

Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];

Page 32: Lenguajes de Programación Presentacion

Operaciones con vectores y matricesOperaciones con vectores y matrices:

+ adición o suma– sustracción o resta* multiplicación matricial.* producto elemento a elemento^ potenciación.^ elevar a una potencia elemento a elemento\ división-izquierda/ división-derecha./ y .\ división elemento a elementomatriz traspuesta: B=A’ (en complejos calcula la traspuesta conjugada, sólo la traspuesta es B=A.’)

Page 33: Lenguajes de Programación Presentacion

Funciones para vectores y matricesFunciones de matlab para vectores y matrices:

sum(v) suma los elementos de un vector

prod(v) producto de los elementos de un vector

dot(v,w) producto escalar de vectores

cross(v,w) producto vectorial de vectores

mean(v) (hace la media)

diff(v) (vector cuyos elementos son la resta de los elemento de v)

[y,k]=max(v) valor máximo de las componentes de un vector (k indica la posición), min(v) (valor mínimo). El valor máximo de una matriz M se obtendría como max(max(M)) y el mínimo min(min(v))

Aplicadas algunas de estas funciones a matrices, realizan dichas operaciones por columnas.

Page 34: Lenguajes de Programación Presentacion

Funciones para vectores y matricesFunciones de Matlab para vectores y matrices

[n,m]=size(M) te da el número de filas y columnas

matriz inversa: B=inv(M), rango: rank(M)

diag(M): Obtencion de la diagonal de una matriz. sum(diag(M)) calcula la traza de la matriz A. diag(M,k) busca la k-ésima diagonal.

norm(M) norma de una matriz (máximo de los valores absolutos de los elementos de A)

flipud(M) reordena la matriz, haciendo la simétrica respecto de un eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simétrica respecto de un eje vertical

[V, landa]=eig(M) da una matriz diagonal landa con los autovalores y otra V cuyas columnas son los autovectores de M

Page 35: Lenguajes de Programación Presentacion

Gráficos 2D y 3DFunciones de Matlab para gráficos 2D y 3D

Imprimir gráficos: Print (botón File en ventana gráfica)

Guardar gráficos: Save (botón File en ventana gráfica): Se crea un fichero .fig que podrá volver a editarse y modificarse

Exportar gráficos: Export (botón File en ventana gráfica)

figure(n): Llamar una nueva figura o referirnos a una figura ya hecha

close all borra todas las figuras, close(figure(n)) una en concreto

Page 36: Lenguajes de Programación Presentacion

ProgramaciónFicheros de Matlab

Ficheros de programa: Se construyen mediante una secuencia de comandos. El fichero principal se llamará main_nombre.m

Ficheros de función: para crear funciones propias. Son llamados por los ficheros de programa.

La primera línea es ejecutable y empieza por la palabra function de la forma:

function arg_salida=funcion_nombre(arg_entrada, parametros)El fichero se debe guardar como funcion_nombre.m

Comandos de entrada y salida: input: permite introducir datos: ae=input(‘Teclee valor de a’);disp: muestra un texto por pantalla: disp(‘El algoritmo no ha convergido’)

Page 37: Lenguajes de Programación Presentacion

ProgramaciónEstructuras de control condicionadas

Operaciones lógicas: >, <, >=,<=,== (igual) | (or), &(and) ~ (no), ~= (no igual)

if

end

if

else

end

if

elseif

else

end

Page 38: Lenguajes de Programación Presentacion

Análisis numéricoIntegración

1D: quad, quadl: integran una función en un intervalo [a,b]quad(‘funcion’,a,b)

2D: dblquad: integran una función en un intervalo [xmin,xmax]x[ymin,ymax]

dblquad('y*sin(x)+x*cos(y)',xmin,xmax,ymin,ymax)

Page 39: Lenguajes de Programación Presentacion

Lenguaje CEs el lenguaje de programación de propósito general asociado al sistema operativo UNIX VENTAJAS

Es un lenguaje de medio nivel. Trata con objetos básicos como caracteres, números . . . ; también con bits y direcciones de memoria Posee una gran portabilidad No es rígido en la comprobación de tipos de datos, permitiendo fácilmente la conversión entre diferentes tipos de datos y la asignación entre tipos de datos diferentes

USOSSe utiliza para la programación de sistemas: construcción de intérpretes, compiladores, editores de texto, etc.