introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · informática...

25
Introducción a los lenguajes de programación Informática aplicada al medio ambiente curso 2010/2011

Upload: vubao

Post on 07-Feb-2018

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Introducción a los lenguajes de programación

Informática aplicada al medio ambiente curso 2010/2011

Page 2: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 2

Lenguajes de programación y traductores

Niveles de abstracción en lenguajes de programación: bajo-alto nivel.

Traductores: compilador e intérprete. Proceso de compilación: errores. Clasificación de los lenguajes.

Page 3: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 3

Máquina de turing

Modelo formal de un computador (Alan Turing 1936)

Elementos: Cinta infinita dividida en celdas con valores Autómata

Estado y Valor cinta → Nuevo estado, nuevo valor y avance (izquierda o derecha)

Describe cualquier algoritmo (universal) Ejemplo: http://ironphoenix.org/tril/tm/

Page 4: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 4

Niveles de lenguajes: bajo nivel

Código máquina Único lenguaje que entiende el ordenador. Difícil de entender para los humanos. Permite aprovechar al máximo los recursos. Instrucciones codificadas en binario. Particular de cada procesador.

Page 5: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 5

Niveles de lenguajes: bajo nivel

Ensamblador: Representación mnemotécnica del código máquina:

Particular de cada procesador. Cada instrucción en ensamblador equivale a una

instrucción en lenguaje máquina. Símbolos para representar las instrucciones y para

las direcciones de memoria. Se requiere un programa traductor. (llamado

también ensamblador)

Page 6: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 6

Ejemplo de código

... subl $8, %esp andl $-16, %esp subl $28, %esp pushl $.LC0 call printf addl $12, %esp leal -4(%ebp), %ecx pushl %ecx leal -8(%ebp), %edx pushl %edx pushl $.LC1 ...

Page 7: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 7

Niveles de lenguajes: alto nivel Independientes de la estructura concreta del

ordenador. Se aproxima más al lenguaje natural. Utiliza variables y estructuras de datos para

representar la información. Utiliza estructuras de control: condicionales y

bucles. Se han de traducir a lenguaje máquina. Una instrucción del LA se traduce a varias

instrucciones en lenguaje máquina (LB).

Page 8: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 8

Ejemplos de código

C++

#include <iostream>using namespace std; int main() { cout << "¡Hola, mundo!" << endl;}

ADA

with Ada.Text_IO; procedure Hola_Mundo is begin Ada.Text_IO.Put("¡Hola, mundo!"); end Hola_Mundo;

Page 9: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 9

Ejemplos de código

MATLAB

function ejemplo1()% Funcion para sumar dos números%x = input('Introduzca el valor de x e y: ')y = input('')z = x + ydisp(['El resultado de hacer x+y es: ' int2str(z)])

Page 10: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 10

Programas traductores

Pasan del lenguaje de alto nivel al código máquina correspondiente.

Pueden ser: Compiladores Interpretes

Page 11: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 11

Compiladores

Traducen completamente un programa fuente, generando el programa objeto equivalente en lenguaje máquina.

El programa objeto se guarda en un fichero y se puede ejecutar sin necesidad del compilador.

Ejemplos de lenguajes compilados: C, C++, Pascal, Fortran…

Page 12: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 12

Intérpretes

Traduce y ejecuta instrucción a instrucción en el interprete.

No se guarda ningún fichero de programa objeto: Menos eficiente: más lento. Más interactivo.

Ejemplo de lenguajes interpretados: Java (no del todo), Javascript, Matlab, Basic, PHP…

Page 13: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 13

Interpretación/compilación y ejecución

Interpretado Análisis:

Léxico Sintáctico Semántico

Generación de código Ejecución de código

Ejecución: Es necesario tener los fuentes y los datos.

Compilado Análisis:

Léxico Sintáctico Semántico

Generación y optimizacón de código

Ejecución de código

Ejecución: Solo es necesario tener el ejecutable y los datos

Page 14: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 14

Tipos de errores de compilación

Léxicos: palabras no reconocidas whyle (x>0)

Sintácticos: construcciones incorrectas. if (a>b>c)

Semánticos: construcciones correctas, pero sin sentido. int x; ... x[3] = 5;

Page 15: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 15

Errores no detectados por el compilador

Lógicos: algoritmo incorrecto. Ej. Intercambiar a y b :

/*MAL*/ /*OK*/ temp = a; temp = a; b = a; a = b; b = temp; b = temp;

De ejecución: relacionados con situaciones de la ejecución del programa:

División por 0 Raíz cuadrada de un número negativo Acceder a un elemento inexistente de un vector ...

Page 16: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 16

Lenguajes de alto nivel según el ámbito de su aplicación:

Científicos: Fortran, Matlab, Mathematica. De gestión: COBOL, SQL. De uso docente: Logo, Pascal. De inteligencia artificial: LISP, PROLOG. De propósito general: Java, C / C++…

Page 17: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 17

Primeros programas

Charles Babagge → Máquina analítica (siglo XIX)

Ada Lovedby se considera la primera programadora de la historia

Se empleaban tarjetas perforadas ADA es un lenguaje moderno, departamento de

defensa EE.UU

Page 18: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 18

Breve Historia Lenguajes Programación

1943-46: Sistema de codificación del ENIAC 1954 Definición del Primer Lenguaje de Alto

Nivel: FORTRAN 1957 Primera implementación de FORTRAN.

Desarrollado por IBM

Page 19: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 19

Breve Historia Lenguajes Programación

Años 60 Desarrollo de la programación estructurada:

Se populariza en los años 70 A partir de las ideal del lenguaje ALGOL Programas son construidos con tres

estructuras de control de bajo nivel: Bloque o sucesión de instrucciones Ejecución condicional: if- then – else Bucles de instrucciones de ejecución repetitiva

condicional: while, for

Page 20: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 20

Breve Historia Lenguajes Programación

Incorporan la programación estructura en los lenguajes no estructurados: FORTRAN 77, COBOL, BASIC.

Aparecen nuevos lenguajes: PASCAL, MODULA y C.

Page 21: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 21

C Autores: Kernighan & Ritchie (1972) Lenguaje de alto nivel estructurado:

Con funciones

Objetivo inicial: Utilización para la programación de sistemas operativos.. Windows, Unix.

Se buscó deliberadamente una proximidad con lenguajes de nivel más bajo: ensamblador, máquina.

¿Por qué sigue siendo útil C? Simple, versátil.

Page 22: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 22

Después de C: POO Años 80: Introduce la programación orientada a

objetos (POO) Primer lenguaje: Smalltalk 1972

Objetos con memoria propia Comunicación mediante mensajes Herencia Capacidad de procesamiento

Stroustrup propone la extensión del C para incorporar la orientación a objetos: Surge C++ edificado sobre los cimientos del C

Años 90: Se afianzan las técnicas de la POO: C++, Aparece JAVA

Page 23: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 23

Introducción a Matlab

Se crea a finales de los 70 en University of New Mexico por Cleve Moler.

Idea inicial: simplificar el acceso a funciones de análisis numérico en FORTRAN.

En 1984 se funda MathWorks y se empieza a comercializar

Page 24: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 24

Introducción a Matlab

Acrónimo de MATrix LABoratory Matlab es un entorno de cálculo numérico y un

lenguaje de programación. Permite:

Fácil manejo de matrices Creación de gráficos 2D y 3D de funciones y datos Implementar funciones, algoritmos y programas Creación de interfaces de usuario Interaccionar con otros lenguajes

Page 25: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de

Informática aplicada al Medio Ambiente 25

Introducción a Matlab

Ventajas Interactivo Fácil y rápido de programar Hay muchas funciones disponibles (ToolBoxes) Gráficos

Inconvenientes Lento en ejecución Propietario: Se necesita licencia. Opciones libres:

Octave/QtOctave y SciLab